Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -73,12 +73,12 @@ def process_function_call(function_name, function_args):
|
|
| 73 |
keywords = function_args.get('keywords', [])
|
| 74 |
if not keywords:
|
| 75 |
return "搜索关键词为空,无法执行搜索。"
|
| 76 |
-
return
|
| 77 |
elif function_name == "search_papers":
|
| 78 |
query = function_args.get('query', '')
|
| 79 |
if not query:
|
| 80 |
return "搜索查询为空,无法执行论文搜索。"
|
| 81 |
-
return
|
| 82 |
elif function_name == "send_email":
|
| 83 |
to = function_args.get('to', '')
|
| 84 |
subject = function_args.get('subject', '')
|
|
@@ -86,14 +86,14 @@ def process_function_call(function_name, function_args):
|
|
| 86 |
if not to or not subject or not content:
|
| 87 |
return "邮件信息不完整,无法发送邮件。"
|
| 88 |
success = send_email(to, subject, content)
|
| 89 |
-
return
|
| 90 |
"success": success,
|
| 91 |
"message": "邮件发送成功" if success else "邮件发送失败",
|
| 92 |
"to": to,
|
| 93 |
"subject": subject,
|
| 94 |
"content": content,
|
| 95 |
-
"is_email": True
|
| 96 |
-
}
|
| 97 |
else:
|
| 98 |
return "未知的函数调用。"
|
| 99 |
|
|
@@ -159,15 +159,19 @@ def chat():
|
|
| 159 |
result = process_function_call(function_name, function_args)
|
| 160 |
status_log.append(f"函数 {function_name} 执行完成")
|
| 161 |
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 166 |
else:
|
| 167 |
messages.append({
|
| 168 |
"role": "function",
|
| 169 |
"name": function_name,
|
| 170 |
-
"content": result
|
| 171 |
})
|
| 172 |
|
| 173 |
# 只有在没有邮件发送结果时才调用主模型
|
|
|
|
| 73 |
keywords = function_args.get('keywords', [])
|
| 74 |
if not keywords:
|
| 75 |
return "搜索关键词为空,无法执行搜索。"
|
| 76 |
+
return search_duckduckgo(keywords)
|
| 77 |
elif function_name == "search_papers":
|
| 78 |
query = function_args.get('query', '')
|
| 79 |
if not query:
|
| 80 |
return "搜索查询为空,无法执行论文搜索。"
|
| 81 |
+
return search_papers(query)
|
| 82 |
elif function_name == "send_email":
|
| 83 |
to = function_args.get('to', '')
|
| 84 |
subject = function_args.get('subject', '')
|
|
|
|
| 86 |
if not to or not subject or not content:
|
| 87 |
return "邮件信息不完整,无法发送邮件。"
|
| 88 |
success = send_email(to, subject, content)
|
| 89 |
+
return {
|
| 90 |
"success": success,
|
| 91 |
"message": "邮件发送成功" if success else "邮件发送失败",
|
| 92 |
"to": to,
|
| 93 |
"subject": subject,
|
| 94 |
"content": content,
|
| 95 |
+
"is_email": True
|
| 96 |
+
}
|
| 97 |
else:
|
| 98 |
return "未知的函数调用。"
|
| 99 |
|
|
|
|
| 159 |
result = process_function_call(function_name, function_args)
|
| 160 |
status_log.append(f"函数 {function_name} 执行完成")
|
| 161 |
|
| 162 |
+
if isinstance(result, dict) and result.get("is_email", False):
|
| 163 |
+
response = f"邮件{'已成功' if result['success'] else '未能成功'}发送到 {result['to']}。\n\n主题:{result['subject']}\n\n内容:\n{result['content']}"
|
| 164 |
+
elif isinstance(result, list) or isinstance(result, str):
|
| 165 |
+
messages.append({
|
| 166 |
+
"role": "function",
|
| 167 |
+
"name": function_name,
|
| 168 |
+
"content": json.dumps(result, ensure_ascii=False)
|
| 169 |
+
})
|
| 170 |
else:
|
| 171 |
messages.append({
|
| 172 |
"role": "function",
|
| 173 |
"name": function_name,
|
| 174 |
+
"content": str(result)
|
| 175 |
})
|
| 176 |
|
| 177 |
# 只有在没有邮件发送结果时才调用主模型
|