logo
0
0
WeChat Login

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

About

SEO知识相关的RAG项目搭建。功能还没有实现。

Language
Python52.7%
gitignore22.7%
Markdown19.5%
Dockerfile2.8%
Others2.3%