AI个人学习
和实操指南

FastAPI DocGPT:基于FastAPI的PDF文档处理和问答系统

综合介绍

FastAPI DocGPT 是一个基于 FastAPI 的文档问答系统,允许用户上传 PDF 文件并基于文档内容进行问答。该系统使用 OpenAI 的嵌入技术将文档内容嵌入到向量数据库 Qdrant 中,从而实现智能问答功能。用户可以通过 API 接口上传文档并提出问题,系统将返回基于文档内容的智能回答。

 

功能列表

  • PDF 上传:用户可以上传 PDF 文件,系统会处理并存储到向量数据库中。
  • 问答系统:用户可以基于上传的 PDF 内容提出问题,系统会返回智能回答。
  • API 文档:通过 Swagger 提供自动生成的 API 文档,方便开发者使用。
  • 跨域资源共享:支持 CORS,允许来自不同域的前端请求。

 

使用帮助

安装与设置

  1. 克隆仓库
    git clone https://github.com/shaheryaryousaf/fastapi-docgpt
    cd fastapi-docgpt
    
  2. 设置虚拟环境
    python3 -m venv venv
    source venv/bin/activate  # Windows: venv\Scripts\activate
    
  3. 安装依赖
    pip install -r requirements.txt
    
  4. 配置环境变量 在项目根目录创建 .env 文件,并添加 OpenAI 和 Qdrant 的 API 密钥:
    OPENAI_API_KEY=your-openai-api-key
    QDRANT_URL=your-qdrant-url
    QDRANT_API_KEY=your-qdrant-api-key
    

使用指南

  1. 启动 FastAPI 应用
    uvicorn app:app --reload
    

    这将启动 FastAPI 应用,并在 http://127.0.0.1:8000 提供服务。

  2. 上传 PDF 文件 通过 /upload-pdf/ 端点上传 PDF 文件:
    curl -X POST "http://127.0.0.1:8000/upload-pdf/" -F "file=@yourfile.pdf"
    

    系统会处理 PDF 文件并将其内容嵌入到向量数据库中。

  3. 提出问题 通过 /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 密钥)。

AI轻松学

普通人的AI入门指南

帮助你以低成本、零基础学会如何利用AI工具。AI就像办公软件一样,是每个人的必备技能。 掌握AI会让你在求职中占据优势,在未来的工作和学习中事半功倍。

查看详情>
未经允许不得转载:首席AI分享圈 » FastAPI DocGPT:基于FastAPI的PDF文档处理和问答系统

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文