如何通过编程方式下载Azure OpenAI的完整聊天历史?
获取Azure OpenAI完整聊天历史的编程实现方案
核心逻辑说明
Azure OpenAI的聊天接口不会自动存储聊天历史,所有对话上下文需要你在客户端或服务端自行维护。后续每次调用API时,必须将完整的对话历史(包含用户和助理的所有消息)作为messages参数传入,才能让模型延续对话逻辑。
编程实现步骤
- 初始化对话历史:创建数组存储消息,可按需加入系统提示
chat_history = [ {"role": "system", "content": "你是专业技术助手"} ] - 追加用户输入:将用户每次发送的消息加入历史数组
user_input = "如何获取聊天历史?" chat_history.append({"role": "user", "content": user_input}) - 调用Azure OpenAI API:传入完整的聊天历史数组
from openai import AzureOpenAI client = AzureOpenAI( azure_endpoint="你的Azure OpenAI端点", api_key="你的API密钥", api_version="2024-02-15-preview" ) response = client.chat.completions.create( model="你的部署模型名称", messages=chat_history ) - 保存助理回复:将API返回的助理消息追加到历史数组,完成一轮对话
assistant_response = response.choices[0].message.content chat_history.append({"role": "assistant", "content": assistant_response}) - 持久化存储(可选):若需长期保存,可将
chat_history存入数据库(如Azure Cosmos DB)或本地文件
关键注意事项
- 官方明确要求客户端自行维护对话上下文,不要依赖Azure OpenAI服务端存储聊天历史
- 每次API请求必须传入完整的对话历史,否则模型无法理解之前的对话内容
- 注意API的token上限,过长的聊天历史可能触发超限,需按需做上下文截断(如保留最近N轮对话)
内容的提问来源于stack exchange,提问作者Intelligence6
相关产品推荐
相关产品推荐

