Fase de recuperación

Cuando se recibe una pregunta, la aplicación primero busca documentos relevantes en el índice de Elasticsearch. Esto se consigue generando una incrustación vectorial dispersa para la pregunta y luego buscando en el índice las incrustaciones más cercanas, cada una asociada a un pasaje de un documento.

Como en la fase de ingestión, el índice Elasticsearch se gestiona mediante la integración ElasticsearchStore con Langchain:

Generar una incrustación para la pregunta y luego buscarla queda perfectamente abstraída por el método invoke() de la interfaz retriever de Langchain, que realiza todas estas tareas y devuelve la lista de los documentos más relevantes encontrados:

Aquí puedes ver cómo se envían los pasajes devueltos al cliente como fuentes. La aplicación React mostrará estos como "Resultados de búsqueda" debajo de la respuesta.

Es importante señalar que el argumento strategy que se emplea en la clase ElasticsearchStore debe coincidir con la estrategia empleada durante la ingesta. En este ejemplo, el SparseVectorRetrievalStrategy crea y busca vectores dispersos del modelo ELSER de Elastic. Otra opción interesante que puedes evaluar es usar el ApproxRetrievalStrategy, que emplea incrustaciones vectoriales densas.

¿Estás listo para crear experiencias de búsqueda de última generación?

No se logra una búsqueda suficientemente avanzada con los esfuerzos de uno. Elasticsearch está impulsado por científicos de datos, operaciones de ML, ingenieros y muchos más que son tan apasionados por la búsqueda como tú. Conectemos y trabajemos juntos para crear la experiencia mágica de búsqueda que te dará los resultados que deseas.

Pruébalo tú mismo