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

GPT-3.5-turbo API无聊天响应:Repl拉丁导师API问题排查

问题分析与修复方案

核心问题梳理

  • 无限循环阻塞程序:第一个while True循环无终止条件,会持续调用OpenAI接口,导致后续交互逻辑完全无法执行。
  • 用户输入未纳入对话:获取用户学习主题的topic变量未添加到对话上下文messages中,AI无法知晓用户的学习需求。
  • 交互触发逻辑失效:第二个循环中first初始为False,if first:判断永远不成立,无法启动用户输入与AI响应流程。
  • 响应提取键名错误:代码中使用response['choices'][0]['messages']['content'],正确键应为message(单数)。
  • 系统提示存在拼写错误:提示文本里的“laguage”应改为“language”,“it get”应改为“I get”,避免影响AI指令理解。

修正后的完整代码

import os
import openai
import sys

try:
    openai.api_key = os.environ['OPENAI_API_KEY']
except KeyError:
    sys.stderr.write("""
    你还未配置API密钥。
    
    若还没有API密钥,请按以下步骤操作:
    1. 注册或登录账号
    2. 点击右上角菜单的「查看API密钥」
    3. 点击「创建新的密钥」
    
    之后在Secrets工具中添加OPENAI_API_KEY作为密钥。
    """)
    exit(1)

topic = input("我是你的拉丁语导师,你想学习什么内容?\n> ").strip()

# 初始化对话上下文,加入用户的学习主题
messages = [
    {"role": "system", "content": "我需要交互式教学。请先以10年级的难度向我讲解拉丁语相关概念,然后停止并给出一道选择题测试,批改测试后继续讲解。如果我答错,就把讲解难度降低3个等级,用更简单的语言表述;如果答对,就提高难度。之后重复测试和讲解的流程。不要提及难度调整的事,在我作答前不要泄露答案。每次提问后停止等待我的回答。"},
    {"role": "user", "content": f"我想学习:{topic}"}
]

# 发起第一次AI响应
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=messages
)
content = response['choices'][0]['message']['content'].strip()
print(content)
messages.append({"role": "assistant", "content": content})

# 进入交互循环
while True:
    question = input("> ")
    messages.append({"role": "user", "content": question})
    
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=messages
    )
    
    content = response['choices'][0]['message']['content'].strip()
    print(content)
    messages.append({"role": "assistant", "content": content})

修复说明

  1. 移除了阻塞程序的无限循环,先初始化包含用户学习主题的对话上下文。
  2. 先发起第一次AI响应,开启教学流程。
  3. 修正了响应提取的键名错误,确保能正确获取AI返回内容。
  4. 修正了系统提示中的拼写错误,优化指令清晰度。
  5. 调整交互逻辑,确保用户输入能正常触发AI响应,形成完整的对话闭环。

内容的提问来源于stack exchange,提问作者Jack Francis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 02:27:47