这是一个由大语言模型 (LLM) 技术驱动的,一个模仿现代人类互联网聊天风格的机器人。它同时会使用群管理工具、互联网搜索引擎、带有记忆(本地向量数据库),为各种聊天群聊提供广泛的功能、活跃群内气氛。
技术上,项目使用 Nonebot 作为机器人交互框架,通过使用各种聊天协议适配器,从而实现支持任何聊天平台(如 QQ、Telegram 等等);目前使用 ChatGLM3 作为 LLM 模型,通过收集群内聊天记录来微调模型(或者直接调用ChatGPT-4o等能力强的大模型),可以实现模拟真实群友的功能。
项目架构图:
目前正在开发阶段,初步效果非常炸裂,欢迎加入我们!
基础对话引擎:
个性化与适应性:
场景模拟:
集成与扩展性:
如项目架构图所示,本项目可分为三大模块,分别单独部署:聊天平台及适配器(目前项目采用 QQ+Shamrock)、Nonebot机器人框架中控与数据库、LLM模块。
下面依次介绍这三大模块的部署操作。
请参考 Shamrock-快速开始 或者你可以使用其他qq的适配器,例如Napcat,同样使用Onebot v11标准,你只需要填写好适配器和Nonebot的连接即可。
首先请参考 Nonebot-快速开始,或者在 CyberFriend_bot_plugin
中,运行 pip install -r requirements.txt
,安装相关依赖。
然后,在 CyberFriend_bot_plugin
中,配置好 .env.prod
中,你的 Shamrock 的端口,之后执行 nb run
命令。
理想状态下,输出 [INFO] websockets | connection open
,即为运行成功,数据库也会一并开启。
目前我们使用 ChatGLM3
作为 LLM 模型。
首先,进入 CyberFriend_LLM_core
,执行 pip install -r requirements.txt & python download.py
,安装依赖并下载模型权重,权重会下载到这个目录下,你可以修改文件中的 cache_dir
来更改下载路径,或是使用别的下载方法,例如直接从 chatglm3-6b-huggingface 上下载。
然后,执行 python api_server.py
,运行开启 LLM 模型的 api 服务器。
要进行模型微调,你需要参考 chatglm3-微调,使用 CyberFriend_bot_plugin/record_data
中的工具来构建数据集,然后在 CyberFriend_LLM_core/finetune
中,执行 python finetune_hf.py /path/to/dataset /path/to/model configs/lora.yaml
来进行微调。
至此,整个项目的数据流就打通了,你可以正常使用了。
模型微调与一键运行的脚本正在构建与测试中...之后会更新