Wechat-AI-Assistant

Wechat-AI-Assistant

微信AI助理 (Wechat AI Assistant): 在微信中与 AI 助理进行多模态交互, 处理问答、扮演角色、响应语音消息、分析图片和视频、总结文章和网页链接、搜索互联网等等。现支持 OpenAI Assistant API 和 GPT-4o模型。

Stars: 106

Visit
 screenshot

Wechat AI Assistant is a project that enables multi-modal interaction with ChatGPT AI assistant within WeChat. It allows users to engage in conversations, role-playing, respond to voice messages, analyze images and videos, summarize articles and web links, and search the internet. The project utilizes the WeChatFerry library to control the Windows PC desktop WeChat client and leverages the OpenAI Assistant API for intelligent multi-modal message processing. Users can interact with ChatGPT AI in WeChat through text or voice, access various tools like bing_search, browse_link, image_to_text, text_to_image, text_to_speech, video_analysis, and more. The AI autonomously determines which code interpreter and external tools to use to complete tasks. Future developments include file uploads for AI to reference content, integration with other APIs, and login support for enterprise WeChat and WeChat official accounts.

README:

微信 AI 助理 (Wechat AI Assistant)

在微信中与 ChatGPT AI 助理进行多模态交互, 处理问答、扮演角色、响应语音、图片和视频消息、总结文章和网页、搜索互联网等等。把个人微信变成你的 AI 助理。

简介

本项目使用 WeChatFerry 库控制 Windows PC 桌面微信客户端, 调用 OpenAI Assistant API 进行智能多模态消息处理。

  • 在微信中与 ChatGPT AI 对话(文字或语音),进行多模态交互。
  • 使用 WeChatFerry 接入 Windows 桌面版微信, 对微信的兼容性高(无需实名认证), 风险低。
  • 使用 OpenAI Assistant API 自动管理群聊对话上下文。
  • 使用 gpt-4o 等视觉支持模型,可进行图片/视频内容读取分析。
  • 文档上传,文档内容检索,根据文档内容回答问题(使用 OpenAI 内置 file_search 工具)。
  • AI 自行判断调用代码解释器和外部工具完成任务。现有工具: bing_search (必应搜索), browse_link (浏览网页链接), text_to_image (文字描述作图), text_to_speech (文本转语音), mahjong_agari(立直麻将和牌计算:番数,符数,役种,点数等)
  • 后续计划开发: 其他 API 和工具调用 / 企业微信和微信公众号登录
  • QQ群: 812016253 点击加入
  • 支持微信桌面客户端版本:3.9.10.27

使用案例

  • "画一张猫和水豚一起滑雪的照片"
  • "(引用图片) 根据图片内容作一首诗,并读给我听"
  • "(引用公众号文章或网页链接) 总结一下文章的要点"
  • "搜索关于OPENAI的新闻, 把结果读给我听"
  • "立直麻将手牌 1112345678999m 自摸0m,和什么役种和点数?"

部署说明

部署需要的条件:

  1. OpenAI API Key 注: 本项目依赖于 Assistant API,非官方的 API 入口请确认是否支持 Assistant API。
  2. Windows 电脑或服务器。
  3. (可选, 中国国内) 访问 OpenAI 的代理服务器 (例如 openai-proxy), 或者使用 API 代理。
  4. (可选,手动部署需要) 安装好 Python 环境和 Git
    • Python 下载页面 (推荐 Python 3.11, 本项目部分依赖在 Python 3.12 以上版本无法自动安装)
    • Git 下载页面
  5. (可选, 供联网搜索插件使用) Bing Search API Key. 获取地址

方法1: 从Release下载(直接使用)

  1. Releases 中下载打包好的可执行文件和微信安装文件
  2. 安装微信 Windows 桌面指定版本 (安装包已提供)。
  3. 将压缩包解压到本地。
  4. 编辑 config.yaml 文件(必填项目为openai api_key,配置项说明见文档。)
  5. 运行"main.exe", 程序将唤起微信客户端, 登录后程序开始运行。

方法2: 源码手动部署(开发)

  1. 安装微信Windows指定版本版本。请到 Release 中下载。
  2. 克隆项目代码到本地
git clone https://github.com/latorc/Wechat-AI-Assistant.git
  1. (可选) 创建 Python 虚拟环境并激活
python -m venv .venv
call .venv\Scripts\activate.bat
  1. 安装依赖的库; 这里使用清华的来源, 方便中国国内用户快速下载
cd Wechat-AI-Assistant
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
  1. 编辑配置文件: 重命名配置文件 config_template.yaml 为 config.yaml, 并编辑配置项。配置项说明见文档。
  2. 运行 main.py
python main.py

程序会自动唤起微信客户端, 之后扫码登录微信桌面客户端, 即可开始使用。

主要配置项

配置项 说明 举例
api_key 你的 OpenAI API Key sk-abcdefg12345678....
base_url API 的网址, 使用默认 API 无需改动, 使用代理或第三方 API 时填写 https://api.openai.com/v1
proxy 用于访问 OpenAI 的代理服务器地址, 格式为"http://地址:端口号" http://10.0.0.10:8002
chat_model 默认使用的聊天模型 gpt-4o
admins 管理员微信号列表, 只有管理员可以使用管理员命令 [wx1234, wx2345]

其他配置选项请参见 config.yaml 中的注释。

使用提示

  • 添加微信AI助理的微信好友, 或将其加入群聊中并@它, 与它进行对话。
  • 直接与其对话将调用 ChatGPT 进行回答。可以发送图片和文件后, 引用图片和文件并@AI助理, 指示其进行处理。
  • 微信AI助理会根据用户的文本, 自主选择调用工具完成任务。现阶段工具包括绘图(OpenAI dall-e-3), 代码解释器, 合成语音(OpenAI API), 访问网页, 搜索等。
  • 绘图质量暂时由 AI 控制
  • 只支持指定版本微信,请在设置中关闭微信自动更新。运行前请关闭打开的微信桌面客户端。

管理员命令

定义了管理员后 (config.yaml 文件中的 admins 项目), 管理员可以使用管理员命令。默认的命令如下:

命令 说明
$帮助 显示帮助信息
$刷新配置 重新载入程序配置
$清除 清除当前对话记忆
$加载<预设名> 为当前对话加载预设
$重置预设 为当前对话重置预设到默认预设
$预设列表 显示可用的预设
$id 显示当前对话的id

这些命令可以在 config.yaml 中修改

对话预设功能

  • 对话预设是对当前对话(群聊或单聊)生效的系统提示词和消息包装方式。
  • 对AI助理使用默认命令"$加载 <预设名>"可以为当前对话加载预设。"$预设列表"命令显示当前可用的预设及其描述。
  • <预设名>为定义在 presets 目录下的同名 yaml 配置文件。
  • default.yaml 是默认预设, 对话默认使用。
  • 可以用配置文件中的 group_presets 字段,为对话设置预设,程序启动时自动加载。
  • 要创建自己的预设, 请参考 presets 目录下的 default.yaml, 即默认的预设。复制该文件,改名成你的预设名称,并修改其中信息。
    • desc: 预设的简单描述
    • sys_prompt: 预设的系统提示词
    • msg_format: 包装用户消息的格式字符串, 可用替换变量 {message}=原消息, {wxcode}=发送者微信号, {nickname}=发送者微信昵称。如不设置则直接发送源消息。

工具 (插件)

  • 工具代表外部函数和 API, 可以供 AI 模型自主选择调用, 来完成额外任务, 如画图, 联网搜索等功能。
  • 使用 "$帮助" 命令显示启用的工具插件。
  • 工具配置: 在 config.yaml 中的 tools 字段, 定义了工具是否启用, 以及工具的配置选项。要禁用工具, 只需删除或者注释掉插件名。某些插件需要额外配置选项才能工作, 比如 bing_search (必应搜索) 需要 api_key 才能工作。
  • 每个工具在 Assistant 中对应一个 Function Tool, 可以在 OpenAI Playground 查看。
  • 工具代码位于 tools 目录下, 继承 ToolBase 类并实现接口。

工具介绍:

  • bing_search (必应搜索): 使用微软 Bing Search API 搜索互联网上的内容。
  • browse_link: 浏览网页链接。使用 Selenium 获取网页文字内容供 AI 使用。
  • text_to_image: 文本作图。 使用 dall-e 模型根据文字生成图片。
  • text_to_speech: 文本转语音。使用 OpenAI API 从文本生成语音音频。
  • audio_transcript: 语音转文本。使用 OpenAI Whipser 将语音转录成文本。
  • mahjong_agari: 日麻点和牌点数计算。计算役种,番数符数,点数等信息。使用库: https://github.com/MahjongRepository/mahjong

其他技巧和提示

  1. 在国内无法连接官方 API 时, 可以尝试使用 API 代理, 或者使用科学上网代理。一个免费的 API 代理是openai-proxy.com, 将 base_url 替换成 https://api.openai-proxy.com/v1
  2. 可以使用手机模拟器 (如逍遥模拟器) 登录微信, 并登录 Windows 微信客户端, 即可保持微信持续在线。不要打断模拟器的扫码过程,可能会触发微信检测封号。
  3. 程序调用了 OpenAI 的 Assistant API. 运行时,程序将创建并修改一个名为 "Wechat_AI_Assistant" 的 assistant 用于对话。你可以在 OpenAI Playground 测试这个助理。
  4. 程序会上传照片和文件到 OpenAI 进行处理。你可以在 OpenAI管理后台查看和删除你的文件。OpenAI 不对文件本身进行收费,但是对文件的总占用空间有限制。
  5. 程序把所有工具的定义描述, 搜索结果和网页全文都发给 OpenAI。需要节省 token 可以关闭部分工具(插件)。

资源

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for Wechat-AI-Assistant

Similar Open Source Tools

For similar tasks

For similar jobs