MCPcopy Index your code
hub / github.com/alex-oos/ai-wechat-bot

github.com/alex-oos/ai-wechat-bot @0.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.1.0 ↗ · + Follow
372 symbols 1,037 edges 80 files 183 documented · 49%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

1. gewechat

Gewechat 是基于Gewechat项目实现的微信个人号通道,使用ipad协议登录,该协议能获取到wxid,能发送语音条消息,相比itchat协议更稳定。

api文档地址为:gewechat api

首先可以简单了解 ai-wechat-bot、gewechat服务的调用关系,如下图所示

2. gewechat 服务部署教程

gewechat 服务需要自行部署,ai-wechat-bot 项目只负责对接gewechat服务,请参考下方教程部署gewechat服务。

2.1 下载镜像

感谢gewechat交流群中的大佬 @1H 重构了镜像,让gewe镜像不依赖cgroup和docker --privilege,可以在更高版本的ubuntu、debian以及macos系统上运行。

# 从阿里云镜像仓库拉取(国内)
 docker pull registry.cn-hangzhou.aliyuncs.com/gewe/gewe:latest

 docker tag registry.cn-hangzhou.aliyuncs.com/gewe/gewe gewe

2.2 使用docker启动

mkdir -p gewechat/data  
docker run -itd -v gewechat/data:/root/temp -p 2531:2531 -p 2532:2532 --privileged=true --name=gewe gewe /usr/sbin/init
#设置开机自启
docker update --restart=always gewe

2.3 使用docker compose启动

首先创建必要的数据目录:

mkdir -p gewechat/data

创建 docker-compose.yml 文件:

version: '3'
services:
  gewechat:
    image: gewe
    container_name: gewe
    volumes:
      - ./gewechat/data:/root/temp
    ports:
      - "2531:2531"
      - "2532:2532"
    restart: always

运行:

docker compose up -d

2.4 成功日志

看到如下日志,表示gewechat服务启动成功

3. 使用ai-wechat-bot对接gewechat服务

3.1 gewechat相关参数配置

在config.json中需要配置以下gewechat相关的参数:

{
    "token": "",        # gewechat服务的token,用于接口认证
    "appId": "",       # gewechat服务的应用ID
    "baseUrl": "http://本机ip:2531/v2/api",  # gewechat服务的API基础URL
    "callbackUrl": "http://本机ip:9919/v2/api/callback/collect", # 回调URL,用于接收消息
    "downloadUrl": "http://本机ip:2532/download", # 文件下载URL
}

参数说明: - token: gewechat服务的认证token,首次登录时,可以留空,启动ai-wechat-bot服务时,会自动获取token自动保存到config.json中 - appId: gewechat服务分配的设备ID,首次登录时,可以留空,启动ai-wechat-bot服务时,会自动获取appid自动保存到config.json中 - baseUrl: gewechat服务的API基础地址,请根据实际情况配置,如果gewechat服务与ai-wechat-bot服务部署在同一台机器上,可以配置为http://本机ip:2531/v2/api - callbackUrl: 接收gewechat消息的回调地址,请根据实际情况配置,如果gewechat服务与ai-wechat-bot服务部署在同一台机器上,可以配置为http://本机ip:9919/v2/api/callback/collect,如无特殊需要,请使用9919端口号 - downloadUrl: 文件下载地址,用于下载语音、图片等文件,请根据实际部署情况配置,如果gewechat服务与ai-wechat-bot服务部署在同一台机器上,可以配置为http://本机ip:2532/download

注意:请确保您的回调地址(callback_url),即ai-wechat-bot启动的回调服务可以被gewechat服务正常访问到。如果您使用Docker部署,需要注意网络配置,确保容器之间可以正常通信。

3.2 ai-wechat-bot相关参数配置

在config.json中需要配置以下

{
  "model": "ali",                              # 模型名称设置为ali
  "singleChatPrefix": [""],                   # 私聊触发前缀
  "singleChatReplyPrefix": "",               # 私聊回复前缀
  "groupChatPrefix": ["@bot"],                # 群聊触发前缀
  "groupNameWhiteList": ["ALL_GROUP"],       # 允许响应的群组
}

3.3 启动ai-wechat-bot服务

完成上述配置后,你需要确保gewechat服务已正常启动

mvn run ai-wechat-bot.jar

启动成功后,可以看到如下日志信息,注意token和appid会自动保存到config.json,无需手动保存

//: # (

)

//: # (

)

4. gewechat_channel 服务的限制

  1. gewechat 要求必须搭建服务到同省服务器或者电脑里方可正常使用,即登录微信的手机与gewechat服务必须在同一省
  2. gewechat 开源框架只支持下载接收到的图片,不支持下载文件
  3. gewechat_channel 目前暂时只支持接收文字消息只支持发送文字消息与图片消息,后续支持的消息类型会逐步完善
  4. 此项目仅用于个人娱乐场景,请勿用于任何商业场景

Extension points exported contracts — how you extend this code

ReplyMsgService (Interface)
@author Alex @since 2025/2/18 21:36 [2 implementers]
src/main/java/com/wechat/bot/service/ReplyMsgService.java
MsgSourceService (Interface)
@author Alex @since 2025/2/19 09:48 [2 implementers]
src/main/java/com/wechat/bot/service/MsgSourceService.java
SessionService (Interface)
@author Alex @since 2025/3/24 17:04 [2 implementers]
src/main/java/com/wechat/bot/service/SessionService.java
UserInfoService (Interface)
@author Alex @since 2025/3/24 17:20 [2 implementers]
src/main/java/com/wechat/bot/service/UserInfoService.java
MessageService (Interface)
@author Alex @since 2025/1/26 19:59 [2 implementers]
src/main/java/com/wechat/bot/service/MessageService.java

Core symbols most depended-on inside this repo

put
called by 224
src/main/java/com/wechat/util/OkHttpUtil.java
postJSON
called by 75
src/main/java/com/wechat/gewechat/util/OkhttpUtil.java
get
called by 48
src/main/java/com/wechat/util/OkHttpUtil.java
getContent
called by 33
src/main/java/com/wechat/gewechat/service/FavorApi.java
builder
called by 33
src/main/java/com/wechat/util/OkHttpUtil.java
toString
called by 25
src/main/java/com/wechat/bot/entity/ChatMessage.java
add
called by 23
src/main/java/com/wechat/gewechat/service/LabelApi.java
size
called by 10
src/main/java/com/wechat/task/TaskQueue.java

Shape

Method 290
Class 66
Interface 14
Enum 2

Languages

Java100%

Modules by API surface

src/main/java/com/wechat/util/OkHttpUtil.java24 symbols
src/main/java/com/wechat/gewechat/service/GroupApi.java22 symbols
src/main/java/com/wechat/gewechat/service/MessageApi.java17 symbols
src/main/java/com/wechat/bot/service/impl/MsgSourceServiceImpl.java12 symbols
src/main/java/com/wechat/bot/service/impl/LoginServiceImpl.java12 symbols
src/main/java/com/wechat/gewechat/service/ContactApi.java11 symbols
src/main/java/com/wechat/bot/service/impl/ReplyMsgServiceImpl.java11 symbols
src/main/java/com/wechat/bot/service/ReplyMsgService.java11 symbols
src/main/java/com/wechat/ai/session/SessionManager.java10 symbols
src/main/java/com/wechat/gewechat/util/OkhttpUtil.java9 symbols
src/main/java/com/wechat/gewechat/service/LoginApi.java9 symbols
src/main/java/com/wechat/ai/session/Session.java9 symbols

For agents

$ claude mcp add ai-wechat-bot \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact