基于 RAG (Retrieval-Augmented Generation) + FAISS 的问答系统示例,支持向量检索和生成式回答。
app/ ├── __init__.py ├── main.py # FastAPI 主程序 ├── models.py # 模型定义 ├── retriever.py # FAISS 检索逻辑 └── utils.py # 工具函数 data/ ├── docs/ # 文档源文件 │ ├── faiss_intro.txt │ └── rag_intro.txt └── faiss/ # 索引文件 ├── index.faiss └── texts.pkl Dockerfile requirements.txt .cnb.yml
data/docs/ 下。/query 接口接收问题,返回生成答案。# 确保 data/docs 下有文档
mkdir -p data/docs
echo "RAG 是结合检索与生成的问答方法" > data/docs/rag_intro.txt
echo "FAISS 是向量检索引擎" > data/docs/faiss_intro.txt
# 使用 Docker 启动
docker build -t rag-qa .
docker run -it --rm -p 8000:8000 -v $(pwd)/data:/app/data rag-qa
# 测试 API
curl -X POST http://localhost:8000/query \
-H "Content-Type: application/json" \
-d '{"question": "什么是 RAG?"}'