You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将适配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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:55:16