@zhengxs/wechaty-plugin-assistant
v0.1.3
Published
基于 wechaty 的聊天助手插件
Downloads
529
Maintainers
Readme
使用 wechaty 开发的聊天助手插件,内置多种AI大模型,只需三步即可轻松创建一个智能对话机器人
[!WARNING] 发现使用
Node 20
,在服务器启动会报一堆的AssertError
错误,使用Node 18
较为稳定。AssertError
错误后,可能出现 自动重试,导致可能的 重复消息 或 自动退出,原因未知
TOC
✨ 功能特性
- 🚀 快速开始: 只需简单三步,即可轻松启动智能对话机器人。
- 💡 关注点分离: 通过抽象 助手、上下文 和 大模型 的概念,更方便地理解和应用,以应对复杂的对话场景。
- 💬 用户对话: 专注于处理用户私聊和群内被提及的消息,避免大模型被大量消息阻塞。
- ⏳ 处理等待: 如果 AI 尚未回应,自动拒绝新消息的处理,确保对话流畅。
- 🪡 自由定制: 考虑到二次开发的需求,可以方便地拓展助手功能,满足个性化需求。
📖 使用文档
教程
文章
📦 安装
要安装 @zhengxs/wechaty-plugin-assistant
,请运行以下命令:
$ pnpm install @zhengxs/wechaty-plugin-assistant
👋 使用
在这里获取你的 accessToken 值。
import {
ChatERNIEBot,
createAssistant,
} from '@zhengxs/wechaty-plugin-assistant';
import { WechatyBuilder } from 'wechaty';
import { QRCodeTerminal } from 'wechaty-plugin-contrib';
// ============ 第一步:选择大模型 ============
const llm = new ChatERNIEBot({
token: process.env.EB_ACCESS_TOKEN, // 飞桨平台的 token
});
// ============ 第二步:创建 AI 助手 ============
const assistant = createAssistant({
llm,
});
// ============ 第三步:启动 wechaty 服务 ============
const bot = WechatyBuilder.build({
name: 'demo',
puppet: 'wechaty-puppet-wechat4u',
puppetOptions: { uos: true },
});
bot.use(QRCodeTerminal({ small: true }));
// 作为插件使用
bot.use(assistant.callback());
bot.start();
同时接入多个大模型。
import {
ChatERNIEBot,
ChatQWen,
createAssistant,
MultiChatModelSwitch,
} from '@zhengxs/wechaty-plugin-assistant';
const assistant = createAssistant({
llm: new MultiChatModelSwitch([
new ChatERNIEBot(),
new ChatQWen(),
// more...
]),
});
🧰 内置功能
口令
| 口令 | 描述 |
| ---------------------------------- | ----------------------------------------------------------------------------- |
| 新对话
\ 新聊天
\ 重新开始
| 模拟 Web UI 的 创建新聊天 功能 |
| 停止
\ 停止回复
| 模拟 Web UI 的 停止生成 按钮 |
| 查看模型
\ 切换 xxx
| MultiChatModelSwitch
模块添加的功能,允许配置多个模型,由最终使用者自己切换 |
指令
[!NOTE] 不再内置指令,改为按需手动注册。
| 名称 | 描述 | 状态 |
| -------- | ----------------------------------------------------------------------------------------------------------------------------- | ----- |
| /deepl
| DeepL 翻译,感谢 bob-plugin-akl-deepl-free-translate 提供的代码 以及 deepL 提供服务 | Alpha |
| /dict
| 汉字解释,感谢 Pear 提供的 API | Alpha |
| /hot
| 热搜榜,感谢 韩小韩 提供的 API | Alpha |
| /kfc
| 疯狂星期四文案,感谢 Brick 提供的 API | Alpha |
| /moyu
| 摸鱼日历,感谢 韩小韩 提供的 API 以及 摸鱼日历 提供的图片 | Alpha |
🪢 AI 模型
目前仅支持官方 API 调用,暂不提供 Web API 的代理。
| 名称 | 公司 | 描述 | 代码 | 状态 |
| ---------------------------------------- | --------- | -------------------------------------------------------------------------------------------------- | ------------ | ----- |
| 文心一言 | 百度 | 支持 百度千帆 和 AI Studio 的 API 调用 | ChatERNIEBot | Alpha |
| 通义千问 | 阿里 | 支持阿里云 DashScope 的大部分模型,如qwen
和 qwen-vl
系列的模型 | ChatQWen | Alpha |
| 混元助手 | 腾讯 | | ChatHunYuan | Alpha |
| 星火认知 | 讯飞 | 支持 1.5 \| 2 \| 3
模型 | ChatSpark | Alpha |
| MM智能助理 | 稀宇科技 | 支持 abab5-chat \| abab5.5-chat \| abab5.5-chat-pro
模型 | ChatMinimax | Alpha |
| Claude | Anthropic | 基于 Claude Web API,内部已配置 反向代理服务 | ChatClaudeAI | Alpha |
| ChatGPT | OpenAI | 推荐 代理 | ChatOpenAI | Alpha |
| Bard | Google | | - | N/A |
⌨️ 本地开发
可以使用 GitHub Codespaces 进行在线开发:
或者使用以下命令进行本地开发:
$ git clone https://github.com/zhengxs2018/wechaty-plugin-assistant.git
$ cd wechaty-plugin-assistant
$ pnpm install
$ pnpm dev
🔗 更多工具
- 🤖 @zhengxs/ai - 集成 百度文心一言,阿里通义千问,腾讯混元助手 和 讯飞星火认知 等国内大模型的 API,并且适配 OpenAI 的输入与输出。
- 将钉钉机器人接入 Wechaty - 开发中
🤝 参与贡献
我们非常欢迎各种形式的贡献。如果你对贡献代码感兴趣,可以查看我们的 GitHub Issues 大展身手,向我们展示你的奇思妙想。
🕘 Star History
📝 License
Copyright © 2023 zhengxs2018. This project is MIT licensed.