【Gradio】Chatbot | 如何使用 Gradio Blocks 创建自定义聊天机器人

简介

重要提示:如果您刚开始接触,我们建议使用 gr.ChatInterface 来创建聊天机器人——它是一个高级抽象,使得可以快速创建漂亮的聊天机器人应用程序,往往只需一行代码。在这里了解更多信息。

本教程将展示如何使用 Gradio 的低级 Blocks API 从头开始制作聊天机器人 UI。这将使您完全控制您的聊天机器人 UI。您将首先创建一个简单的聊天机器人来显示文本,第二个聊天机器人来流式传输文本响应,最后一个聊天机器人还可以处理媒体文件。我们创建的聊天机器人界面将如下所示:

0fc75080e9855e77966ba8cf2c34bd83.png

先决条件:我们将使用 gradio.Blocks 类来构建我们的聊天机器人演示。如果您还不熟悉它,可以先阅读 Blocks 指南。另外,请确保您使用的是 Gradio 的最新版本: pip install --upgrade gradio 。

一个简单的聊天机器人演示 

让我们从重现上面的简单演示开始。你可能已经注意到,我们的机器人对任何输入只是随机回答“你好吗?”,“我爱你”,或者“我非常饿”。以下是用 Gradio 创建这个的代码:

import gradio as gr  # 导入gradio库
import random  # 导入random库,用于生成随机数
import time  # 导入time库,用于控制时间相关的功能


# 使用gr.Blocks创建一个Gradio界面
with gr.Blocks() as demo:
    chatbot = gr.Chatbot()  # 创建一个聊天机器人组件
    msg = gr.Textbox()  # 创建一个文本框组件,用于用户输入消息
    clear = gr.ClearButton([msg, chatbot])  # 创建一个清除按钮,用于清除文本框和聊天机器人的内容


    # 定义一个响应函数,用于处理用户消息和聊天历史
    def respond(message, chat_history):
        # 机器人随机选择一条消息作为回复
        bot_message = random.choice(
            ["How are you?", "I love you", "I'm very hungry"])
        # 将用户消息和机器人消息添加到聊天历史中
        chat_history.append((message, bot_message))
        # 等待2秒钟
        time.sleep(2)
        # 返回空字符串和更新后的聊天历史
        return "", chat_history


    # 当文本框提交时,调用respond函数,并更新文本框和聊天机器人的内容
    msg.submit(respond, [msg, chatbot], [msg, chatbot])


# 启动应用程序
demo.launch()

这里有三个 Gradio 组件:

  • 一个 Chatbot ,它的值存储了用户和机器人之间对话的完整历史,作为响应对的列表。

  • 一个 Textbox ,用户可以在其中输入他们的消息,然后按回车/提交以触发聊天机器人的回应

  • 一个 ClearButton 按钮来清除文本框和整个聊天机器人的历史记录

我们有一个单一的函数, respond() ,它接收聊天机器人的整个历史记录,在记录中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值