项目介绍:LLMChat 🌟
LLMChat 是一个全栈应用项目,旨在提供顺畅的聊天体验。其后端采用 Python 的 FastAPI 构建 API 服务,而前端则由 Flutter 提供支持,实现了优雅的用户界面。本项目结合了最先进的 ChatGPT 和其他大型语言模型(LLM),并具备可拓展性,可为未来的 GPT-4 多模态和插件功能做好准备。
演示功能
美观的用户界面
LLMChat 的前端使用 Flutter 打造,在移动端和 PC 上都可运行,并支持 Markdown 格式,方便用户在消息内容中进行格式化。
网络浏览
项目集成了 Duckduckgo 搜索引擎,通过激活浏览按钮,用户可以在网络上查找相关信息。
向量嵌入
用户可以使用 /embed
命令将文本永久存储在自己的私有向量数据库中,或使用 /share
命令存储在公共数据库中。这样可以通过向量相似性搜索来生成更精准的信息,从而弥补语言模型在“记忆”方面的不足。
PDF 文件上传
用户还可以通过点击界面左下角的 “Embed Document” 来上传 PDF 文件,系统会自动将文件内容转换为向量并存入 Redis 缓存。
更改对话模型和标题
在聊天界面中,用户可以通过下拉菜单选择不同的对话模型,并更改聊天标题以便于标记和管理。
本地 LLM 支持
- Llama.cpp:在没有其他依赖的情况下,通过 C/C++ 实现,运行 LLaMA 模型。
- Exllama:在现代 GPU 上快速高效地使用 4-bit GPTQ 权重的独立实现。
关键特点
- FastAPI:用于高性能 API 开发的 Python 框架。
- Flutter:打造具有丰富自定义控件的用户界面。
- WebSocket 实时通信:与 ChatGPT 及其他 LLM 模型实现实时的双向通信。
- 向量存储:通过 Redis 和 Langchain 实现向量嵌入的存取,用以提升 AI 的响应准确性。
- 自动摘要:通过 Langchain 自动摘要功能,优化对话存储,节省 token。
快速开始 / 安装指南
此项目支持 Docker 配置环境,可以轻松启动和停止服务。要运行此程序,请确保已安装 Docker 和 docker-compose,如果不使用 Docker 则需额外安装 Python 3.11。
-
克隆仓库
使用以下命令克隆项目及其子模块:git clone --recurse-submodules https://github.com/c0sogi/llmchat.git
如果只需基础功能则可以简单克隆主模块:
git clone https://github.com/c0sogi/llmchat.git
-
配置
.env
文件
根据.env-sample
文件示例完成配置。 -
运行服务器
使用命令启动服务(首次启动可能需耗时几分钟):docker-compose -f docker-compose-local.yaml up
-
停止服务器
使用命令停止服务:docker-compose -f docker-compose-local.yaml down
-
访问服务
通过浏览器访问http://localhost:8000/docs
查看 API 文档,访问http://localhost:8000/chat
使用应用。
本项目采用 MIT 开源许可协议,欢迎社区用户学习、修改和使用。希望通过 LLMChat 项目,更多人能体验到便捷且高效的聊天服务。