如何用Python API实现两个独立OpenAI聊天机器人的持续对话与信息隔离
关于OpenAI Python API实现双机器人文字游戏的问题解答
问题1:如何与指定实例持续对话?
目前OpenAI最新版Python API已经移除了chat_completion::send_message这类维护会话状态的方法,统一使用openai.chat.completions.create()接口实现对话延续。
- 核心逻辑是手动维护对话历史列表:每次发起新请求时,把包含之前所有交互(用户消息、AI回复)的
messages列表作为参数传入create()方法。 - 关于API成本:目前没有更优的官方方案,因为大语言模型本身是无状态的,必须依赖传入完整对话历史才能理解上下文。如果想降低成本,可以尝试精简对话历史(比如只保留关键上下文,剔除冗余内容),但这可能会影响对话连贯性,需要根据场景权衡。
问题2:如何创建不共享信息的独立机器人实例?
完全不需要使用不同的API密钥,只需要给每个机器人维护独立的对话历史列表即可:
- 比如为机器人A维护一个
history_a列表,里面只存储和A的所有交互(示例:[{"role": "user", "content": "我的名字是Alice"}]);为机器人B维护history_b列表,只存储和B的交互(示例:[{"role": "user", "content": "我的年龄是20"}])。 - 每次调用API时,给机器人A传入
history_a,给机器人B传入history_b,两个机器人的上下文完全隔离,不会互相知晓对方的对话内容。每次发送新消息时,只需要往对应机器人的历史列表里追加新消息即可——OpenAI API本身没有"实例"概念,都是通过传入的对话历史区分会话的。
内容的提问来源于stack exchange,提问作者SBF
相关产品推荐
相关产品推荐

