Chatten Sie mit Ihren persönlichen PDF -Dokumenten.

HighLevel -Übersicht über diese streamlit -App nach Datei.
Klicken Sie hier, um zu den Installationsanweisungen zu gehen



Huxley.py Die Funktion main() ist für die Behandlung der Benutzeroberfläche und die Verarbeitung der hochgeladenen PDF -Datei verantwortlich. Hier ist eine Aufschlüsselung des Codes:
Die Funktion render_header() wird aufgerufen, um den Header -Abschnitt der Anwendung anzuzeigen. Es enthält den Titel, die Beschreibung und ein Bild.
Die sidebar() -Funktion wird aufgerufen, um den Sidebar -Abschnitt der Anwendung anzuzeigen. Es enthält Informationen zu Huxleypdf, Anweisungen zur Verwendung des Gebrauchs und Eingabefelder für den OpenAI -API -Schlüssel.
Die Funktion setup_environment() wird aufgerufen, um die Umgebung einzurichten. Derzeit wird nur eine Meldung angezeigt, in der angegeben ist, dass das Setup im Gange ist.
Mit der Funktion st.file_uploader() wird eine PDF -Datei hochgeladen. Der Benutzer wird aufgefordert, eine Datei mit der Beschreibung "PDF hochladen" und den Dateitypfilter auf "PDF" einzustellen.
Der Code holt dann eine Remote -PDF -Datei mit der OnlinePDFLoader -Klasse aus der unstrukturierten Bibliothek. Dies wird vorerst kommentiert.
Wenn eine PDF -Datei hochgeladen wird, extrahiert der Code den Text aus der PDF unter Verwendung der PdfReader -Klasse aus der PYMUPDF -Bibliothek.
Der extrahierte Text wird unter Verwendung der CharacterTextSplitter -Klasse aus der Langchain -Bibliothek in Stücke aufgeteilt. Die Chunk -Größe ist auf 400 Zeichen gesetzt, und die Überlappung zwischen Stücken ist auf 80 Zeichen gesetzt.
Die OpenAIEmbeddings -Klasse wird verwendet, um Einbettungen für die Textbrocken zu erstellen.
Die Funktion FAISS.from_texts() wird verwendet, um einen FAISS -Index aus den Textbrocken und deren Einbettungen zu erstellen. Dies wird vorerst kommentiert.
Der Benutzer wird aufgefordert, eine Frage zum PDF mit der Funktion st.text_input() einzugeben.
Wenn eine Frage eingegeben wird, ruft der Code die Dokumente aus dem FAISS -Index ab, die der Frage des Benutzers mit der Methode von similarity_search() am ähnlichsten sind.
Die OpenAI() -Klasse wird verwendet, um eine Instanz der OpenAI -API zu erstellen.
Die Funktion load_qa_chain() wird verwendet, um eine Frage-Antwort-Kette mithilfe der OpenAI-API und dem Kettentyp "Stuff" zu erstellen.
Der Kontextmanager get_openai_callback() wird verwendet, um die Rückrufinformationen von der OpenAI -API zu erfassen.
Die Methode der chain.run() wird verwendet, um die Frage-Antwort-Kette in den Eingabedokumenten und der Frage des Benutzers auszuführen. Die Antwort wird gedruckt.
Die Antwort wird mit der Funktion st.write() angezeigt.
Insgesamt übernimmt der Code in der Funktion main() die Benutzeroberfläche, verarbeitet die hochgeladene PDF-Datei und führt eine Frage-Antwort-Aufgabe mithilfe der OpenAI-API und der Langchain-Bibliothek durch.