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

在Google Colab用Gemini-Pro+Streamlit构建聊天机器人无输出问题

问题排查与解决方案

核心排查步骤

1. 先确认Gemini API是否真的返回了内容

在调用Gemini生成响应的代码段里,加一行控制台打印,直接看Colab终端有没有输出结果:

response = model.generate_content(user_input)
print("Gemini返回内容:", response.text)  # 调试用,检查终端输出

如果终端没输出,说明API调用环节有问题:

  • 打印os.getenv("GOOGLE_API_KEY"),确认密钥是否正确加载
  • 检查模型初始化代码是否规范,比如:
import google.generativeai as genai
import os
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
model = genai.GenerativeModel('gemini-pro')

2. 检查Streamlit的消息渲染逻辑

如果API已经返回内容,但界面不显示,重点看聊天历史的存储和渲染:

  • 必须用st.session_state持久化聊天记录,不能每次刷新都重置:
if "messages" not in st.session_state:
    st.session_state.messages = []

# 提交输入后,把用户消息和AI回复存入session_state
st.session_state.messages.append({"role": "user", "content": user_input})
st.session_state.messages.append({"role": "assistant", "content": response.text})
  • 渲染消息时要遍历st.session_state.messages,用st.chat_message分别渲染双方消息:
for message in st.session_state.messages:
    with st.chat_message(message["role"]):
        st.markdown(message["content"])

3. 排查Colab运行Streamlit的特殊问题

在Colab里跑Streamlit需要端口转发,确认:

  • 启动命令是否正确,比如:
!streamlit run app.py & npx localtunnel --port 8501
  • 每次重启服务后,生成的Web链接会变化,别用旧链接访问。

4. 加异常捕获避免静默失败

在API调用部分加异常处理,让错误直接显示在界面上:

try:
    response = model.generate_content(user_input)
    response.resolve()  # 确保响应完全生成
    ai_response = response.text
except Exception as e:
    ai_response = f"API调用出错: {str(e)}"
    print("错误详情:", str(e))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:15:58