ChatOllama 基于 LLM 的开源聊天机器人
ChatOllama 是一个基于 LLM 的开源聊天机器人,支持本地模型和知识库管理。下面是一份详细的部署教程,涵盖 Docker 和本地开发两种方式。
ChatOllama 详细部署教程
1. 项目简介
ChatOllama 是一个基于大型语言模型(LLMs)的开源聊天机器人,支持多种语言模型和知识库管理。它提供类似 ChatGPT 的用户界面,支持模型管理、知识库管理、自由聊天以及基于知识库的聊天功能。
核心功能:
- 支持 Ollama 本地模型、OpenAI、Azure OpenAI、Anthropic、Moonshot、Gemini、Groq 等多种 LLM 提供商
- 知识库管理(基于向量数据库)
- 模型管理(列出、下载、删除)
- 支持文本和图像输入
2. 部署前准备
在开始部署之前,请确保你的系统满足以下要求:
2.1 硬件要求
- 基础配置:4核 CPU + 8GB 内存(支持 7B 参数模型)
- 进阶配置:8核 CPU + 16GB 内存(支持 13B 参数模型)
- 磁盘空间:至少预留 20GB 用于模型存储
2.2 软件要求
- Docker 和 Docker Compose(推荐方式)
- 或 Node.js + pnpm(本地开发方式)
- Ollama 服务器(必须)
3. 方式一:使用 Docker 部署(推荐)
这是最简单快捷的部署方式,适合大多数用户。
3.1 安装 Ollama 服务器
首先需要在本地安装并运行 Ollama 服务器。根据你的操作系统选择安装方式:
Linux 系统:
1 | curl -fsSL https://ollama.com/install.sh | sh |
macOS 系统:
访问 Ollama 官网下载 macOS 版本的安装包,将 Ollama 应用拖拽至 Applications 文件夹。
Windows 系统:
访问 Ollama 官网获取 Windows 安装包,运行安装程序并按照向导完成安装。安装完成后,Ollama 会自动在后台运行。
安装完成后,验证 Ollama 是否正常运行:
1 | ollama --version |
默认情况下,Ollama 服务器运行在 http://localhost:11434。
3.2 下载并配置 ChatOllama
步骤 1:克隆项目仓库
1 | git clone https://github.com/sugarforever/chat-ollama.git |
步骤 2:检查 docker-compose.yaml 文件
确保 Ollama 服务器的地址设置正确。如果 Ollama 运行在本地默认端口,配置如下:
1 | services: |
3.3 启动服务
步骤 1:启动 Docker 容器
1 | docker compose up |
步骤 2:初始化 SQLite 数据库
如果你是第一次启动 Dockerized ChatOllama,需要初始化 SQLite 数据库:
1 | docker compose exec chatollama npx prisma migrate dev |
步骤 3:下载嵌入模型(用于知识库功能)
如果要使用知识库功能,需要下载一个嵌入模型。推荐使用 nomic-embed-text:
1 | docker compose exec ollama ollama pull nomic-embed-text:latest |
你也可以在 Models 页面(http://localhost:3000/models)进行下载。
3.4 访问 ChatOllama
打开浏览器,访问 http://localhost:3000,你应该能看到 ChatOllama 的界面。
重要设置: 由于 ChatOllama 运行在 Docker 容器内,你需要在设置中将 Ollama 服务器地址设置为 http://host.docker.internal:11434(假设 Ollama 运行在本地默认端口)。
4. 方式二:本地开发部署
如果你想使用最新的代码库并根据需要进行修改,可以采用这种方式。
4.1 安装 Ollama 服务器
参考 3.1 节的步骤安装 Ollama 服务器。默认运行在 http://localhost:11434。
4.2 安装 ChromaDB
ChatOllama 支持 Chroma 和 Milvus 两种向量数据库,默认使用 Chroma。
推荐使用 Docker 运行 ChromaDB:
1 | docker pull chromadb/chroma |
现在 ChromaDB 运行在 http://localhost:8000。
4.3 配置 ChatOllama
步骤 1:复制环境变量文件
1 | cp .env.example .env |
步骤 2:安装依赖
1 | pnpm install |
步骤 3:运行数据库迁移
使用 Prisma Migrate 创建数据库表:
1 | pnpm prisma-migrate |
4.4 启动开发服务器
确保 Ollama 服务器 和 ChromaDB 都在运行,然后启动开发服务器:
1 | pnpm dev |
访问 http://localhost:3000 即可使用 ChatOllama。
5. 向量数据库配置
ChatOllama 支持两种向量数据库,你可以在 .env 文件中进行配置:
1 | # 支持的值:chroma, milvus |
默认使用 Chroma。如果想使用 Milvus,将 VECTOR_STORE 设置为 milvus 并指定相应的 URL。
6. 嵌入模型配置
使用知识库功能需要配置有效的嵌入模型。你可以选择以下两种方式:
6.1 使用 Ollama 嵌入模型
推荐下载 nomic-embed-text 模型:
1 | # 如果在 Docker 中运行 |
6.2 使用 OpenAI 嵌入模型
如果偏好使用 OpenAI,请在设置中设置有效的 OpenAI API Key,并填入以下嵌入模型之一:
text-embedding-3-largetext-embedding-3-smalltext-embedding-ada-002
7. 数据存储说明
Docker 部署方式下有两种类型的数据存储:
7.1 向量数据(ChromaDB)
Chroma 数据库与 ChatOllama 一起运行在 Docker 容器中,数据持久化在 Docker 卷中。
7.2 关系数据(SQLite)
SQLite 数据库文件从 ~/.chatollama/chatollama.sqlite 挂载并持久化。
8. GPU 加速配置
如果你的系统有 NVIDIA GPU,可以使用 docker-compose_gpu.yaml 配置文件来启用 GPU 加速:
1 | docker compose -f docker-compose_gpu.yaml up |
该配置文件包含 NVIDIA GPU 驱动配置,可以显著提升模型推理速度。
9. 常见问题与解决方案
9.1 首次启动时数据库未初始化
问题:启动后无法正常使用。
解决方案:确保执行数据库迁移命令:
1 | docker compose exec chatollama npx prisma migrate dev |
9.2 无法连接到 Ollama 服务器
问题:ChatOllama 无法连接到 Ollama。
解决方案:在 Docker 部署中,需要在设置中将 Ollama 服务器地址设置为 http://host.docker.internal:11434。
9.3 模型下载失败
问题:外部提供商(如 OpenRouter、DeepSeek)的模型无法下载。
解决方案:这是一个已知问题,外部提供商的模型无需下载即可使用。项目已在后续版本中修复了此问题。
9.4 更新项目后出现问题
问题:执行 git pull 后应用无法正常运行。
解决方案:每次 git pull 后需要重新运行:
1 | pnpm install |
10. 访问和使用
完成部署后,打开浏览器访问 http://localhost:3000,你将看到 ChatOllama 的聊天界面。
主要功能入口:
- 模型管理:
http://localhost:3000/models - 设置页面:配置 Ollama 服务器地址、API Key 等
- 知识库管理:创建和管理知识库
你可以开始与本地 LLM 模型进行对话,或上传文档创建知识库进行基于知识库的问答。
注意事项:该项目处于活跃开发中,功能和接口可能会有变化。建议定期查看项目仓库获取最新信息。



