使用Hugging Face和Gradio在5分钟内构建AI聊天机器人

通过这个易于跟随的教程,在浏览器中学习使用低代码技术创建一个 Gradio 聊天机器人

这个简短的教程将使用Microsoft的DialoGPT模型、Hugging Face Space和Gradio干扰来构建一个简单的聊天机器人。你将能够使用类似的技术在5分钟内开发和定制自己的应用程序。

1. 创建一个新空间

  1. 访问hf.co并创建一个免费账户。之后,点击右上角的显示图像,选择“新空间”选项。
  2. 填写表单,包括应用名称、许可证、空间硬件和可见性。

  1. 点击“创建空间”来初始化应用程序。
  2. 你可以从本地系统克隆存储库并推送文件,或者在浏览器中使用Hugging Face创建和编辑文件。

2. 创建聊天机器人应用程序文件

我们将点击“文件”选项卡> + 添加文件> 创建一个新文件。

创建一个Gradio界面。你可以复制我的代码。

我已经加载了“microsoft/DialoGPT-large”的分词器和模型,并创建了一个`predict`函数来获取响应并创建历史记录。

from transformers import AutoModelForCausalLM, AutoTokenizer
import gradio as gr
import torch


title = "🤖AI聊天机器人"
description = "一个最先进的大规模预训练响应生成模型(DialoGPT)"
examples = [["你好吗?"]]


tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-large")
model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-large")


def predict(input, history=[]):
    # 对新输入的句子进行分词
    new_user_input_ids = tokenizer.encode(
        input + tokenizer.eos_token, return_tensors="pt"
    )

    # 将新的用户输入标记追加到聊天历史记录中
    bot_input_ids = torch.cat([torch.LongTensor(history), new_user_input_ids], dim=-1)

    # 生成一个响应
    history = model.generate(
        bot_input_ids, max_length=4000, pad_token_id=tokenizer.eos_token_id
    ).tolist()

    # 将标记转换为文本,然后将响应拆分为行
    response = tokenizer.decode(history[0]).split("<|endoftext|>")
    # print('decoded_response-->>'+str(response))
    response = [
        (response[i], response[i + 1]) for i in range(0, len(response) - 1, 2)
    ]  # 转换为列表的元组
    # print('response-->>'+str(response))
    return response, history


gr.Interface(
    fn=predict,
    title=title,
    description=description,
    examples=examples,
    inputs=["文本", "状态"],
    outputs=["聊天机器人", "状态"],
    theme="finlaymacklon/boxy_violet",
).launch()

此外,我还为我的应用程序提供了一个自定义的主题:boxy_violet。你可以浏览Gradio主题画廊,根据自己的口味选择主题。

3. 创建一个要求文件

现在,我们需要创建一个`requirement.txt`文件并添加所需的Python包。

transformers
torch

之后,你的应用程序将开始构建,并在几分钟内下载模型并加载模型推理。

4. Gradio演示

Gradio应用看起来很棒。我们只需要为每个不同的模型架构创建一个`predict`函数,以获取响应并保持历史记录。

现在您可以与kingabzpro/AI-ChatBot上的应用进行聊天和互动,或使用https://kingabzpro-ai-chatbot.hf.space将您的应用嵌入到您的网站中。

kingabzpro/AI-ChatBot的图片

您还感到困惑吗?在Spaces上寻找数百个聊天机器人应用程序,以获取灵感并了解模型推理。

例如,如果您有一个在“LLaMA-7B”上微调的模型。搜索该模型并向下滚动以查看模型的各种实现。

decapoda-research/llama-7b-hf的图片

结论

总之,本博客提供了使用Hugging Face和Gradio在短短5分钟内创建AI聊天机器人的快速简易教程。通过逐步说明和可定制的选项,任何人都可以轻松创建自己的聊天机器人。

这很有趣,我希望您有所收获。请在评论区分享您的Gradio演示。如果您正在寻找更简单的解决方案,请查看OpenChat:用于在几分钟内构建自定义聊天机器人的免费简易平台。Abid Ali Awan(@1abidaliawan)是一位持有认证的数据科学家,热衷于构建机器学习模型。目前,他专注于内容创作,并撰写有关机器学习和数据科学技术的技术博客。Abid拥有技术管理硕士学位和电信工程学士学位。他的愿景是使用图神经网络为患有心理疾病的学生构建AI产品。