这是一个由大语言模型 (LLM) 技术驱动的,一个模仿现代人类互联网聊天风格的机器人。它同时会使用群管理工具、互联网搜索引擎、带有记忆(本地向量数据库),为各种聊天群聊提供广泛的功能、活跃群内气氛。
技术上,项目使用 Nonebot 作为机器人交互框架,通过使用各种聊天协议适配器,从而实现支持任何聊天平台(如 QQ、Telegram 等等);目前使用 ChatGLM3 作为 LLM 模型,通过收集群内聊天记录来微调模型(或者直接调用ChatGPT-4o等能力强的大模型),可以实现模拟真实群友的功能。
目前正在开发阶段,初步效果非常炸裂,欢迎加入我们!
-
基础对话引擎:
- 核心对话处理:使用大型语言模型(LLM)为基础,创建能够处理日常对话的AI。
- 上下文理解:在对话中保持上下文的连贯性,保存聊天记录。
-
个性化与适应性:
- 用户行为分析:分析群内的对话内容和风格,更适应每个群。
- 持续学习:根据大量的聊天记录进行微调,能够更像真人。
- RAG:拥有“群聊知识库”,可以进行群聊私域的记录和检索。🚧
- 模拟机制:能够模拟单独的某个人的语气。🚧
- 调用群聊操作:能够调用群聊相关操作,例如撤回、退群、禁言等等。🚧
- 调用工具:能够调用相关工具,例如搜索、绘图等等。🚧
-
场景模拟:
- 特定场景:开发适用于不同社交场景的对话模式(如朋友聚会、工作讨论等)。🚧
- 角色扮演能力:能够根据用户的需要扮演不同的社交角色(如朋友、同事)。🚧
-
集成与扩展性:
- API接口:提供API接口,允许第三方应用程序和服务集成。
- 模块化设计:确保系统的高度模块化,便于未来的扩展和升级。
- 多种协议支持:独立出来和聊天平台的适配器。
如项目架构图所示,本项目可分为三大模块,分别单独部署:聊天平台及适配器(目前项目采用 QQ+Shamrock)、Nonebot机器人框架中控与数据库、LLM模块。
- 须知:请确保您拥有py开发经验,且为了防止库版本冲突影响出现报错,请在创建venv环境再进行后续操作,推荐使用pycharm
下面依次介绍这三大模块的部署操作。
请参考 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
来进行微调。
至此,整个项目的数据流就打通了,你可以正常使用了。
模型微调与一键运行的脚本正在构建与测试中...之后会更新
- RAG 自动记录与检索
- 群管理相关操作
- 网络搜索调用功能
- 回复特定关注的消息功能
- 主动发起消息功能
- 创建网页游戏:找出 AI 群友