FastAPI DocGPT: FastAPI 기반 PDF 문서 처리 및 Q&A 시스템

최신 AI 리소스10개월 전 업데이트 AI 공유 서클
10.7K 00

일반 소개

FastAPI DocGPT는 사용자가 PDF 파일을 업로드하고 문서 내용을 기반으로 퀴즈를 풀 수 있는 FastAPI 기반 문서 퀴즈 시스템입니다. 이 시스템은 OpenAI의 임베딩 기술을 사용하여 문서 콘텐츠를 벡터 데이터베이스인 Qdrant에 임베딩하여 지능적인 Q&A를 가능하게 합니다. 사용자는 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. put 통과(청구서 또는 검사 등) /ask-question/ 엔드포인트는 질문을 제기합니다:
    curl -X POST "http://127.0.0.1:8000/ask-question/" -H "Content-Type: application/json" -d '{"question": "你的问题"}'
    

    시스템은 문서의 내용을 기반으로 지능적인 답변을 반환합니다.

프로젝트 구조

  • app.pyPDF 업로드 및 Q&A 시스템을 위한 API 엔드포인트가 포함된 기본 FastAPI 애플리케이션 파일입니다.
  • utils.pyPDF 파일 처리, 벡터 데이터베이스로 임베딩 전송, 임베딩에서 답변 검색을 위한 유틸리티 기능이 포함되어 있습니다.
  • .env 파일: OpenAI 및 Qdrant의 API 키를 관리합니다.

종속성 라이브러리(컴퓨팅)

  • FastAPI웹 API를 구축하는 데 사용됩니다.
  • Qdrant 클라이언트문서 임베드를 저장하고 검색하는 데 사용됩니다.
  • LangChainPDF 처리 및 임베딩용.
  • OpenAI를 사용하여 임베딩 및 AI 모델 응답을 생성할 수 있습니다.
  • PyPDFLoaderPDF 파일에서 텍스트를 추출하는 데 사용됩니다.
  • CORS 미들웨어도메인 간 리소스 공유(CORS)를 처리하여 서로 다른 도메인의 프런트엔드 요청을 허용합니다.
  • dotenv환경 변수(예: API 키)를 관리합니다.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...