这是一个基于LangChain和ChromaDB的RAG(Retrieval-Augmented Generation)演示项目。
src/rag_demo/ingest.py: 文档切片和向量入库脚本docs/: 文档目录chroma_db/: 向量数据库存储目录详细的任务清单请查看 tasks.md 文件。
安装依赖:
uv sync
设置环境变量:
复制.env.template为.env文件并添加您的SILICON_API_KEY
运行文档切片和入库脚本:
uv run python -m src.rag_demo.ingest
查询文档:
echo "查询内容" | uv run python src/rag_demo/query.py
uv run python -m src.rag_demo.api 启动 API 服务http://localhost:8000/docs 查看 API 文档GET /health - 健康检查端点POST /query - 文档查询端点GET /documents/{doc_id} - 获取特定文档# 健康检查
curl http://localhost:8000/health
# 查询文档
curl -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"query": "年假天数", "k": 3}'
docker-compose builddocker-compose up -dhttp://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