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

关于Gradio Chatbot的JSON格式及API调用的技术问询

Gradio Chatbot API调用问题解析

一、Gradio Chatbot对应的JSON格式

Gradio的Chatbot组件存储聊天历史的格式是嵌套列表,每个子列表包含两个元素:用户发送的消息、机器人回复的消息。对应的JSON格式示例如下:

[
  ["你好", "很高兴认识你!"],
  ["请问怎么调用API?", "可以参考gradio-client的官方示例哦"]
]

如果是没有历史对话的初始状态,直接传空列表[]即可,不需要单独创建JSON文件。

二、正确的API调用示例

结合你提供的服务端代码,/chat接口接收两个参数:用户输入的文本、当前聊天历史。调用时无需传入JSON文件路径,直接传入Python列表形式的历史记录即可:

from gradio_client import Client

# 替换成你的Gradio共享链接
client = Client("https://xxxx.gradio.live/")
# 初始历史为空列表,代表之前没有对话
result = client.predict(
    "hello",    # 用户输入的消息
    [],         # 聊天历史(空列表表示无历史)
    api_name="/chat"
)
print(result)

调用后会返回一个元组,第一个元素是空字符串(对应服务端清空输入框),第二个元素是更新后的聊天历史,比如:

('', [['hello', 'Yes']])

如果需要携带已有历史调用,直接传入对应列表即可:

result = client.predict(
    "再问一次",
    [["hello", "Yes"]],  # 已有聊天历史
    api_name="/chat"
)
# 返回结果示例:('', [['hello', 'Yes'], ['再问一次', 'No']])

三、你遇到的错误原因及解决

你之前的错误是因为传入了"/content/chatbot.json"文件路径,但该文件可能不存在、格式不符合要求,导致服务端返回异常,客户端解析时出现KeyError和TypeError。

解决方法很简单:直接传入聊天历史的Python列表(空列表或已有历史的列表),无需使用JSON文件路径。文档里标注的"filepath to JSON file"是可选场景(比如历史记录存在本地文件时),但日常调用直接传列表更便捷可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:17:47