首页 > 数据库 > 数据库开发技术 > 使用Gradio快速搭建一个聊天机器人
如果对 Gradio 库不太了解的,可以先参考一下:Gradio快速入门
使用 Gradio 这个 Python 库来开发这个聊天机器人图形界面有如下几个好处:
代码如下:
import gradio as gr
prompt = """你是一个大数据和AI领域的专家,用中文回答大数据和AI的相关问题。你的回答需要满足以下要求:
1. 你的回答必须是中文
2. 回答限制在100个字以内"""
conv = Conversation(prompt, 6)
def answer(question, history=[]):
history.append(question)
message = conv.ask(question)
history.append(message)
responses = [(u,b) for u,b in zip(history[::2], history[1::2])]
print(responses)
return responses, history
with gr.Blocks(css="#chatbot{height:300px} .overflow-y-auto{height:500px}") as rxbot:
chatbot = gr.Chatbot(elem_id="chatbot")
state = gr.State([])
with gr.Row():
txt = gr.Textbox(show_label=False, placeholder="请输入你的问题").style(container=False)
txt.submit(answer, [txt, state], [chatbot, state])
rxbot.launch()
HuggingFace 的官方网站:https://huggingface.co 我们可以看到如下一些资源。
需要注册一个 HuggingFace 的账号,点击左上角的头像,然后点击 “+New Space” 创建一个新的项目空间。
在接下来,给 Space 取一个名字【1】,然后在 Select the Space SDK 里面,选择第二个 Gradio【2】。硬件选择免费的【3】,项目这里选择 public【4】,让其他人也能够看到。最后点击创建【5】。
创建成功后,会跳转到 HuggingFace 的 App 界面。里面给了如何 Clone 当前的 space,然后提交代码部署 App 的方式。如下图:
按照上面的示例,需要通过 Git 把当前 space 下载下来,然后提交两个文件
代码提交之后,HuggingFace 的页面会自动刷新
代码里是通过环境变量获取 OpenAI 的 API Key 的,所以还要在这个 HuggingFace 的 Space 里设置一下这个环境变量。如下图:
设置完成之后,需要手动点击一下 Restart this space 确保这个应用重新加载一遍,以获取到新设置的环境变量。
到此,再切换到 APP Tab,尝试下聊天机器人是否可以正常工作了,如下图:
Q:提交问题后,界面上没有返回对话内容,通过查看日志,发现如下错误:
AttributeError("module 'openai' has no attribute 'ChatCompletion'"))]
A:解决方案
在 requirements.txt 中指定 openai 库的版本号
openai==0.27.0
Q:遇到访问限流的问题,日志如下:
A:解决方案
通过在站点中添加以下脚本将 gradioJS 库导入到站点中
<script
type="module"
src="https://gradio.s3-us-west-2.amazonaws.com/3.28.1/gradio.js"
></script>
<gradio-app src="https://yezhiwei-chatbot.hf.space"></gradio-app>
通过以下方式获取上面的代码,如下图:
访问 https://yezhwi.github.io/ 访问,进入二级页面(如:https://yezhwi.github.io/ai/2023/03/27/3%E5%88%86%E9%92%9F%E9%83%A8%E7%BD%B2ChatGPT%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%BA%94%E7%94%A8-%E9%99%84%E4%BB%A3%E7%A0%81/),拖到最下方,即可体验:
原文作者:HelloTech技术派;如有侵权,请联系管理员删除。