Il s'agit d'un projet de démarrage de base pour la construction avec les outils et API suivants:
Quand j'ai commencé à plonger dans tout cela, j'ai senti que même si je comprenais certaines des pièces individuelles, il était difficile de tout reconstituer dans un projet cohérent. J'espère que ce projet est utile pour tous ceux qui cherchent à construire avec cette pile et ont juste besoin de quelque chose pour commencer.
Nous construisons une application qui prend du texte (fichiers texte), les intégre dans des vecteurs, les stocke en pinone et permet la recherche sémantique des données.
Pour quiconque se demande ce qu'est la recherche sémantique, voici un aperçu (tiré directement de ChatGpt4):
La recherche sémantique fait référence à une approche de recherche qui comprend l'intention de l'utilisateur et la signification contextuelle des requêtes de recherche, au lieu de simplement correspondre aux mots clés.
Il utilise le traitement du langage naturel et l'apprentissage automatique pour interpréter la sémantique ou le sens derrière les requêtes. Il en résulte des résultats de recherche plus précis et pertinents. La recherche sémantique peut considérer l'intention des utilisateurs, le contexte de la requête, la reconnaissance des synonymes et la compréhension du langage naturel. Ses applications vont des moteurs de recherche Web aux systèmes de recommandation personnalisés.
Dans cette section, je vous guiderai sur la façon de déployer et d'exécuter cette application.
Pour exécuter cette application, vous avez besoin de ce qui suit:
Pour exécuter l'application localement, suivez ces étapes:
git clone [email protected]:dabit3/semantic-search-nextjs-pinecone-langchain-chatgpt.gitSe transformer dans le répertoire et installer les dépendances à l'aide de NPM ou de fil
Copier .example.env.local dans un nouveau fichier appelé .env.local et mettre à jour avec vos clés et environnement API.
Assurez-vous que votre environnement est un environnement réel qui vous est donné par Pinecone, comme us-west4-gcp-free
(Facultatif) - Ajoutez vos propres fichiers de texte ou de marque personnalisés dans le dossier /documents .
Exécutez l'application:
npm run dev Lors de la création des incorporations et de l'index, il peut prendre jusqu'à 2 à 4 minutes pour que l'index l'initialise complètement. Il existe une fonction Settimeout de 180 secondes dans les utils qui attend la création de l'index.
Si l'initialisation prend plus de temps, elle échouera la première fois que vous essayez de créer les intégres. Si cela se produit, visitez la console Pinecone pour regarder et attendez que l'état de votre index soit créé pour terminer, puis exécutez la fonction.
Les données d'application préconfigurées concernent la documentation du développeur du protocole d'objectif, il ne comprendra donc que des questions à ce sujet, sauf si vous les remplacez par vos propres données. Voici quelques questions que vous pourriez lui poser avec les données par défaut
La base de ce projet a été guidée par ce didacticiel Node.js, avec un peu de restructuration et porté vers Next.js. Vous pouvez également les suivre ici sur Twitter!
Je recommande de consulter le chargeur de référentiel GPT qui permet de transformer tout le référentiel GitHub en format de texte, en préservant la structure des fichiers et des contenus des fichiers, ce qui facilite la coupe et l'enregistrement dans PineCone en utilisant ma base de code.