我是靠谱客的博主 迷人海燕,最近开发中收集的这篇文章主要介绍基于开源语义理解框架 Clause 实现聊天机器人这就是答案Clause Quick Start Guide / Clause 快速开始,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在国外,有知名的开源项目 Rasa 实现 Task Chatbot,对各种业务场景通过自然语言交互,在对话中识别意图、收集数据,提高业务流程自动化。

那么,中文有没有优秀的聊天机器人开源框架呢?

这就是答案

Chatopera Language Understanding Service,Chatopera 语义理解服务

https://github.com/chatopera/clause

Clause Quick Start Guide / Clause 快速开始

Chatopera Language Understanding Service,Chatopera 语义理解服务

在这里插入图片描述

前提

  • 已部署 Clause 服务,参考部署文档

下载镜像

下载示例代码

git clone https://github.com/chatopera/clause-quick-start.git
cd clause-quick-start

安装依赖

安装 Clause Python Package

cd clause-quick-start
pip install -r requirements.txt

执行示例程序

cd clause-quick-start       # demo目录
CL_HOST=127.0.0.1           # 设置 Clause 服务的 IP 地址
CL_PORT=8056                # 设置 Clause 服务的端口
python bot.py               # 执行demo脚本

该脚本执行的示例代码bot.py内有注释介绍如何完成:

步骤说明
1清除该机器人之前的数据
2创建自定义词典
3添加自定义词条
4创建意图
5添加意图槽位
6添加意图说法
7训练机器人
8创建会话
9和机器人对话

示例程序是一个点餐程序,输出内容如下:

[connect] clause host 127.0.0.1, port 8056
[clean_up_bot] remove intent take_out
[clean_up_bot] remove customdict food
[create] dict name food
[create] intent name take_out
[create] intent slot time
[create] intent slot loc
[create] intent slot food
[create] intent utter 我想订一份{food}
[create] intent utter 我想点外卖
[create] intent utter 我想点一份外卖,{time}用餐
[create] intent utter 我想点一份{food},送到{loc}
[train] start to train bot ...
[train] in progress ...
[chat] human: 我想点外卖,来一份汉堡包
[chat] bot: 您想什么时候送到?
[chat] human: 今天下午5点
[chat] bot: 您希望该订单送到哪里?
[chat] human: 送到大望路5号20楼
[chat] bot: 好的
[session] 订单信息: 收集信息已完毕 True
    intent: take_out
    entities:
        food: 汉堡包
        time: 今天下午5点
        loc: 大望路5号

详细了解程序,参考文档。

输入文件

需要强调的是,该示例程序使用了 profile.json 文件作为机器人的输入数据,该文件描述了机器人的词典、说法和槽位等信息。

profile.json 内容如下:

{
  "chatbotID": "bot007",
  "dicts": [
    {
      "name": "food",
      "dictwords": [
        {
          "word": "汉堡",
          "synonyms": "汉堡包;漢堡;漢堡包"
        }
      ]
    }
  ],
  "intents": [
    {
      "name": "take_out",
      "description": "下外卖订单",
      "slots": [
        {
          "name": "time",
          "dictname": "@TIME",
          "requires": true,
          "question": "您想什么时候送到?"
        },
        {
          "name": "loc",
          "dictname": "@LOC",
          "requires": true,
          "question": "您希望该订单送到哪里?"
        },
        {
          "name": "food",
          "dictname": "food",
          "requires": true,
          "question": "您需要什么食物?"
        }
      ],
      "utters": [
        {
          "utterance": "我想订一份{food}"
        }
      ]
    }
  ]
}

开发者可以很方便的通过修改这个文件复用bot.py脚本训练和请求机器人对话服务。

停止服务并清空数据

恢复该示例项目到初始状态。

cd clause-quick-start
docker-compose down
docker-compose rm

sudo rm -rf ./var/mysql/data/*
sudo rm -rf ./var/activemq/data/*
sudo rm -rf ./var/redis/data/*
sudo rm -rf ./var/local/workarea/*

Clause 服务端技术栈

以下仅列出部分 Clause 使用的框架/开源软件,

Apache Thrift, C++, Docker, LevelDB, ActiveMQ, Jieba, Xapian, LAC/PaddlePaddle, Google Protobuf, etc.

选择标准:开源并且商业友好、高性能、适合集群大规模生产环境使用、适用 Cloud Native开发部署、微服务模式、多语言 SDK、可部署于廉价的硬件资源、可维护性强、成熟。

在这里插入图片描述

了解更多

https://github.com/chatopera/clause/wiki

  • 概述
  • 系统设计与实现
  • 服务部署
  • 示例程序
  • 开发环境搭建
  • 系统集成
  • API 文档
  • FAQ

开源许可协议

Apache License Version 2.0

最后

以上就是迷人海燕为你收集整理的基于开源语义理解框架 Clause 实现聊天机器人这就是答案Clause Quick Start Guide / Clause 快速开始的全部内容,希望文章能够帮你解决基于开源语义理解框架 Clause 实现聊天机器人这就是答案Clause Quick Start Guide / Clause 快速开始所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部