FastAPI DocGPT: FastAPI 기반 PDF 문서 처리 및 Q&A 시스템
일반 소개
FastAPI DocGPT 是一个基于 FastAPI 的文档问答系统,允许用户上传 PDF 文件并基于文档内容进行问答。该系统使用 OpenAI 的嵌入技术将文档内容嵌入到向量数据库 Qdrant 中,从而实现智能问答功能。用户可以通过 API 接口上传文档并提出问题,系统将返回基于文档内容的智能回答。
기능 목록
- PDF 上传:用户可以上传 PDF 文件,系统会处理并存储到向量数据库中。
- 问答系统:用户可以基于上传的 PDF 内容提出问题,系统会返回智能回答。
- API 문서:通过 Swagger 提供自动生成的 API 文档,方便开发者使用。
- 跨域资源共享:支持 CORS,允许来自不同域的前端请求。
도움말 사용
설치 및 설정
- 클론 창고
git clone https://github.com/shaheryaryousaf/fastapi-docgpt cd fastapi-docgpt
- 设置虚拟环境
python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
- 종속성 설치
pip install -r requirements.txt
- 환경 변수 구성 在项目根目录创建
.env
文件,并添加 OpenAI 和 Qdrant 的 API 密钥:OPENAI_API_KEY=your-openai-api-key QDRANT_URL=your-qdrant-url QDRANT_API_KEY=your-qdrant-api-key
사용 가이드라인
- 启动 FastAPI 应用
uvicorn app:app --reload
这将启动 FastAPI 应用,并在
http://127.0.0.1:8000
提供服务。 - 上传 PDF 文件 통과(청구서 또는 검사 등)
/upload-pdf/
端点上传 PDF 文件:curl -X POST "http://127.0.0.1:8000/upload-pdf/" -F "file=@yourfile.pdf"
系统会处理 PDF 文件并将其内容嵌入到向量数据库中。
- 提出问题 통과(청구서 또는 검사 등)
/ask-question/
端点提出问题:curl -X POST "http://127.0.0.1:8000/ask-question/" -H "Content-Type: application/json" -d '{"question": "你的问题"}'
系统会基于文档内容返回智能回答。
프로젝트 구조
app.py
:主 FastAPI 应用文件,包含 PDF 上传和问答系统的 API 端点。utils.py
:包含处理 PDF 文件、发送嵌入到向量数据库以及从嵌入中检索答案的实用函数。.env
文件:管理 OpenAI 和 Qdrant 的 API 密钥。
依赖库
- FastAPI:用于构建 Web API。
- Qdrant Client:用于存储和检索文档嵌入。
- LangChain:用于处理 PDF 和嵌入。
- OpenAI:用于生成嵌入和 AI 模型响应。
- PyPDFLoader:用于从 PDF 文件中提取文本。
- CORS Middleware:处理跨域资源共享(CORS),允许来自不同域的前端请求。
- dotenv:管理环境变量(如 API 密钥)。
© 저작권 정책
이 글은 저작권이 있으며 무단으로 복제해서는 안 됩니다.
관련 문서
댓글 없음...