## 概述 机器人通过 HTTP 接口的形式来提供对话服务,比如: ``` https://www.my-bot.com/api/v1/chat ``` 机器人只需要实现以下任意一种接口方案,即可申请入驻广场。 ## [方案一] 标准接口 **POST** `~/chat` (接口地址必须以 `chat` 结尾) 请求体(JSON): ```json { "p": "天空为什么是蓝色的?" } ``` 请求体可能包含如下字段: 字段名 | 类型 | 必填 | 含义 | 示例 | 备注 ---|---|:---:|---|---|--- `p` | String | ✓ | 提问内容 |`'天空为什么是蓝色的?'`|`p` 表示 “prompt” `qid` | String | | 平台为当前提问分配的唯一标识 |`'bxqid-cManAtRMszw...'`|由平台生成并传递给机器人,以便机器人区分单个问题(写日志、追踪调试、异步回调等) `uid` | String | | 用户的唯一标识 | `'bxuid-Aj8Spso8Xsp...'` | 由平台生成并传递给机器人,以便机器人区分用户 响应体(JSON): ```js -{ "data": { "type": "text", // 也可以是 "markdown" "content": "因为..." } } ``` ## [方案二] Hugging Face 风格接口 **POST** `https://*.hf.space/run/predict` > 为方便 Hugging Face 开发者快速接入,特提供本方案。 > > 当机器人提供的接口符合上述模式,平台会自动识别它是一个 Hugging Face 应用。 请求体(JSON): ```js -{ "data": [ // 注意:这里 `data` 是一个数组 "天空为什么是蓝色的?", // 相当于方案一的 `p` 字段 "bxqid-cManAtRMszw...", // 相当于方案一的 `qid` 字段 "bxuid-Aj8Spso8Xsp..." // 相当于方案一的 `uid` 字段 ] } ``` 响应体(JSON): ```js -{ "data": [ // 注意:这里 `data` 是一个数组 "text", // 相当于方案一的 `type` 字段 "因为..." // 相当于方案一的 `content` 字段 ] } ```