本地索引+自部署OpenAI兼容LLM的轻量RAG,无需Ollama部署与重排器,资源占用更低。
方案简介
该配方是 Minima 的第二种模式:索引器在本地运行,而 LLM 可以部署在你的服务器、云或本机,只要暴露 OpenAI 兼容 API 即可接入。兼容的推理服务器包括 vLLM、Text Generation Inference (TGI)、Ollama Server(API 模式)、LiteLLM 代理、LocalAI,甚至直接使用 OpenAI API。相比完全本地 Ollama 模式,此模式无需部署 Ollama、无需下载 reranker,Docker 构建会自动跳过重排器,资源占用更轻,同时保留对 LLM 基础设施的完全控制。
亮点与能力
- 通过 OpenAI 兼容 API 接入任意自部署或托管 LLM
- 索引器本地运行,LLM 可在服务器/云/本机任意位置
- LLM 通过 function calling 判断是否需要文档检索
- 需要时直接向量检索(不做重排)以获得更好性能
- Docker 构建自动跳过 reranker 下载
- 专用 docker-compose-custom-llm.yml 只部署必要服务(无 Ollama 容器)
- 支持递归索引本地文档目录
组成与分工
- vLLM / TGI / Ollama Server / LiteLLM / LocalAI / OpenAI API:OpenAI 兼容 LLM 端点,负责答案生成与 function calling 判断
- Sentence Transformers:本地文档嵌入
- Qdrant:向量存储,由 EMBEDDING_SIZE 配置维度
- Docker Compose:编排本地索引与服务
- 索引器:在本地 PC 或云端递归索引文档
前置要求
- 本地已安装 Docker 与 Docker Compose
- 一个已部署的 OpenAI 兼容 LLM 端点(vLLM、TGI、Ollama server、LiteLLM、LocalAI 等)
- 在项目根目录按 .env.sample 创建 .env 文件
实施步骤
1. 配置 .env
在项目根目录创建 .env(参考 .env.sample),Custom LLM 模式示例:
LOCAL_FILES_PATH=/Users/davidmayboroda/Downloads/PDFs/
EMBEDDING_MODEL_ID=sentence-transformers/all-mpnet-base-v2
EMBEDDING_SIZE=768
LLM_BASE_URL=http://your-llm-address:port/v1 # Your custom LLM endpoint
LLM_MODEL=Qwen/Qwen-1.7B # Your model name
LLM_API_KEY=not-needed # Optional: API key if required
注意:此模式不需要设置 OLLAMA_MODEL 和 RERANKER_MODEL。
2. 启动容器
bash
docker compose -f docker-compose-custom-llm.yml --env-file .env up --build
3. 使用聊天界面
浏览器访问 http://localhost:3000,对 LOCAL_FILES_PATH 目录中的本地文件提问即可。
使用与配置要点
LLM_BASE_URL:自定义 OpenAI 兼容端点地址,设置后 Ollama 将不再使用LLM_MODEL:LLM_BASE_URL 设置时必填的模型名LLM_API_KEY:可选,LLM 不需要认证时可省略或填任意值- 验证:向本地文件目录中的内容提问,若 LLM 判断需要检索则直接向量搜索并生成带上下文的答案,否则直接回答
注意事项与常见问题
- 该模式不设置 OLLAMA_MODEL 与 RERANKER_MODEL,Dockerfile 构建时会自动跳过 reranker 下载
- 与 Ollama 工作流不同:无查询增强与重排环节,改用 function calling + 直接向量检索
- LLM_MODEL 在 LLM_BASE_URL 设置时必填
优缺点
- ✓ 资源占用更轻,无需Ollama
- ✓ LLM服务端灵活,兼容多种推理服务器
- ✕ 无重排,检索精度依赖向量检索
- ✕ 需自行部署OpenAI兼容LLM端点
出处
本方案挖掘自开源项目 Minima-AI-Inc/minima,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。