Introdução geral
O FastAPI DocGPT é um sistema de teste de documentos baseado em FastAPI que permite aos usuários carregar arquivos PDF e fazer testes com base no conteúdo do documento. O sistema usa a tecnologia de incorporação da OpenAI para incorporar o conteúdo do documento em um banco de dados vetorial, o Qdrant, para permitir perguntas e respostas inteligentes. Os usuários podem carregar documentos e fazer perguntas por meio da interface API, e o sistema retornará respostas inteligentes com base no conteúdo do documento.
Lista de funções
- Carregamento de PDFOs usuários podem fazer upload de arquivos PDF, que são processados e armazenados no banco de dados de vetores.
- sistema de perguntas e respostasOs usuários podem fazer perguntas com base no conteúdo do PDF carregado e o sistema retornará respostas inteligentes.
- Documentação da APIDocumentação da API: fornece documentação de API gerada automaticamente por meio do Swagger para conveniência dos desenvolvedores.
- Compartilhamento de recursos entre domíniosSuporte a CORS, permitindo solicitações de front-end de diferentes domínios.
Usando a Ajuda
Instalação e configuração
- armazém de clones
git clone https://github.com/shaheryaryousaf/fastapi-docgpt cd fastapi-docgpt
- Configuração de um ambiente virtual
python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
- Instalação de dependências
pip install -r requirements.txt
- Configuração de variáveis de ambiente No diretório raiz do projeto, crie o arquivo
.env
e adicione chaves de API para OpenAI e Qdrant:OPENAI_API_KEY=sua-openai-api-key QDRANT_URL=seu-qdrant-url QDRANT_API_KEY=seu-qdrant-api-key
Diretrizes para uso
- Iniciando o aplicativo FastAPI
uvicorn app:app --reload
Isso iniciará o aplicativo FastAPI com o
http://127.0.0.1:8000
Prestação de serviços. - Carregar arquivos PDF aprovar (um projeto de lei ou inspeção etc.)
/upload-pdf/
Os pontos de extremidade fazem upload de arquivos PDF:curl -X POST "http://127.0.0.1:8000/upload-pdf/" -F "file=@yourfile.pdf"
O sistema processa o arquivo PDF e incorpora seu conteúdo ao banco de dados vetorial.
- colocar aprovar (um projeto de lei ou inspeção etc.)
/ask-question/
Os pontos finais levantam questões:curl -X POST "http://127.0.0.1:8000/ask-question/" -H "Content-Type: application/json" -d '{"question": "your question"}'
O sistema retorna respostas inteligentes com base no conteúdo do documento.
Estrutura do projeto
app.py
Arquivo principal do aplicativo FastAPI: O arquivo principal do aplicativo FastAPI que contém os pontos de extremidade da API para o sistema de upload de PDF e de perguntas e respostas.utils.py
Contém funções utilitárias para processar arquivos PDF, enviar embeddings para bancos de dados vetoriais e recuperar respostas de embeddings..env
Arquivo: gerencia chaves de API para OpenAI e Qdrant.
biblioteca de dependências (computação)
- FastAPIUsado para criar APIs da Web.
- Cliente QdrantUsado para armazenar e recuperar documentos incorporados.
- LangChainPara processar PDFs e incorporações.
- OpenAIpara gerar respostas de modelos de incorporação e IA.
- PyPDFLoaderExtração de texto: Usado para extrair texto de arquivos PDF.
- Middleware CORSCORS: lida com o compartilhamento de recursos entre domínios (CORS), permitindo solicitações de front-end de diferentes domínios.
- dotenvGerenciar variáveis de ambiente (como chaves de API).