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

运行OpenAI Cookbook聊天机器人遇TypeError问题求助

问题解决:OpenAI Cookbook聊天机器人提交输入时报TypeError

错误原因

报错TypeError: string indices must be integers是因为代码把字符串当作字典来访问了。具体来说,chatbot.py第61行的assistant_response['content']中,assistant_response实际是一个字符串,却被用字典索引['content']调用,导致类型错误。

修复步骤

1. 修正chatbot.py的API响应解析逻辑

打开apps/chatbot-kickstarter/chatbot.py,定位到ask_assistant方法里调用OpenAI API的代码段,分两种情况调整:

  • 如果代码直接提取了响应文本字符串(错误写法示例):

    # 错误写法:直接将content字符串赋值给assistant_response
    assistant_response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=messages
    )['choices'][0]['message']['content']
    

    则把第61行的判断代码改成直接使用字符串:

    # 修改第61行
    if 'searching for answers' in assistant_response.lower():
    
  • 如果代码期望assistant_response是包含content字段的字典,则调整API响应提取方式:

    # 正确写法:保留完整的message字典
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=messages
    )
    assistant_response = response['choices'][0]['message']
    

    这样assistant_response['content']就能正确访问到响应文本。

2. 确认API密钥配置有效性

虽然当前错误不是认证问题,仍需确保配置正确:

  • .env文件格式为OPENAI_API_KEY=你的API密钥
  • chatbot.py中的密钥赋值代码要放在API调用之前:
    import os
    import openai
    
    openai.api_key = os.getenv("OPENAI_API_KEY")
    

3. 重启应用

执行命令重新启动Streamlit应用:

streamlit run apps/chatbot-kickstarter/chat.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:15:22