일반 소개
FastAPI DocGPT는 사용자가 PDF 파일을 업로드하고 문서 내용을 기반으로 퀴즈를 풀 수 있는 FastAPI 기반 문서 퀴즈 시스템입니다. 이 시스템은 OpenAI의 임베딩 기술을 사용하여 문서 콘텐츠를 벡터 데이터베이스인 Qdrant에 임베딩하여 지능적인 Q&A를 가능하게 합니다. 사용자는 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 파일을 처리하고 그 내용을 벡터 데이터베이스에 삽입합니다.
- put 통과(청구서 또는 검사 등)
/ask-question/
엔드포인트는 질문을 제기합니다:curl -X POST "http://127.0.0.1:8000/ask-question/" -H "Content-Type: application/json" -d '{"question": "你的问题"}'
시스템은 문서의 내용을 기반으로 지능적인 답변을 반환합니다.
프로젝트 구조
app.py
PDF 업로드 및 Q&A 시스템을 위한 API 엔드포인트가 포함된 기본 FastAPI 애플리케이션 파일입니다.utils.py
PDF 파일 처리, 벡터 데이터베이스로 임베딩 전송, 임베딩에서 답변 검색을 위한 유틸리티 기능이 포함되어 있습니다..env
파일: OpenAI 및 Qdrant의 API 키를 관리합니다.
종속성 라이브러리(컴퓨팅)
- FastAPI웹 API를 구축하는 데 사용됩니다.
- Qdrant 클라이언트문서 임베드를 저장하고 검색하는 데 사용됩니다.
- LangChainPDF 처리 및 임베딩용.
- OpenAI를 사용하여 임베딩 및 AI 모델 응답을 생성할 수 있습니다.
- PyPDFLoaderPDF 파일에서 텍스트를 추출하는 데 사용됩니다.
- CORS 미들웨어도메인 간 리소스 공유(CORS)를 처리하여 서로 다른 도메인의 프런트엔드 요청을 허용합니다.
- dotenv환경 변수(예: API 키)를 관리합니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...