Ein einfacher Discord -Bot, mit dem Sie semantisch nach Nachrichten suchen können.
Ich habe dieses Projekt erst gestartet, weil ich etwas über Worteinbettungen und Vektor -Datenbanken lernen wollte. Ich bin mir also nicht sicher, ob ich es jemals beenden werde. Wenn Sie es verwenden möchten, müssen Sie herausfinden, wie Sie es selbst hosten können.
Dies ist eindeutig noch in Arbeit. Benötigt noch viel Arbeit, insbesondere auf der Datenbankseite. Vektordatenbanken sind relativ einfach zu bedienen, aber schwer zu warten.
Der Grund, warum ich es als Discord -Bot eingerahmt habe, ist, dass ihre Suchfunktion so gut ist, dass sie die Plattform auch liebe, nicht so gut. Ich bin mir nicht sicher, ob ich jemals zu einem Punkt komme, an dem ich diesen Bot für andere hosten kann, aber wenn ich das tue, werde ich diesen Abschnitt aktualisieren.
Ich bin mir nicht sicher, ob ich die richtigen Abstraktionen/Struktur verwende, da ich mit TypeScript nicht sehr erfahren bin. Ich habe jedoch versucht, eine Abstraktion zu nutzen, um es einfacher zu machen, die Datenbank und den Einbettungsdienst auszutauschen. Wenn Sie Vorschläge haben, lassen Sie es mich bitte wissen.
Der Hauptzweck ist es, Ihnen zu helfen, Nachrichten zu finden, von denen Sie wissen, dass sie sich in einem Server befinden (oder nicht), aber Sie können sich nicht genau erinnern, wie sie formuliert wurden. Es verwendet das ADA -Modell von OpenAI, um Einbettungen für jede Nachricht zu generieren und in einer Vektor -Datenbank (QDRant) zu speichern.
Sie können dann nach Nachrichten suchen, die einer bestimmten Abfrage semantisch ähnlich sind.
Sie müssen einen Discord -Bot erstellen und Ihrem Server hinzufügen.
Sie müssen auch ein OpenAI -Konto erstellen und einen API -Schlüssel erhalten.
cp .env.template .env # And fill in the missing valuesAngenommen, Sie haben Knoten und Docker installiert, können Sie die folgenden Befehle ausführen, um den Bot im Entwicklungsmodus zu starten:
npm install
npm run commands:deploy # Deploys bot commands to your dev server (you need to do this every time you add a new command)
bash start-db.sh # Starts a docker container with a vector database
npm run start:dev