RAG Web UI 是一个基于 RAG (Retrieval-Augmented Generation) 技术的智能对话系统,它能够帮助构建基于自有知识库的智能问答系统。通过结合文档检索和大语言模型,实现了准确、可靠的知识问答服务。
系统支持多种大语言模型部署方式,既可以使用 OpenAI、DeepSeek 等云端服务,也支持通过 Ollama 部署本地模型,满足不同场景下的隐私和成本需求。
同时提供 OpenAPI 接口,方便用户通过 API 调用知识库。
你可以通过RAG 教程来了解整个项目的实现流程。
📚 智能文档管理
🤖 先进的对话引擎
🎯 合理架构
知识库管理 Dashboard
文档处理 Dashboard
文档列表
带引用序号的智能对话界面
API Key 管理
API 参考
git clone https://github.com/rag-web-ui/rag-web-ui.git
cd rag-web-ui
注意配置文件中的环境,详细配置往下看配置表格~
cp .env.example .env
docker compose up -d --build
服务启动后,可以通过以下地址访问:
系统在以下方面进行了性能优化:
使用 docker compose 启动开发环境,可热更新
docker compose -f docker-compose.dev.yml up -d --build
| 配置项 | 说明 | 默认值 | 必填 |
|---|---|---|---|
| MYSQL_SERVER | MySQL 服务器地址 | localhost | ✅ |
| MYSQL_USER | MySQL 用户名 | postgres | ✅ |
| MYSQL_PASSWORD | MySQL 密码 | postgres | ✅ |
| MYSQL_DATABASE | MySQL 数据库名 | ragwebui | ✅ |
| SECRET_KEY | JWT 加密密钥 | - | ✅ |
| ACCESS_TOKEN_EXPIRE_MINUTES | JWT token 过期时间(分钟) | 30 | ✅ |
| 配置项 | 说明 | 默认值 | 适用场景 |
|---|---|---|---|
| CHAT_PROVIDER | LLM 服务提供商 | openai | ✅ |
| OPENAI_API_KEY | OpenAI API 密钥 | - | 使用 OpenAI 时必填 |
| OPENAI_API_BASE | OpenAI API 基础 URL | https://api.openai.com/v1 | 使用 OpenAI 时可选 |
| OPENAI_MODEL | OpenAI 模型名称 | gpt-4 | 使用 OpenAI 时必填 |
| DEEPSEEK_API_KEY | DeepSeek API 密钥 | - | 使用 DeepSeek 时必填 |
| DEEPSEEK_API_BASE | DeepSeek API 基础 URL | - | 使用 DeepSeek 时必填 |
| DEEPSEEK_MODEL | DeepSeek 模型名称 | - | 使用 DeepSeek 时必填 |
| OLLAMA_API_BASE | Ollama API 基础 URL | http://localhost:11434 | 使用 Ollama 时必填, 注意需要先拉取模型 |
| OLLAMA_MODEL | Ollama 模型名称 | - | 使用 Ollama 时必填 |
| 配置项 | 说明 | 默认值 | 适用场景 |
|---|---|---|---|
| EMBEDDINGS_PROVIDER | Embedding 服务提供商 | openai | ✅ |
| OPENAI_API_KEY | OpenAI API 密钥 | - | 使用 OpenAI Embedding 时必填 |
| OPENAI_EMBEDDINGS_MODEL | OpenAI Embedding 模型 | text-embedding-ada-002 | 使用 OpenAI Embedding 时必填 |
| DASH_SCOPE_API_KEY | DashScope API 密钥 | - | 使用 DashScope 时必填 |
| DASH_SCOPE_EMBEDDINGS_MODEL | DashScope Embedding 模型 | - | 使用 DashScope 时必填 |
| OLLAMA_EMBEDDINGS_MODEL | Ollama Embedding 模型 | - | 使用 Ollama Embedding 时必填 |
| 配置项 | 说明 | 默认值 | 适用场景 |
|---|---|---|---|
| VECTOR_STORE_TYPE | 向量存储类型 | chroma | ✅ |
| CHROMA_DB_HOST | ChromaDB 服务器地址 | localhost | 使用 ChromaDB 时必填 |
| CHROMA_DB_PORT | ChromaDB 端口 | 8000 | 使用 ChromaDB 时必填 |
| QDRANT_URL | Qdrant 向量存储 URL | http://localhost:6333 | 使用 Qdrant 时必填 |
| QDRANT_PREFER_GRPC | Qdrant 优先使用 gRPC 连接 | true | 使用 Qdrant 时可选 |
| 配置项 | 说明 | 默认值 | 必填 |
|---|---|---|---|
| MINIO_ENDPOINT | MinIO 服务器地址 | localhost:9000 | ✅ |
| MINIO_ACCESS_KEY | MinIO 访问密钥 | minioadmin | ✅ |
| MINIO_SECRET_KEY | MinIO 密钥 | minioadmin | ✅ |
| MINIO_BUCKET_NAME | MinIO 存储桶名称 | documents | ✅ |
| 配置项 | 说明 | 默认值 | 必填 |
|---|---|---|---|
| TZ | 时区设置 | Asia/Shanghai | ❌ |
我们非常欢迎社区贡献!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)本项目仅用于学习交流 RAG ,请勿用于商业用途,不具备在生产环境使用的条件,还在持续开发中。
本项目采用 Apache-2.0 许可证
感谢以下开源项目: