logo
0
0
Login
feat: 添加RAG服务基础架构和功能实现

RAG Demo

这是一个基于LangChain和ChromaDB的RAG(Retrieval-Augmented Generation)演示项目。

项目结构

  • src/rag_demo/ingest.py: 文档切片和向量入库脚本
  • docs/: 文档目录
  • chroma_db/: 向量数据库存储目录

项目任务

详细的任务清单请查看 tasks.md 文件。

运行项目

  1. 安装依赖:

    uv sync
  2. 设置环境变量: 复制.env.template.env文件并添加您的SILICON_API_KEY

  3. 运行文档切片和入库脚本:

    uv run python -m src.rag_demo.ingest
  4. 查询文档:

    echo "查询内容" | uv run python src/rag_demo/query.py

运行 API 服务

  1. 确保已完成上述步骤
  2. 运行 uv run python -m src.rag_demo.api 启动 API 服务
  3. 访问 http://localhost:8000/docs 查看 API 文档

API 端点

  • GET /health - 健康检查端点
  • POST /query - 文档查询端点
  • GET /documents/{doc_id} - 获取特定文档

API 使用示例

# 健康检查 curl http://localhost:8000/health # 查询文档 curl -X POST http://localhost:8000/query \ -H "Content-Type: application/json" \ -d '{"query": "年假天数", "k": 3}'

使用 Docker 部署

  1. 构建镜像:docker-compose build
  2. 启动服务:docker-compose up -d
  3. 访问 http://localhost:8000/docs 查看 API 文档

部门隔离部署

可以为每个部门创建独立的服务实例,通过修改 docker-compose.yml 文件来实现。例如,为部门1创建独立服务:

dept1-rag-service: build: . ports: - "8001:8000" environment: - SILICON_API_KEY=${SILICON_API_KEY} volumes: - ./docs/dept1:/app/docs - ./chroma_db/dept1:/app/chroma_db restart: unless-stopped