Ao receber uma pergunta, o aplicativo primeiro pesquisa no índice do Elasticsearch por documentos relevantes. Isso é conseguido gerando um vetor de incorporação esparso para a pergunta e, em seguida, pesquisando no índice as incorporações mais próximas a ela, cada uma associada a uma passagem de um documento.
Assim como na fase de ingestão, o índice do Elasticsearch é gerenciado por meio da integração ElasticsearchStore com o Langchain:
A geração de um embedding para a pergunta e a subsequente busca por ela são abstrações bem feitas pelo método invoke() da interface de recuperação do Langchain, que executa todas essas tarefas e retorna a lista dos documentos mais relevantes encontrados:
Você pode ver aqui como as passagens retornadas são enviadas ao cliente como fontes. O aplicativo React exibirá esses resultados como "Resultados da pesquisa" abaixo da resposta.
É importante observar que o argumento strategy usado na classe ElasticsearchStore deve corresponder à estratégia usada durante a ingestão. Neste exemplo, o SparseVectorRetrievalStrategy cria e pesquisa vetores esparsos do modelo ELSER da Elastic. Outra opção interessante que você pode avaliar é usar o ApproxRetrievalStrategy, que usa incorporações vetoriais densas.
Anteriormente
Ponto final do chatbotPróximo
LLM Prompt