hellochat / utils.py
Marty-Wu
ss
7ceb903
import os
from dashscope import Generation
# 设置DashScope API密钥
DASHSCOPE_API_KEY = os.environ.get("DASHSCOPE_API_KEY", "")
def get_qwen_response(messages):
"""
调用通义千问API获取回复
Args:
messages: 消息历史列表,包含角色和内容
Returns:
str: 模型回复内容或错误信息
"""
try:
response = Generation.call(
model="qwen-max",
messages=messages,
result_format='message',
api_key=DASHSCOPE_API_KEY
)
if response.status_code == 200:
return {
'success': True,
'content': response.output.choices[0].message.content
}
else:
return {
'success': False,
'content': f"API错误: {response.code}, {response.message}"
}
except Exception as e:
return {
'success': False,
'content': f"调用异常: {str(e)}"
}
def format_chat_history(history, message):
"""
格式化聊天历史为API所需格式
Args:
history: Gradio历史记录
message: 当前用户消息
Returns:
list: 格式化后的消息列表
"""
messages = []
# 添加历史消息
for human, assistant in history:
messages.append({"role": "user", "content": human})
messages.append({"role": "assistant", "content": assistant})
# 添加当前用户消息
messages.append({"role": "user", "content": message})
return messages