Spaces:
Running
Running
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 |
# 只有在没有邮件发送结果时才调用主模型
|