如何将适配text-davinci-003的Python脚本改为适配GPT-3.5-turbo?
解决OpenAI
ChatCompletion 属性错误及适配GPT-3.5-turbo的对话代码 错误原因
你遇到的AttributeError: module 'openai' has no attribute 'ChatCompletion'是因为你的OpenAI Python SDK版本过低,旧版本不支持GPT-3.5-turbo所需的ChatCompletion接口。
第一步:升级OpenAI SDK
执行以下命令将SDK更新到最新版本:
pip install --upgrade openai
第二步:适配GPT-3.5-turbo的对话代码
GPT-3.5-turbo采用对话消息列表格式(每条消息包含role和content字段),需维护完整对话历史才能实现连续多轮对话。以下是将你原有的text-davinci-003代码修改为适配GPT-3.5-turbo的版本:
import openai import time openai.api_key = "skXXXXXXX" model_engine = "gpt-3.5-turbo" # 初始化对话历史,系统提示用于定义AI角色(可选) conversation_history = [ {"role": "system", "content": "你是一个友好的AI助手,负责和用户进行日常对话交流。"} ] while True: # 获取用户输入 user_input = input("Conversation with an AI: ") # 判断是否退出对话 if user_input.lower() in ["quit", "exit", "bye"]: print("Goodbye!") break # 将用户输入加入对话历史 conversation_history.append({"role": "user", "content": user_input}) # 调用ChatCompletion接口生成AI回复 response = openai.ChatCompletion.create( model=model_engine, messages=conversation_history, max_tokens=1024, n=1, temperature=0.7, ) # 提取并打印AI回复 ai_response = response.choices[0].message.content.strip() print("AI: " + ai_response) # 将AI回复加入对话历史,保证上下文连续性 conversation_history.append({"role": "assistant", "content": ai_response}) time.sleep(1)
关键差异说明
- 接口从
openai.Completion.create改为openai.ChatCompletion.create - 不再使用单一
prompt参数,而是通过messages传递完整对话历史,每条消息需指定角色(system/user/assistant)和对应内容 - 系统提示(system角色)可自定义AI的行为风格,是实现个性化对话的关键配置
- 必须维护对话历史列表,才能让AI记住之前的对话内容,实现多轮连续交互
内容的提问来源于stack exchange,提问作者Ghulam
相关产品推荐
相关产品推荐

