ChatWoot + Google bot

ChatWoot服务

  1. 官方文档
  2. 部署完成应该有三个服务 chatwoot、 postgres、redis


  3. 创建一个website inbox

Ruby 服务(处理机器人消息)

  1. clone repo 到本地 github:https://github.com/chatwoot/dialogflow-agent-bot-demo
  2. 拷贝项目根目录 .env.example 文件为 .env 并配置几个重要环境变量
CHATWOOT_URL   # chatwoot 服务地址 确保能curl成功 成功访问
AGENT_BOT_TOKEN   # 机器人Token  用于与chatwoot机器人通信
DIALOGFLOW_CREDENTIALS  # dialogflow json文件
DIALOGFLOW_PROJECT_ID    #dialogflow project id
REDIS_URL=redis://localhost:6379   # 数据库地址
  1. 检查项目Ruby 版本
检查当前系统ruby版本是否与项目匹配  ruby -v
查看Gemfile文件  ex: ruby '3.2.2'  gem 'rails', '~> 7.0.8.4'
bundle install 更新项目ruby相关依赖
  1. 项目根目录执行 rails命令启rb服务
不指定ip              rails s -p 4000
指定ip并且常驻后台      nohup rails s -b 0.0.0.0 -p 4000 &   

创建机器人

1.Docker 环境要先执行 docker exec -it root-rails-1 sh
2.进入chatwoot 代码根目录 启动 rails 控制台 bundle exec rails c -e production   (-e production 指定生产环境)
# 创建机器人  name 机器人名字 outgoing_url 处理机器人消息的rb服务 ,事实上就是一个webhook  会以post请求发给rb服务
3.bot = AgentBot.create!(name: "Your Bot", outgoing_url: "http://localhost:4000")
# 查看机器人token
4.bot.access_token.token
# 将机器人与inbox关联
5.AgentBotInbox.create!(inbox: Inbox.first, agent_bot: bot)

其他相关API

删除机器人和删除inbox 在chatwoot后台无法删除,故给出API方案
删除机器人
# 获取 AgentBot 实例
agent_bot = AgentBot.find(1)  # 1 是创建的时候生成的id
agent_bot.destroy
删除inbox
# 获取 Inbox 实例
inbox = Inbox.find(1)
inbox.destroy

启动SideKip服务

在Super Admin Console 中有一个 Sidekiq Dashboard
观察队列数据是否正常,如果一直没有被消费 则需要启动sidekip服务
bundle exec sidekiq
_knowledge_951d7417-f207-4013-b134-da4d4648a9a5.png

Dialogflow配置

  1. 官方配置文档
  2. API付费启动开关

其他一些命令记录

#登入服务器
ssh  root@chatwook.xiaoyi.com  
# 查看当前所有服务进程
netstat -tnlp
#查看容器&日志
docker ps
docker logs -f root-rails-1
#查看系统日志
tail -100f /var/log/syslog
# 查看rb服务日志
cat logs/development.log
# rb 打印日志到 log
Rails.logger.info  "进入请求 #{var}"

最终效果

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容