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