AIAnalystAgent / backend /llm_interface.py
Lawrence LV
fix: all updates for frontend and backend
cb9ced5
Raw History Blame Contribute Delete
1.76 kB
import os
import openai
from openai import OpenAI
# 调用通用接口函数
def call_llm(model_type, messages, api_key):
"""
调用指定大模型(GPT-4o 或 DeepSeek-R1)
Args:
model_type (str): "GPT-4o" or "DeepSeek-R1"
messages (list): [{"role": "user", "content": "..."}]
api_key (str): 用户输入的 API Key(从 Gradio session 获取)
Returns:
dict: {
"content": 最终回答内容,
"reasoning": 推理过程(如适用)
}
"""
try:
if model_type == "GPT-4o":
client = OpenAI(api_key=api_key)
response = client.chat.completions.create(
model="gpt-4o",
messages=messages
)
return {
"content": response.choices[0].message.content,
"reasoning": None
}
elif model_type == "DeepSeek-R1":
client = OpenAI(
api_key=api_key,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
response = client.chat.completions.create(
model="deepseek-chat", # 或 deepseek-r1
messages=messages
)
return {
"content": response.choices[0].message.content,
"reasoning": response.choices[0].message.reasoning_content
}
else:
return {
"content": f"❌ 模型类型不支持: {model_type}",
"reasoning": None
}
except Exception as e:
return {
"content": f"❌ 模型调用失败:{str(e)}",
"reasoning": None
}
# GPT-4o / DeepSeek-R1 接口封装