Skip to main content

NoneBot2 plugin for ChatGLM-6B-API

Project description

NoneBotPluginLogo

NoneBotPluginText

nonebot-plugin-ChatGLM6B

✨ ChatGPT 连不上?不如看看本地部署的 GLM 吧 ✨

license pypi python

如果你本地部署了 ChatGLM-6B,那么你可以使用一些大佬用 FastAPI 实现的 ChatGLM 加上我这个烂怂插件来将它接入你的 Bot,享受本地生成的速度。

📖 介绍

首先本人技术很有限,插件都是照着别人的格式拼凑的,能用就行

✨ 感谢 跨平台异步 Python 机器人框架 Nonebot

✨ 感谢 THUDM 开源的 Chat GLM-6B

✨ 感谢 imClumsyPand 使用 FastAPI 实现的 ChatGLM-6B-API

✨ 感谢 A-kirami 制作的 Nonebot 插件 README 模板

注意事项

本插件需要你有部署好的 ChatGLM-6B 并且成功运行 ChatGLM-6B-API 关于本地部署的细节请点击上方相关链接自行查询(或者我可以考虑B站出个教程 如果给我点star的话

最新消息

v0.1.0 --> v0.1.1 一次小的更新,主要内容有:

  • 修复了 清除对话记录无反应的问题;
  • 修复了 配置项 CHATGLM_WIDE 失效的问题;
  • 修复了 部分配置项未配置时默认值出错的问题;
  • 新增了 对服务器返回消息但内容为空的异常处理; 可能是由于输入内容长度(含历史记录)超出模型设置
  • 针对上一条情况新增了配置项以微调模型参数; 需要同步更新 ChatGLM-6B-API 以支持模型微调 (上述更新还包含显存释放以及模型重复载入的bug,强烈建议更新)

💿 安装

使用 nb-cli 安装(推荐) 在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
nb plugin install nonebot-plugin-chatglm6b
使用包管理器安装 在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令
pip
pip install nonebot-plugin-chatglm6b
pdm
pdm add nonebot-plugin-chatglm6b
poetry
poetry add nonebot-plugin-chatglm6b
conda
conda install nonebot-plugin-chatglm6b
然后,不要忘了下一步是…… 打开 nonebot2 项目根目录下的 `pyproject.toml` 文件, 在 `[tool.nonebot]` 部分追加写入
plugins = ["nonebot_plugin_chatglm6b"]
手动安装 下载最新版本Release或main分支源码,将插件文件夹存放至Bot根目录的`./src/plugins/`目录中 (记得检查Bot根目录的`pyproject.toml`中`[tool.nonebot]` 部分有`plugin_dirs = ["src/plugins"]`

⚙️ 配置

不要忘记在 nonebot2 项目的.env文件中添加下表中的必填配置

配置项 必填 类型 默认值 说明
CHATGLM_ADDR str 你的 ChatGLM API 的接口地址,例如http://127.0.0.1:11451
CHATGLM_POKE bool True 收到请求后是否戳一戳发送者
CHATGLM_2PIC bool False 是否将收到的回答以图片形式发送
CHATGLM_WIDE int 400 转图片时的图片宽度(单位:像素)
CHATGLM_MMRY int 10 对话时机器人所能记住的最大对话轮数,设为0则每次都为新对话
CHATGLM_PBLC bool False 在群聊中是否启用公共对话,即群员共用对话历史
CHATGLM_RPLY bool False 机器人返回内容时是否回复对应消息

模型微调相关配置

配置项 必填 类型 默认值 说明
CHATGLM_MODEL_LENG int 2048 模型的max_length参数,决定了模型接受输入的token上限
CHATGLM_MODEL_TEMP float 0.95 模型的temperature参数,决定了模型输出对话的随机程度
CHATGLM_MODEL_TOPP float 0.7 模型的top_P参数,决定了模型输出与输入内容的相关性

🎉 使用

使用 @Bot + [Bot命令前缀(如果有)] + GLM|# + [想问的内容]来与 Bot 对话

指令表

指令 权限 需要@ 范围 说明
GLM|# 所有人 私聊/群聊 对话起始
clrlog|清除上下文 所有人 私聊/群聊 清除对话记录

🖼️ 效果图

插件效果图

效果图懒得改了,这是以前的,意思就是有记忆了

✅ 代办

  • 加入记忆保存上下文
  • 区分每个用户的对话历史,并加入可选参数选择群聊对话为私有或公开
  • 将模型微调参数改为随时可调(通过命令以及消息后附带参数)
  • 加入预设机器人人格
  • 加入更多管理员指令

🌸 致谢

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot-plugin-chatglm6b-0.1.1.tar.gz (20.8 kB view hashes)

Uploaded Source

Built Distribution

nonebot_plugin_chatglm6b-0.1.1-py3-none-any.whl (22.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page