核心场景
开发AI聊天机器人时,需要保留多轮对话上下文(如用户先问“什么是Python”,再问“它的优势是什么”,AI需结合上一轮问题回答),星链4sapi可通过维护messages数组,实现连贯对话。
关键代码(Python/JS 实操)
# Python 多轮对话上下文管理
from openai import OpenAI
client = OpenAI(base_url="https://4sapi.ai/v1", api_key="你的API_KEY")
# 初始化对话上下文(保存所有轮次的消息)
chat_context = [{"role": "system", "content": "你是一个Python技术顾问,回答简洁专业"}]
# 封装多轮对话函数
def multi_turn_chat(user_input):
# 将用户输入添加到上下文
chat_context.append({"role": "user", "content": user_input})
# 调用4sapi
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=chat_context # 传入完整上下文
)
# 将AI回复添加到上下文
ai_response = response.choices[0].message.content
chat_context.append({"role": "assistant", "content": ai_response})
return ai_response
# 多轮对话示例
print(multi_turn_chat("什么是Python?"))
print(multi_turn_chat("它的核心优势是什么?"))
print(multi_turn_chat("用它开发AI需要哪些库?"))
# 查看完整上下文
print("完整对话上下文:", chat_context)
// JavaScript 多轮对话上下文管理
const API_KEY = "你的API_KEY";
const URL = "https://4sapi.ai/v1/chat/completions";
// 初始化上下文
let chatContext = [{"role": "system", "content": "简洁回答用户问题"}];
// 多轮对话函数
async function multiTurnChat(userInput) {
// 添加用户输入到上下文
chatContext.push({"role": "user", "content": userInput});
const res = await fetch(URL, {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "gemini-pro",
messages: chatContext
})
});
const data = await res.json();
const aiResponse = data.choices[0].message.content;
// 添加AI回复到上下文
chatContext.push({"role": "assistant", "content": aiResponse});
return aiResponse;
}
// 调用示例
multiTurnChat("什么是星链4sapi?")
.then(res => console.log(res))
.then(() => multiTurnChat("它支持哪些模型?"))
.then(res => console.log(res));
总结
核心是维护messages数组,将每轮用户输入和AI回复依次添加到数组中,调用时传入完整数组,即可实现连贯的多轮对话,适配所有聊天类场景。