
Flussdiagramm für Qdurllm
Qdurllm ( QD Rant URL S und L arge l Anguage models ) ist eine lokale Suchmaschine, mit der Sie URL -Inhalte in einer Vektordatenbank auswählen und hochladen können: Danach können Sie diesen Inhalt suchen, abrufen und chatten.
Dies wird durch eine Multi-Container-Docker-Anwendung vorgelegt, die QDrant, Langchain, llama.cpp, quantisierte Gemma und Gradio nutzt.
Gehen Sie zum Demo -Raum auf Umarmung?
Die einzige Voraussetzung ist, docker und docker-compose zu haben.
Wenn Sie sie nicht haben, sollten Sie sie hier installieren.
Sie können die Anwendung installieren, indem Sie das GitHub -Repository klonen
git clone https://github.com/AstraBert/qdurllm.git
cd qdurllm Oder Sie können einfach den folgenden Text in eine compose.yaml -Datei einfügen:
networks :
mynet :
driver : bridge
services :
local-search-application :
image : astrabert/local-search-application
networks :
- mynet
ports :
- " 7860:7860 "
qdrant :
image : qdrant/qdrant
ports :
- " 6333:6333 "
volumes :
- " ./qdrant_storage:/qdrant/storage "
networks :
- mynet
llama_server :
image : astrabert/llama.cpp-gemma
ports :
- " 8000:8000 "
networks :
- mynetPlatzieren Sie die Datei in jedem gewünschten Verzeichnis in Ihrem Dateisystem.
Vor dem Ausführen der Anwendung können Sie optional alle benötigten Bilder von Docker Hub ziehen:
docker pull qdrant/qdrant
docker pull astrabert/llama.cpp-gemma
docker pull astrabert/local-search-applicationBeim Start (siehe Verwendung) wird in der Anwendung drei Container ausgeführt:
qdrant (Port 6333): dient als Vektor-Datenbankanbieter für semantische Suchbasis-Abrufenllama.cpp-gemma (Port 8000): Dies ist eine Implementierung eines quantisierten Gemma-Modells, das von LMSTUDIO und Google bereitgestellt wird und mit llama.cpp Server serviert wird. Dies eignet sich für Textegenerationsbereiche und bereichert die Sucherfahrung des Benutzers.local-search-application (Port 7860): Eine Gradio-Registerkarte mit:::llama.cpp-gemma URLs zu chattenall-MiniLM-L6-v2 (die die 10 besten Übereinstimmungen identifiziert) und den sentence-t5-base (die die 10 besten Übereinstimmungen wiederherstellt und den besten Treffer aus ihnen auszieht)-dies ist dieselbe RAG-Implementierung, die in Kombination mit llama.cpp-gemma verwendet wird. Möchten Sie sehen, wie doppelt so hoch wie doppeltes Lappen im Vergleich zu einschichtigen Lappen funktioniert? Gehen Sie hierher!Die gesamte Rechenbelastung ist leicht genug, um die Anwendung nicht nur mit GPULESSORN, sondern auch mit niedriger RAM -Verfügbarkeit (> = 8 GB, obwohl sie bis zu 10 Minuten dauern kann, bis Gemma auf 8 GB RAM reagiert).
Sie können die Anwendung mit dem folgenden - wirklich einfachen Befehl funktionieren lassen, der in demselben Verzeichnis ausgeführt werden muss, in dem Sie Ihre Datei compose.yaml gespeichert haben:
docker compose up -d Wenn Sie bereits alle Bilder gezogen haben, finden Sie die Anwendung unter http://localhost:7860 oder http://0.0.0.0:7860 in weniger als einer Minute.
Wenn Sie die Bilder nicht gezogen haben, müssen Sie darauf warten, dass ihre Installation abgeschlossen ist, bevor Sie die Anwendung tatsächlich verwenden.
Sobald die App geladen ist, finden Sie eine erste Registerkarte, in der Sie die URLs schreiben können, mit deren Inhalt Sie interagieren möchten:

Nachdem Ihre URLs hochgeladen werden, können Sie entweder mit ihren Inhalten über llama.cpp-gemma chatten:

Beachten Sie, dass Sie auch Parameter wie maximale Ausgangs -Token, Temperatur, Wiederholungsstrafe und Erzeugungssamen festlegen können
Oder Sie können eine doppelschichtige semantische Suche verwenden, um Ihre URL-Inhalte direkt abzufragen:

Die Software ist (und wird immer) Open-Source, die im Rahmen der MIT-Lizenz bereitgestellt wird.
Jeder kann jeden Teil davon verwenden, ändern und umverteilen, solange der Autor Astra Clelia Bertelli zitiert wird.
Der Beitrag ist immer mehr als willkommen! Fühlen Sie sich frei, Probleme zu markieren, PRs zu öffnen oder den Autor zu wenden, um Änderungen vorzuschlagen, Funktionen zu fordern oder den Code zu verbessern.
Wenn Sie die Bewerbung nützlich empfanden, sollten Sie sie in Betracht ziehen, um Verbesserungen zu ermöglichen!