| import os |
| from dashscope import Generation |
|
|
| |
| 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 |