Dies ist ein grundlegendes Starterprojekt zum Aufbau mit den folgenden Tools und APIs:
Als ich in all das eintauchte, fühlte ich, als ich einige der einzelnen Stücke verstand, war es schwierig, alles in ein zusammenhängendes Projekt zusammenzusetzen. Ich hoffe, dass dieses Projekt für alle nützlich ist, die mit diesem Stapel aufbauen möchten, und nur etwas zu Beginn benötigen.
Wir erstellen eine App, die Text (Textdateien) aufnimmt, in Vektoren einbettet, sie in Tinecone speichert und die semantische Suche der Daten ermöglicht.
Für alle, die sich fragen, was semantische Suche ist, ist hier ein Überblick (direkt von Chatgpt4):
Die semantische Suche bezieht sich auf einen Suchansatz, der die Absicht des Benutzers und die kontextbezogene Bedeutung von Suchanfragen versteht, anstatt nur die Schlüsselwörter zu entsprechen.
Es verwendet natürliche Sprachverarbeitung und maschinelles Lernen, um die Semantik oder Bedeutung hinter Abfragen zu interpretieren. Dies führt zu genaueren und relevanteren Suchergebnissen. Die semantische Suche kann Benutzerabsichten, Abfragenkontext, Synonymerkennung und natürliches Sprachverständnis berücksichtigen. Die Anwendungen reichen von Web -Suchmaschinen bis hin zu personalisierten Empfehlungssystemen.
In diesem Abschnitt werde ich Sie durch die Bereitstellung und Ausführung dieser App führen.
Um diese App auszuführen, benötigen Sie Folgendes:
Um die App lokal auszuführen, befolgen Sie die folgenden Schritte:
git clone [email protected]:dabit3/semantic-search-nextjs-pinecone-langchain-chatgpt.gitWechseln Sie in das Verzeichnis und installieren Sie die Abhängigkeiten entweder NPM oder Garn
Kopieren Sie .example.env.local in eine neue Datei namens .env.local und aktualisieren Sie mit Ihren API -Schlüssel und -umgebung.
Stellen Sie us-west4-gcp-free
(Optional) - Fügen Sie Ihren eigenen benutzerdefinierten Text- oder Markdown -Dateien in den Ordner /documents hinzu.
Führen Sie die App aus:
npm run dev Beim Erstellen der Einbettungen und des Index kann es bis zu 2-4 Minuten dauern, bis der Index vollständig initialisiert wird. Es gibt eine SetTimeout -Funktion von 180 Sekunden in den utils , die darauf warten, dass der Index erstellt wird.
Wenn die Initialisierung länger dauert, wird das erste Mal fehlschlagen, wenn Sie versuchen, die Einbettungen zu erstellen. In diesem Fall besuchen Sie die Pinecone -Konsole, um zu beobachten und zu warten, bis der Status Ihres Index erstellt wird, um fertig zu werden, und führen Sie die Funktion erneut aus.
Bei den vorkonfigurierten App-Daten geht es um die Dokumentation des Objektivprotokollentwicklers, sodass sie nur Fragen dazu verstehen, es sei denn, Sie ersetzen sie durch Ihre eigenen Daten. Hier sind einige Fragen, die Sie mit den Standarddaten stellen könnten
Die Basis dieses Projekts wurde durch dieses Tutorial von Node.js geleitet, wobei einige Umstrukturierungen umstrukturiert und auf Next.js. portiert wurden. Sie können ihnen auch hier auf Twitter folgen!
Ich empfehle, den GPT -Repository -Loader zu überprüfen, der es einfach macht, jedes Github -Repo in ein Textformat zu verwandeln, wodurch die Struktur der Dateien und Dateiinhalte aufbewahrt wird, wodurch es einfach ist, mit meiner Codebasis in PineCone zu schneiden und in PineCone zu speichern.