乐趣区

关于golang:定制个机器人帮你和Ta聊天

主动聊天示例

聊天 1:

user: 在吗?bot: 在
user: 在干嘛呢?bot: 看电视
user: 看啥电视呀
bot: 活色生香
user: 很难看吗?bot: 特搞笑
user: 你在哪里呀?bot: 家里
user: 家里就你一个人嘛?bot: 我喜爱一个人玩
user: 那我过去找你?bot: 不能够,乖乖下班去 

聊天 2:

Q: 在吗?A: 在
Q: 干嘛呢?A: 没事
Q: 陪我去逛街嘛?A: 嗯
Q: 你在打游戏?A: 没有
Q: 那去不去?A: 去 

这是基于 200 万聊天记录训练进去的,你能够用本人和女朋友的记录训练了试试成果 :P

至于微信机器人怎么用,你能够 GitHub 搜搜看哈

我的项目阐明

chatbot 是一个通过已知对话数据集疾速生成答复的 Go 问答引擎。

为啥会有 chatbot 我的项目呢?

好多年前,当咱们须要一个聊天机器人的时候,我是先用了 ChatterBot,然而应用下来,咱们的 1.2 亿对话语料训练后的模型答复一个问题须要 21 秒左右,切实没法承受。认真看了 ChatterBot 源码之后,我用 Go 从新实现了一个,并用 go-zero 的 MapReduce 框架做了并行优化,后果咱们一个答复均匀耗时大略 18 毫秒。

国庆假期,我有点闲暇工夫,所以就把这个我的项目整顿了开源进去,一是给大家一个理论的 go-zero 的 MapReduce 示例;二是也提供大家一个闲聊机器人的我的项目玩玩。

BTW:后续我可能会开源智能客服机器人的我的项目,能够关注我的 github:

https://github.com/kevwan

代码目录和命令行应用阐明

bot

问答引擎,能够自定义本人的匹配算法

cli

  • train

    训练给定的问答数据并生成 .gob 文件

    • -d 读取指定目录下所有 jsonyaml 语料文件
    • -i 读取指定的 jsonyaml 语料文件,多个文件用逗号宰割
    • -o 指定输入的 .gob 文件
    • -m 定时打印内存应用状况
  • ask

    一个示例的问答命令行工具

    • -v verbose
    • -c 训练好的 .gob 文件
    • -t 数据几个可能的答案

数据格式

如果你有语料数据,能够自行整顿用来训练。

数据格式能够通过 yaml 或者 json 文件提供,参考 https://github.com/kevwan/chatterbot-corpus 里的格局。大抵如下:

categories:
- AI
conversations:
- - 什么是 ai
  - 人工智能是工程和迷信的分支, 致力于构建具备思维的机器。- - 你是什么语言编写的
  - Python
- - 你听起来像机器
  - 是的, 我受到造物者的启发
- - 你是一个人工智能
  - 那是我的名字。

致谢

go-zero – https://github.com/zeromicro/…

go-zerocore/mr 包的 MapReduce 实现使 chatbot 的答复效率失去了微小的晋升!

ChatterBot – https://github.com/gunthercox…

最早我是应用 ChatterBot 的,但因为答复太慢,所有起初只能本人实现了,感激 ChatterBot,十分棒的我的项目!

我的项目地址

https://github.com/kevwan/chatbot

欢送应用并 star 反对!

退出移动版