Allgemeine Einführung
FastAPI DocGPT ist ein FastAPI-basiertes Dokumenten-Quizsystem, das es Benutzern ermöglicht, PDF-Dateien hochzuladen und sie auf der Grundlage des Dokumenteninhalts zu befragen. Das System nutzt die Einbettungstechnologie von OpenAI, um Dokumentinhalte in eine Vektordatenbank, Qdrant, einzubetten und so intelligente Fragen und Antworten zu ermöglichen. Die Benutzer können Dokumente hochladen und über die API-Schnittstelle Fragen stellen, woraufhin das System intelligente Antworten auf der Grundlage des Dokumenteninhalts zurückgibt.
Funktionsliste
- PDF-UploadBenutzer können PDF-Dateien hochladen, die verarbeitet und in der Vektordatenbank gespeichert werden.
- Frage- und AntwortsystemBenutzer können auf der Grundlage des hochgeladenen PDF-Inhalts Fragen stellen, und das System gibt intelligente Antworten zurück.
- API-DokumentationBietet automatisch generierte API-Dokumentation durch Swagger für die Bequemlichkeit der Entwickler.
- Domänenübergreifende gemeinsame Nutzung von RessourcenCORS-Unterstützung: Ermöglicht Front-End-Anfragen aus verschiedenen Domänen.
Hilfe verwenden
Installation und Einrichtung
- Klon-Lager
git clone https://github.com/shaheryaryousaf/fastapi-docgpt cd fastapi-docgpt
- Einrichten einer virtuellen Umgebung
python3 -m venv venv Quelle venv/bin/activate # Windows: venv\Scripts\activate
- Installation von Abhängigkeiten
pip install -r anforderungen.txt
- Umgebungsvariablen konfigurieren Erstellen Sie im Stammverzeichnis des Projekts die Datei
.env
Datei und fügen Sie API-Schlüssel für OpenAI und Qdrant hinzu:OPENAI_API_KEY=Ihr-openai-api-key QDRANT_URL=Ihre-qdrant-url QDRANT_API_KEY=Ihr-qdrant-api-key
Richtlinien für die Verwendung
- Starten der FastAPI-Anwendung
uvicorn app:app --reload
Dadurch wird die FastAPI-Anwendung mit dem
http://127.0.0.1:8000
Erbringung von Dienstleistungen. - Hochladen von PDF-Dateien passieren (eine Rechnung oder Inspektion etc.)
/upload-pdf/
Endpunkte laden PDF-Dateien hoch:curl -X POST "http://127.0.0.1:8000/upload-pdf/" -F "file=@yourfile.pdf"
Das System verarbeitet die PDF-Datei und bettet ihren Inhalt in die Vektordatenbank ein.
- setzen. passieren (eine Rechnung oder Inspektion etc.)
/ask-question/
Endpunkte werfen Fragen auf:curl -X POST "http://127.0.0.1:8000/ask-question/" -H "Content-Type: application/json" -d '{"Frage": "Ihre Frage"}'
Das System liefert intelligente Antworten auf der Grundlage des Inhalts des Dokuments.
Struktur des Projekts
app.py
FastAPI: Die Hauptanwendungsdatei von FastAPI, die die API-Endpunkte für den PDF-Upload und das Q&A-System enthält.utils.py
Enthält Dienstfunktionen zur Verarbeitung von PDF-Dateien, zum Senden von Einbettungen an Vektordatenbanken und zum Abrufen von Antworten aus Einbettungen..env
Datei: Verwaltet API-Schlüssel für OpenAI und Qdrant.
Bibliothek der Abhängigkeiten (Informatik)
- FastAPI: Wird zur Erstellung von Web-APIs verwendet.
- Qdrant-Kunde: Dient zum Speichern und Abrufen von Dokumenteneinbettungen.
- LangChainFür die Verarbeitung von PDFs und Einbettungen.
- OpenAI: zur Erzeugung von Einbettungs- und KI-Modellantworten.
- PyPDFLoaderExtrahiert Text aus PDF-Dateien.
- CORS-MiddlewareCORS (Cross-Domain Resource Sharing): Ermöglicht Front-End-Anfragen aus verschiedenen Domänen.
- dotenvVerwaltung von Umgebungsvariablen (z. B. API-Schlüssel).