mistpe commited on
Commit
fd00de8
1 Parent(s): ad177fa

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -10
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 json.dumps(search_duckduckgo(keywords), ensure_ascii=False)
77
  elif function_name == "search_papers":
78
  query = function_args.get('query', '')
79
  if not query:
80
  return "搜索查询为空,无法执行论文搜索。"
81
- return json.dumps(search_papers(query), ensure_ascii=False)
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 json.dumps({
90
  "success": success,
91
  "message": "邮件发送成功" if success else "邮件发送失败",
92
  "to": to,
93
  "subject": subject,
94
  "content": content,
95
- "is_email": True # 添加这个标记来识别邮件发送功能
96
- }, ensure_ascii=False)
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
- result_dict = json.loads(result)
164
- if result_dict.get("is_email", False):
165
- response = f"邮件{'已成功' if result_dict['success'] else '未能成功'}发送到 {result_dict['to']}。\n\n主题:{result_dict['subject']}\n\n内容:\n{result_dict['content']}"
 
 
 
 
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
  # 只有在没有邮件发送结果时才调用主模型