MCPcopy Index your code
hub / github.com/MartinDai/weChatRobot

github.com/MartinDai/weChatRobot @v1.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.3 ↗ · + Follow
84 symbols 221 edges 30 files 21 documented · 25%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

weChatRobot

一个基于微信公众号的智能聊天机器人项目,支持根据关键字或者调用OpenAI、通义千问等大语言模型服务回复内容。

License

本项目还有Go实现的版本:https://github.com/MartinDai/weChatRobot-go

qrcode

项目介绍:

本项目是一个微信公众号项目,需配合微信公众号使用,在微信公众号配置本项目运行的服务器域名,用户关注公众号后,向公众号发送任意信息,公众号会根据用户发送的内容自动回复。

涉及框架及技术

Tips:1.2版本开始使用Vert.x替换SpringBoot

支持的功能

  • [x] 自定义关键字回复内容
  • [x] 调用OpenAI接口回复内容(配置启动参数或者环境变量:OPENAI_API_KEY
  • [x] 修改OpenAI的接口地址(配置启动参数或者环境变量:OPENAI_SERVER_URL
  • [x] 调用通义千问接口回复内容(配置启动参数或者环境变量:DASHSCOPE_API_KEY
  • [x] 调用图灵机器人(V2)接口回复内容(配置启动参数或者环境变量:TULING_API_KEY

使用说明

需要有微信公众号的帐号,没有的请戳微信公众号申请

内容响应来源的优先级自定义关键字 > OpenAI > 通义千问 > 图灵机器人

在微信公众号后台配置回调URL为/weChat/receiveMessage>,其中<your.domain>替换成你自己的域名,token与config.yml里面配置的保持一致即可

OpenAI

  1. 如果需要使用OpenAI的回复内容则需要创建OpenAI的API Key并配置在启动参数或者环境变量中
  2. 可以通过配置启动参数或者环境变量OPENAI_SERVER_URL指定访问OpenAI服务的baseUrl
  3. 可以通过配置启动参数或者环境变量OPENAI_BASE_DOMAIN更换访问OpenAI的域名(优先级低于OPENAI_SERVER_URL)
  4. 可以通过配置启动参数或者环境变量OPENAI_PROXY使用代理服务访问OpenAI

通义千问

如果需要使用通义千问的回复内容则需要创建通义千问的API Key并配置在启动参数或者环境变量中

图灵机器人

如果需要使用图灵机器人的回复内容则需要注册图灵机器人帐号获取相应的ApiKey并配置在启动参数或者环境变量中

开发部署

本地启动

直接运行类com.doodl6.wechatrobot.MainVerticle

jar包运行

maven编译打包

mvn clean package

打包完成后,在robot-web/target目录会生成weChatRobot.jar

启动执行

java -jar weChatRobot.jar

使用-D指定配置文件,支持相对路径和绝对路径

java -Dconfig=config-deploy.yml -jar weChatRobot.jar

服务器部署后台运行

nohup java -jar weChatRobot.jar > ./console.log 2>&1 &

在执行命令的当前目录查看console日志

Docker运行

构建适用于当前操作系统架构的镜像

docker build -f docker/Dockerfile --no-cache -t wechatrobot:latest .

构建指定架构的镜像

docker buildx build -f docker/Dockerfile --no-cache -t wechatrobot:latest --platform=linux/amd64 -o type=docker .

后台运行镜像

docker run --name wechatrobot -p 8080:8080 -d wechatrobot:latest

感谢赞助

jetbrains

Extension points exported contracts — how you extend this code

AssistantService (Interface)
(no doc) [8 implementers]
robot-web/src/main/java/com/doodl6/wechatrobot/service/assistant/AssistantService.java
WeChatMessageProcessor (Interface)
处理微信消息接口类 [4 implementers]
robot-web/src/main/java/com/doodl6/wechatrobot/processor/WeChatMessageProcessor.java

Core symbols most depended-on inside this repo

get
called by 19
robot-common/src/main/java/com/doodl6/wechatrobot/util/HttpUtil.java
getProperty
called by 6
robot-common/src/main/java/com/doodl6/wechatrobot/util/PropertyUtil.java
jsonToObj
called by 5
robot-common/src/main/java/com/doodl6/wechatrobot/util/JsonUtil.java
validateAddress
called by 3
robot-common/src/main/java/com/doodl6/wechatrobot/util/AddressUtil.java
replaceKeywordMessageMap
called by 2
robot-web/src/main/java/com/doodl6/wechatrobot/service/assistant/impl/KeywordService.java
responseText
called by 2
robot-web/src/main/java/com/doodl6/wechatrobot/handler/MainHandler.java
executeRequest
called by 2
robot-common/src/main/java/com/doodl6/wechatrobot/util/HttpUtil.java
objToJson
called by 2
robot-common/src/main/java/com/doodl6/wechatrobot/util/JsonUtil.java

Shape

Method 50
Class 29
Enum 3
Interface 2

Languages

Java100%

Modules by API surface

robot-web/src/main/java/com/doodl6/wechatrobot/service/assistant/impl/KeywordService.java9 symbols
robot-common/src/main/java/com/doodl6/wechatrobot/util/AddressUtil.java6 symbols
robot-web/src/main/java/com/doodl6/wechatrobot/service/WeChatService.java5 symbols
robot-web/src/main/java/com/doodl6/wechatrobot/handler/MainHandler.java5 symbols
robot-web/src/main/java/com/doodl6/wechatrobot/domain/TulingTextReq.java5 symbols
robot-web/src/main/java/com/doodl6/wechatrobot/service/assistant/impl/TulingService.java4 symbols
robot-web/src/main/java/com/doodl6/wechatrobot/processor/TextMessageProcessor.java4 symbols
robot-common/src/main/java/com/doodl6/wechatrobot/util/HttpUtil.java4 symbols
robot-web/src/main/java/com/doodl6/wechatrobot/service/assistant/impl/OpenAIService.java3 symbols
robot-web/src/main/java/com/doodl6/wechatrobot/service/assistant/impl/DashscopeService.java3 symbols
robot-web/src/main/java/com/doodl6/wechatrobot/processor/WeChatMessageProcessor.java3 symbols
robot-web/src/main/java/com/doodl6/wechatrobot/processor/EventMessageProcessor.java3 symbols

For agents

$ claude mcp add weChatRobot \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact