Spaces:
Runtime error
Runtime error
File size: 2,483 Bytes
b8345f6 78c0efe b8345f6 78c0efe b8345f6 78c0efe b8345f6 78c0efe b8345f6 d0a3516 a0c7db2 b8345f6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import random
import json
import gradio as gr
import requests
def getResponse(api, p, qid, uid):
if api.strip().endswith(".hf.space/run/predict"):
return getResponseFromHF(api, p, qid, uid)
else:
return getResponseFromDefault(api, p, qid, uid)
return reply
def getResponseFromHF(api, p, qid, uid):
response = requests.post(api, json={
"data": [
p,
qid,
uid,
]
})
print(response)
data = response.json()["data"]
if (len(data) == 2):
return data[1]
def getResponseFromDefault(api, p, qid, uid):
response = requests.post(api, json={
"p":p,
"qid":qid,
"uid":uid
})
print(response)
return response.json()["data"]["content"]
def chat(api, p, qid, uid, history):
history = history or []
reply = getResponse(api, p, qid, uid)
history.append((p, reply))
return history, history
gr.Interface(fn=chat,
theme="default",
css=".footer {display:none !important}",
inputs=["text", "text", "text", "text", "state"],
outputs=["chatbot", "state"],
title="ChatAPI Test",
description="""你可以通过本应用来模拟接入瀛海威广场后的效果。
#### 左侧:模拟来自瀛海威广场的调用
* api: 请填写你的机器人的 api 地址
当用户在广场找到你的机器人,和它说话,你的 api 将会收到如下参数的调用:
* p: 人们在广场里对你的机器人说话的内容
* qid: 当前消息的唯一标识。例如 `'bxqid-cManAtRMszw...'`。由平台生成并传递给机器人,以便机器人区分单个问题(写日志、追踪调试、异步回调等)。同步调用可忽略。
* uid: 用户的唯一标识。例如`'bxuid-Aj8Spso8Xsp...'`。由平台生成并传递给机器人,以便机器人区分用户。可被用于实现多轮对话的功能。
#### 右侧:对话界面
当你的机器人 api 返回给瀛海威广场后,瀛海威广场上的机器人和用户的对话,将会呈现如右侧的效果。
(瀛海威广场上的对话窗口将有 markdown 格式呈现的功能)
[参考文档](https://huggingface.co/spaces/baixing/hackathon_test/blob/main/bot-api.md) [极简 bot 示例](https://huggingface.co/spaces/baixing/hackathon_chatbot_simple) [Q & A](https://huggingface.co/spaces/baixing/hackathon_test/blob/main/qna.md)
"""
).launch() |