|
@@ -284,23 +284,26 @@ async def chat(
|
|
|
# api_messages = convert_messages_for_api(request.messages)
|
|
# api_messages = convert_messages_for_api(request.messages)
|
|
|
api_messages = [{"role": request.messages[-1].role, "content": request.messages[-1].content}]
|
|
api_messages = [{"role": request.messages[-1].role, "content": request.messages[-1].content}]
|
|
|
|
|
|
|
|
- # 调用OpenAI API获取完整响应
|
|
|
|
|
- # response = client.chat.completions.create(
|
|
|
|
|
- # model=request.model or config.MODEL_NAME,
|
|
|
|
|
- # messages=api_messages,
|
|
|
|
|
- # max_tokens=request.max_tokens,
|
|
|
|
|
- # temperature=request.temperature,
|
|
|
|
|
- # stream=False # 非流式模式
|
|
|
|
|
- # )
|
|
|
|
|
tools = [{
|
|
tools = [{
|
|
|
"type": "web_search",
|
|
"type": "web_search",
|
|
|
"max_keyword": 2, # 可选参数,用于限制一轮搜索的最大关键词数量
|
|
"max_keyword": 2, # 可选参数,用于限制一轮搜索的最大关键词数量
|
|
|
}]
|
|
}]
|
|
|
|
|
+
|
|
|
|
|
+ # 获取上一轮对话的response_id,用于多轮对话的上下文关联
|
|
|
|
|
+ previous_response_id = None
|
|
|
|
|
+ if username in chatHistory and len(chatHistory[username]) > 0:
|
|
|
|
|
+ # 从后往前查找最后一条assistant消息的response_id
|
|
|
|
|
+ for message in reversed(chatHistory[username]):
|
|
|
|
|
+ if message.role == "assistant" and message.response_id:
|
|
|
|
|
+ previous_response_id = message.response_id
|
|
|
|
|
+ break
|
|
|
|
|
+
|
|
|
response = client.responses.create(
|
|
response = client.responses.create(
|
|
|
model=config.MODEL_NAME,
|
|
model=config.MODEL_NAME,
|
|
|
input=api_messages,
|
|
input=api_messages,
|
|
|
tools=tools,
|
|
tools=tools,
|
|
|
stream=False,
|
|
stream=False,
|
|
|
|
|
+ previous_response_id=previous_response_id,
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
# 检查API响应是否有效
|
|
# 检查API响应是否有效
|