各位技术爱好者们,今天要给大家介绍一款超棒的开源项目 ——UniChat,这是一个基于检索增强生成(RAG)技术的本地聊天机器人应用程序,它支持多种大语言模型(LLM),并且可以轻松配置你心仪的模型。
核心亮点
1. 多模型支持
UniChat 支持众多大语言模型提供商,如 Ollama、OpenAI、MoonShot、Baichuan 等。在 backend/sta_config.toml 文件中,详细定义了各提供商的基础 URL、支持的 LLM 模型、嵌入模型和简介等信息。以 Ollama 为例,支持 moonshot-v1-8k、deepseek-r1:1.5b 等多种模型,你可以根据需求自由选择,满足多样化的应用场景。
2. 灵活的知识库管理
你可以方便地管理知识库文档。在前端界面,通过点击聊天界面右上角的配置按钮(齿轮图标)打开配置窗口,就能查看和管理知识库文档。frontend/scripts.js 中的 saveKnowledgeBase 函数实现了文档和系统提示词的上传保存功能,支持多种文件格式,如 PDF、DOCX、CSV 等。同时,在 backend/rag_service.py 里的 remove_useless 方法会自动清理无用的文档,保持知识库的整洁。
3. 强大的 RAG 服务
backend/rag_service.py 中的 RagService 类是整个项目的核心之一,它实现了基于 RAG 技术的聊天服务。包括文档嵌入、历史对话管理、问题回答等功能。通过 _embed_documents 方法将文档进行嵌入处理,存储在向量数据库中,在回答用户问题时,能通过检索知识库中的相关文档来增强回答的准确性。
4. 自定义控制台与日志显示
backend/console_window.py 实现了一个自定义控制台窗口,用于显示日志信息。CustomConsole 类包含文本编辑框和切换按钮,通过 append_text 方法添加文本信息,toggle_visibility 方法切换控制台窗口的可见性,方便你监控系统运行状态。
部署与使用便捷
1. 环境搭建
项目提供了 environment.yaml 和 requirements.txt 文件,方便你创建项目所需的 Conda 环境和安装 Python 包依赖。
2. 打包部署
buildexe.bat 脚本使用 PyInstaller 将后端脚本打包成可执行文件,并将相关文件复制到打包目录。innoSetup.iss 脚本则使用 Inno Setup Compiler 创建一个单一的安装程序 unisetup.exe,让部署变得轻松简单。
3. 配置灵活
项目包含静态配置文件 backend/sta_config.toml、工厂配置文件 backend/factory.toml 和动态配置文件 backend/dyn_config.toml。你可以根据需要修改这些配置文件,调整模型和知识库的配置。backend/uni_config.py 中的 merge_config 方法还能确保配置文件中的空字段被填充为工厂默认值。
社区友好
项目采用 MIT 许可证(LICENSE 文件),鼓励大家自由使用、修改和分发。同时,提供了详细的文档,包括 README.md、README_cn.md、developer_guide.md 和 终端用户手册.md,无论是开发者还是终端用户都能快速上手。
如果你正在寻找一款功能强大、配置灵活的本地聊天机器人项目,那么 UniChat 绝对值得一试!快来克隆仓库,开启你的聊天机器人之旅吧!
项目地址:GitHub - RyanFeiluX/unichat: Universal chat framework
让我们一起在技术的海洋中探索,用 UniChat 创造更多可能!