‘上传ARM版本chromadb镜像’
一个基于 LlamaIndex、ChromaDB 和 Ollama 的本地化 RAG(检索增强生成)系统,提供流式 API 接口供其他平台调用。
.env
qwen3:235b
qwen3-embedding:8b
# 检查 Ollama 是否运行 curl http://localhost:11434/api/tags # 下载所需的模型(如果未下载) ollama pull qwen3:235b # LLM模型,用于文本生成 ollama pull qwen3-embedding:8b # Embedding模型,用于向量化
(安装包在install文件夹,解压使用)
克隆或进入项目目录:
cd install
配置环境变量:
# 复制环境变量示例文件 cp .env.example .env # 编辑 .env 文件,配置以下参数:
必须配置的参数:
# ChromaDB 配置(Docker 模式,使用 host 网络) CHROMA_SERVER_HOST=localhost CHROMA_SERVER_PORT=8002 # Ollama 配置(使用 host 网络模式) OLLAMA_BASE_URL=http://localhost:11434 OLLAMA_MODEL=qwen3:235b OLLAMA_EMBEDDING_MODEL=qwen3-embedding:8b
RAG服务配置:
# API 端口(默认 8001) API_PORT=8001 # 同步配置 SYNC_INTERVAL=300 # 同步间隔(秒) AUTO_SYNC=true # 是否启用自动同步
启动服务:
# 构建并启动所有服务(ChromaDB + LibreOffice + RAG API) # docker-compose 会自动读取 .env 文件中的配置 docker-compose up -d # 查看日志 docker-compose logs -f rag-api
访问配置管理界面: 服务启动后,可以通过以下方式访问配置管理界面:
配置数据源: 在配置管理界面中,您可以:
配置方式:
所有配置参数都统一在 .env 文件中管理,包括:
API_HOST
API_PORT
API_TITLE
API_VERSION
CHROMA_SERVER_HOST
CHROMA_SERVER_PORT
CHROMA_COLLECTION_NAME
SOFFICE_PORT
OLLAMA_BASE_URL
OLLAMA_MODEL
OLLAMA_EMBEDDING_MODEL
EMBEDDING_DIMENSION
CHUNK_SIZE
CHUNK_OVERLAP
TOP_K
SYNC_INTERVAL
AUTO_SYNC
在不同机器之间移植时,只需:
docker-compose up -d
所有配置都会自动从 .env 文件读取,无需修改 docker-compose.yml。
docker-compose.yml
系统提供 Web 界面来管理所有数据源配置,支持以下类型:
访问配置管理界面:http://localhost:8001/config
# 1. 配置 .env 文件(复制 .env.example 并修改) cp .env.example .env # 编辑 .env 文件,配置 MySQL、Ollama 等连接信息 # 2. 构建并启动服务 sudo bash docker-run.sh # 3. 查看服务状态 docker-compose ps # 4. 查看日志 docker-compose logs -f rag-api # 5. 停止服务 docker-compose down # 6. 重启服务 docker-compose restart rag-api
# 1. 配置 .env 文件(复制 .env.example 并修改) cp .env.example .env # 编辑 .env 文件,配置 Ollama 等连接信息 # 2. 构建并启动服务 docker-compose up -d --build # 3. 查看服务状态 docker-compose ps # 4. 查看日志 docker-compose logs -f rag-api # 5. 停止服务 docker-compose down # 6. 重启服务 docker-compose restart rag-api
host
./chroma_db_data
./data/sessions.db
./data
chown
chmod
错误: Connection refused 或 Failed to connect
Connection refused
Failed to connect
解决:
localhost
错误: Address already in use
Address already in use
netstat -tlnp | grep 8001
错误: No documents found 或 Sync failed
No documents found
Sync failed
docker-compose logs rag-api
错误: 容器不断重启
错误: 404 Not Found 或 Connection refused
404 Not Found
docker-compose ps
API_PORT=8001
错误: Failed to save configuration
Failed to save configuration
错误: 配置保存后没有自动开始同步
AUTO_SYNC=true
docker-compose logs rag-api | grep sync
根据实际需求调整 .env 中的参数:
updated_at
database/
MySQLSync
sync_service.py
修改.env中的OLLAMA_MODEL配置
如果需要本地开发(不使用 Docker 运行 rag-api,但仍需要 Docker 运行 ChromaDB):
前置条件:
启动步骤:
# 1. 创建虚拟环境 uv venv --python 3.13.9 source .venv/bin/activate # Windows: venv\Scripts\activate # 2. 安装依赖 uv pip install -r requirements.txt # 3. 启动 ChromaDB 服务(必须) docker-compose up -d chromadb # 4. 启动 LibreOffice 服务(必须) docker-compose up -d soffice-service # 5. 验证 ChromaDB 服务运行 curl http://localhost:8002/docs # 6. 验证 LibreOffice 服务运行 curl http://localhost:8003/health # 7. 启动 RAG API 服务 python main.py
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
RAG API - 本地化检索增强系统
一个基于 LlamaIndex、ChromaDB 和 Ollama 的本地化 RAG(检索增强生成)系统,提供流式 API 接口供其他平台调用。
功能特性
.env文件中管理,方便不同机器之间移植快速开始
前置条件
qwen3:235b- LLM模型(用于文本生成)qwen3-embedding:8b- Embedding模型(用于向量化)检查 Ollama
安装步骤
(安装包在install文件夹,解压使用)
克隆或进入项目目录:
配置环境变量:
必须配置的参数:
RAG服务配置:
启动服务:
访问配置管理界面: 服务启动后,可以通过以下方式访问配置管理界面:
配置数据源: 在配置管理界面中,您可以:
配置方式:
配置说明
环境变量配置
所有配置参数都统一在
.env文件中管理,包括:API_HOST,API_PORT,API_TITLE,API_VERSIONCHROMA_SERVER_HOST,CHROMA_SERVER_PORT,CHROMA_COLLECTION_NAMESOFFICE_PORTOLLAMA_BASE_URL,OLLAMA_MODEL,OLLAMA_EMBEDDING_MODELEMBEDDING_DIMENSION,CHUNK_SIZE,CHUNK_OVERLAP,TOP_KSYNC_INTERVAL,AUTO_SYNC配置移植
在不同机器之间移植时,只需:
.env文件到新机器docker-compose up -d所有配置都会自动从
.env文件读取,无需修改docker-compose.yml。数据源配置管理
系统提供 Web 界面来管理所有数据源配置,支持以下类型:
配置界面访问
访问配置管理界面:http://localhost:8001/config
支持的数据源类型
生产环境部署
使用 Docker image (.tar.gz)文件部署
注意: - 确保宿主机上已安装 Docker 和 Docker Compose - chromadb.tar.gz、soffice.tar.gz、rag-api.tar.gz 这三个文件必须存在于一个目录下 - .env 文件必须存在于该目录下(按照下面的步骤通过.env.example 生成并修改) - static/ 文件夹必须存在于该目录下 - docker-run.sh 脚本必须存在于该目录下 - nltk/ 文件夹必须存在于该目录下,用于存储 NLTK 数据使用 Docker Compose
配置说明
host网络模式,容器可以直接访问宿主机上的服务(Ollama)API_PORT配置),ChromaDB 使用 8000 端口,LibreOffice 服务使用 8003 端口(可通过SOFFICE_PORT配置)./chroma_db_data目录./data/sessions.db,请在使用 Docker Compose 时把宿主机的./data目录挂载到容器内(示例docker-compose.yml已包含该挂载)。./data和./chroma_db_data目录可被 Docker 进程读写(通常chown或chmod为容器用户设置适当权限)。.env文件中管理,方便不同机器之间移植常见问题
1. 容器无法连接 Ollama
错误:
Connection refused或Failed to connect解决:
host网络模式时,应使用localhost访问宿主机服务2. 端口冲突
错误:
Address already in use解决:
netstat -tlnp | grep 8001.env文件中的API_PORT配置3. 同步失败
错误:
No documents found或Sync failed解决:
docker-compose logs rag-api4. 容器启动失败
错误: 容器不断重启
解决:
docker-compose logs rag-api.env文件中的环境变量配置是否正确5. 配置管理界面无法访问
错误:
404 Not Found或Connection refused解决:
docker-compose psAPI_PORT=80016. 数据源配置保存失败
错误:
Failed to save configuration解决:
7. 同步服务未自动启动
错误: 配置保存后没有自动开始同步
解决:
.env文件中的AUTO_SYNC=true配置docker-compose logs rag-api | grep sync性能优化建议
1. 调整配置参数
根据实际需求调整
.env中的参数:CHUNK_SIZE: 文档分块大小(默认1024)CHUNK_OVERLAP: 分块重叠(默认200)TOP_K: 检索文档数量(默认5)SYNC_INTERVAL: 同步间隔(默认300秒)2. 数据库优化
updated_at字段创建索引扩展性
添加新数据源
database/目录创建新的同步模块MySQLSync的接口sync_service.py中集成更换LLM模型
修改
.env中的OLLAMA_MODEL配置开发
本地开发(可选)
如果需要本地开发(不使用 Docker 运行 rag-api,但仍需要 Docker 运行 ChromaDB):
前置条件:
qwen3:235b)和嵌入模型(例如:qwen3-embedding:8b)启动步骤: