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

基于GPT3.5与Gradio的聊天机器人对话图片显示问题求助

解决Gradio聊天机器人显示图片而非文件名的问题

问题原因

你当前代码中,聊天历史里添加的回复是图片文件名字符串,Gradio的Chatbot组件会将其作为纯文本渲染,而非解析为图片。

解决方案

修改聊天历史的内容格式,将图片文件名包装为Gradio可识别的图片字典结构,并调整组件输出配置:

  1. 修改聊天历史添加逻辑
    在my_chatbot函数中,将原本的文件名字符串替换为包含image键的字典,Chatbot组件会自动识别并渲染该图片:

    def my_chatbot(question, chat_history):
        # 调用OpenAI API、生成并保存图片的逻辑保持不变,最终得到img_filename
        # 用图片字典格式替换纯文件名
        chat_history.append((question, {"image": img_filename}))
        return "", chat_history
    
  2. 调整组件输出配置
    你当前的msg.submit中多余了gr.Image输出项,Chatbot本身支持显示图片,因此只需保留清空输入框和更新聊天记录的输出:

    with gr.Blocks() as demo:
        chatbot = gr.Chatbot()
        msg = gr.Textbox()
        clear = gr.ClearButton([msg, chatbot])
        # 移除多余的gr.Image输出,仅绑定msg和chatbot
        msg.submit(my_chatbot, [msg, chatbot], [msg, chatbot])
    
    demo.launch()
    

额外注意事项

  • 确保生成的图片文件(如xyz.png)位于Gradio可访问的路径下(默认是当前工作目录),如果图片在其他目录,可在demo.launch()时配置static_files参数指定静态文件路径,例如:
    demo.launch(static_files={"/images": "/path/to/your/image/directory"})
    
    此时图片字典需改为{"image": "/images/xyz.png"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:33:32