Phase de récupération

Lorsqu'elle reçoit une question, l'application commence par rechercher les documents pertinents dans l'index Elasticsearch. Pour ce faire, on génère un vecteur d'intégration peu dense pour la question, puis on recherche dans l'index les vecteurs d'intégration les plus proches, chacun étant associé à un passage d'un document.

Comme dans la phase d'ingestion, l'index Elasticsearch est géré par l'intégration de ElasticsearchStore avec Langchain :

La méthode invoke() de l'interface de récupération de Langchain, qui exécute toutes ces tâches et renvoie la liste des documents les plus pertinents trouvés, permet de faire abstraction de la génération d'un ancrage pour la question, puis de la recherche de celle-ci :

Vous pouvez voir ici comment les passages renvoyés sont envoyés au client en tant que sources. L'application React les affichera sous la forme de "Search Results" sous la réponse.

Il est important de noter que l'argument strategy utilisé dans la classe ElasticsearchStore doit correspondre à la stratégie utilisée lors de l'ingestion. Dans cet exemple, le site SparseVectorRetrievalStrategy crée et recherche des vecteurs épars à partir du modèle ELSER d'Elastic. Une autre option intéressante que vous pouvez évaluer est l'utilisation de ApproxRetrievalStrategy, qui utilise l'intégration de vecteurs denses.

Précédemment

Chatbot Endpoint

Prêt à créer des expériences de recherche d'exception ?

Une recherche suffisamment avancée ne se fait pas avec les efforts d'une seule personne. Elasticsearch est alimenté par des data scientists, des ML ops, des ingénieurs et bien d'autres qui sont tout aussi passionnés par la recherche que vous. Mettons-nous en relation et travaillons ensemble pour construire l'expérience de recherche magique qui vous permettra d'obtenir les résultats que vous souhaitez.

Jugez-en par vous-même