{"id":19151764,"url":"https://github.com/zhs007/chatbot","last_synced_at":"2025-05-07T05:42:14.650Z","repository":{"id":56057462,"uuid":"207797566","full_name":"zhs007/chatbot","owner":"zhs007","description":"chatbot","archived":false,"fork":false,"pushed_at":"2020-11-28T03:27:37.000Z","size":286,"stargazers_count":6,"open_issues_count":6,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T19:05:06.048Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhs007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-11T11:38:51.000Z","updated_at":"2022-02-05T13:10:54.000Z","dependencies_parsed_at":"2022-08-15T12:20:37.919Z","dependency_job_id":null,"html_url":"https://github.com/zhs007/chatbot","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fchatbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fchatbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fchatbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fchatbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhs007","download_url":"https://codeload.github.com/zhs007/chatbot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252823667,"owners_count":21809707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T08:15:39.723Z","updated_at":"2025-05-07T05:42:14.584Z","avatar_url":"https://github.com/zhs007.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# chatbot\n\n### 概要\n\ngolang的chatbot框架。  \n特性如下：\n\n- 支持多聊天工具，现在支持telegram和QQ（coolq）。\n- 分布式弹性架构，主进程和各聊天工具对接进程彻底分离，用户管理进程等也可以独立配置，各服务节点之间通过grpc通信，不限开发语言。\n- 插件式结构，可以非常方便的通过插件扩展chatbot功能。\n- 支持command扩展，可以方便的处理各种指令参数。\n- 支持文件处理器扩展，可以方便的添加新的文件处理代码。\n- 支持多语言。\n- 支持配置文件响应指令。\n- 开发简单，易上手；大部分节点都无需二次开发，即可直接使用。\n- 调试友好，自带debug模式，直接通过聊天，就可以得到足够的调试信息。\n- 运维友好，所有节点都直接通过Docker部署，提供第三方服务部署脚本。\n\n计划添加的功能：\n\n- 跨聊天工具的统一账号管理；通过token绑定账号。\n- 支持自然语言聊天。\n\n### 使用\n\n暂略\n\n### 开发 Core Node\n\n暂略\n\n### 接入 telegram\n\n接入telegram非常简单，您可以直接使用官方镜像。  \n\n安装或更新官方镜像：\n\n``` sh\ndocker pull zerrozhao/telegrambot\n```\n\n然后需要一个telegram的配置文件，格式如下：\n\n``` yaml\ntelegramtoken: 1234567\n\ntoken: 1234567\nservaddr: 127.0.0.1:123\nusername: ada\n```\n\n这个文件需要放在当前目录的cfg下，然后我们可以通过下面的脚本来启动telegrambot节点。\n\n``` sh\ndocker container stop telegrambot\ndocker container rm telegrambot\ndocker run -d \\\n    --name telegrambot \\\n    --link adachatbot:adachatbot \\\n    -v $PWD/cfg:/app/telegrambot/cfg \\\n    -v $PWD/logs:/app/telegrambot/logs \\\n    zerrozhao/telegrambot\n```\n\n这里没有直接用``--rm``，而是先 ``stop`` ，再 ``rm`` ，主要是方便查看错误日志。\n\n### 接入 CoolQ\n\n1. 注册QQ号，绑定手机号。\n2. 用手机版的QQ登录手机号，开启账号锁定。\n3. 使用coolq目录下的 init.sh 脚本初始化 coolq，这个脚本基本上可以不用修改。\n4. 第一次启动 coolq，用 coolq目录下的 start.sh 脚本启动 coolq，注意参数，建议修改端口、密码、qq号等参数。\n5. 用浏览器连接导出的9000端口，用VNC密码登录进去，启动CoolQ，第一次启动，会需要短信验证码，前面步骤1、2一定要执行，这种方式最省事了！\n6. 到data/app/io.github.richardchien.coolqhttpapi/config/修改配置文件，qq号.ini。  \n``` ini\nserve_data_files = yes\nuse_ws = yes\nws_host = 0.0.0.0\nws_port = 6700\n```\n7. 重启coolq。\n\n然后，才可以开始部署coolqbot。  \n还是直接使用官方镜像吧。\n\n``` sh\ndocker pull zerrozhao/coolqbot\n```\n\n修改coolqbot的配置文件。\n\n``` yaml\nooolqtoken:\ncoolqsecret:\ncoolqservurl: ws://127.0.0.1:5700\ncoolqhttpservaddr: \n\ntoken: 1234567\nservaddr: 127.0.0.1:123\nusername: ada\n\ndebug: true\npreloaduserinfo: true\n```\n\n接下来，我们可以启动coolqbot了。\n\n``` sh\ndocker container stop coolqbot\ndocker container rm coolqbot\ndocker run -d \\\n    --name coolqbot \\\n    --link adachatbot:adachatbot \\\n    --link cqhttp:cqhttp \\\n    -p 7234:7234 \\\n    -v $PWD/cfg:/app/coolqbot/cfg \\\n    -v $PWD/logs:/app/coolqbot/logs \\\n    zerrozhao/coolqbot\n```\n\n必要的参数要改，如果开在一台服务器上，建议用 ``--link``，可以省掉外网端口占用。\n\n\n\n### 版本更新\n\n##### v0.6\n\n- 支持多行``command``，不影响老版本``command``扩展的用法。\n- ``logger``模块调整，支持重设logger，兼容性更强。\n\n##### v0.5\n\n- ``golang``升级到``1.13`` 。\n- 增加基础``chatbot``节点，完全无需二次开发即可使用。\n- 支持图片。\n- 支持``forward``消息。\n- 支持笔记助理，可以帮您记录关键聊天信息，并支持全局检索和列表。\n- 代码结构小幅调整，直接 ``go get -u`` 无法正确升级，需要显示升级。\n\n##### v0.3\n\n- ``grpc``、``protobuf``版本更新，``protos`` 结构调整，支持 ``go_package``。\n- 代码结构小幅调整，直接 ``go get -u`` 无法正确升级，需要显示升级。\n- 支持channel、group等。\n\n##### v0.2\n\n- 支持QQ。\n\n##### v0.1\n\n- 核心架构完成。\n- 完成telegram节点。\n- plugin、command、fileprocessor架构完成。\n- 多语言框架完成。\n- 第一个机器人，Ada的telegram完成，[这里](https://t.me/@ada_heyalgo_bot)。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhs007%2Fchatbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhs007%2Fchatbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhs007%2Fchatbot/lists"}