Wir erstellen einen Chatbot, mit dem Blogs auf der Redis.com -Website basierend auf der Benutzerabfrage zusammengefasst und empfohlen werden können.

Dieses kleine Projekt verwendet 2 KI -Modelle
In diesem Projekt wollen wir demonstrieren
Der einfachste Weg, um ein Docker -Bild mit dem folgenden Befehl zu verwenden
docker run -d -p 6379:6379 -p 8001:8001 redis/redis-stack:latestWenn Sie kein Docker -Image verwenden möchten, können Sie sich hier für ein kostenloses Redis -Cloud -Abonnement anmelden.
Laden Sie das Repository herunter
git clone https://github.com/mar1boroman/ask-redis-blogs.git && cd ask-redis-blogs
Bereiten Sie die virtuelle Umgebung vor und aktivieren Sie
python3 -m venv .env && source .env/bin/activate
Installieren Sie die erforderlichen Bibliotheken und Abhängigkeiten
pip install -r requirements.txt
Wir haben umfangreiche Wissensbasis im Redis -Blog, das das erste Skript ausführen kann, das ein Webcraper ist. In diesem Skript werden die Website erkrankt und eine CSV -Datei erstellt, die die Daten aller verfügbaren Blogs enthält.
python 0_ext_redis_blogs.pyBeachten Sie, dass dieses Repository bereits die Blogs bis zum 19. September 2023 aktualisiert hat. Wenn Sie dieses Skript ausführen, wird nur die neuen Blogs heruntergeladen. Die CSV -Datei wird unter redis_blogs.csv gespeichert
In diesem Schritt generieren wir die Einbettung für Textinhalte jedes Blogs und speichern sie in einem Hash -Format
python 1_load_redis_blogs.pySie können den Inhalt Ihrer Redis -Datenbank in Redisinsight in Ihrem Browser unter http: // localhost: 8001 untersuchen
Nachdem wir die Blogs und ihre Einbettungen in Redis gespeichert haben, ist es Zeit, den Chatbot in Aktion zu sehen!.
streamlit run 3_ui.py
Führen wir eine einfache Vektor -Ähnlichkeitssuche über unsere Blogs durch.

Stellen Sie sicher, dass das Kontrollkästchen "automatisch zusammenfassen" deaktiviert ist
Geben Sie eine Eingabeaufforderung ein. Für zB
Triggers and Functions
Sie erhalten 3 Blogempfehlungen in Millisekunden. Die Antwort enthält auch die Zeit, die für die Rückgabe der Antwort benötigt wird. In diesem Fall erfolgt die Suche vollständig in Redis, außer dass die Eingabeaufforderung durch All-MPNET-Base-V2 ausgeführt wird, bevor die Ähnlichkeitssuche ausgeführt wird
Lassen Sie uns etwas fortgeschrittener werden.

Stellen Sie sicher, dass das Kontrollkästchen "automatisch zusammengefasst" aktiviert ist
Geben Sie eine Eingabeaufforderung ein. Für zB
Triggers and Functions
Wenn Sie diese Eingabeaufforderung zum ersten Mal eingeben, werden die folgenden Dinge passieren
Dies dauert erheblich lange, ungefähr 30 s
Daher speichern wir die Antwort und die Eingabeaufforderung in Redis. Überprüfen Sie Ihre Wiederherstellung im Browser und Sie sehen einen Schlüssel, der mit dem Präfix llm_cache erstellt wurde
Sobald die Reaktion, die sie zurückgegeben hat
Versuchen Sie nun, dieselbe Eingabeaufforderung (oder eine ähnliche Eingabeaufforderung erneut) auszuführen. Für zB
About Triggers and functions
Sie erhalten die zwischengespeicherte Antwort auf der basierenden Suche nach schnellen Vektor -Ähnlichkeit zwischen den Eingabeaufforderungen und der im vorherigen Schritt zwischengespeicherten Antwort.
Wir können deutlich die Vorteile der Verwendung des semantischen Caching hier erkennen
Eine Version des Chatbots ist in der CLI -Version verfügbar
python 2_vecsim_redis_blogs.py