npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@zhengxs/wechaty-plugin-assistant

v0.1.3

Published

基于 wechaty 的聊天助手插件

Downloads

529

Readme

使用 wechaty 开发的聊天助手插件,内置多种AI大模型,只需三步即可轻松创建一个智能对话机器人

Powered by Wechaty

Report Bug · Request Feature

[!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 的大部分模型,如qwenqwen-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

🔗 更多工具

🤝 参与贡献

我们非常欢迎各种形式的贡献。如果你对贡献代码感兴趣,可以查看我们的 GitHub Issues 大展身手,向我们展示你的奇思妙想。

🕘 Star History

Star History Chart


📝 License

Copyright © 2023 zhengxs2018. This project is MIT licensed.