Bei diesem Projekt handelt es sich um eine experimentelle Sandbox zum Testen von Ideen im Zusammenhang mit der Ausführung lokaler Large Language Models (LLMs) mit Ollama, um Retrieval-Augmented Generation (RAG) zur Beantwortung von Fragen basierend auf Beispiel-PDFs durchzuführen. In diesem Projekt verwenden wir Ollama auch, um Einbettungen mit dem nomic-embed-text zur Verwendung mit Chroma zu erstellen. Bitte beachten Sie, dass die Einbettungen bei jeder Ausführung der Anwendung neu geladen werden, was nicht effizient ist und hier nur zu Testzwecken durchgeführt wird.
Es gibt auch eine mit Streamlit erstellte Web-Benutzeroberfläche, die eine andere Möglichkeit der Interaktion mit Ollama bietet.
python3 -m venv .venv
ausführen.source .venv/bin/activate
unter Unix oder MacOS oder ..venvScriptsactivate
unter Windows ausführen.pip install -r requirements.txt
ausführen. Hinweis: Wenn Sie das Projekt zum ersten Mal ausführen, werden die erforderlichen Modelle von Ollama für das LLM und die Einbettungen heruntergeladen. Dies ist ein einmaliger Einrichtungsvorgang und kann je nach Internetverbindung einige Zeit dauern.
python app.py -m -p
aus, um ein Modell und den Pfad zu Dokumenten anzugeben. Wenn kein Modell angegeben ist, wird standardmäßig Mistral verwendet. Wenn kein Pfad angegeben ist, wird für Beispielzwecke standardmäßig Research
im Repository verwendet.-e
das zu verwendende Einbettungsmodell angeben. Wenn nicht angegeben, wird standardmäßig nomic-embed-text verwendet. Dadurch werden die PDFs und Markdown-Dateien geladen, Einbettungen generiert, die Sammlung abgefragt und die in app.py
definierte Frage beantwortet.
ui.py
-Skript enthält.streamlit run ui.py
in Ihrem Terminal ausführen.Dadurch wird ein lokaler Webserver gestartet und eine neue Registerkarte in Ihrem Standard-Webbrowser geöffnet, in der Sie mit der Anwendung interagieren können. Mit der Streamlit-Benutzeroberfläche können Sie Modelle auswählen und einen Ordner auswählen. Dies bietet im Vergleich zur Befehlszeilenschnittstelle eine einfachere und intuitivere Möglichkeit, mit dem RAG-Chatbot-System zu interagieren. Die Anwendung übernimmt das Laden von Dokumenten, das Generieren von Einbettungen, das Abfragen der Sammlung und die interaktive Anzeige der Ergebnisse.