Construindo a retrieval chain
Agora, para o grande final do capítulo! Você vai criar uma retrieval chain usando a Expression Language do LangChain (LCEL). Ela vai combinar o vector store contendo seus chunks de documentos incorporados do artigo de RAG que você carregou anteriormente, um prompt template e um LLM, para que você possa começar a conversar com seus documentos.
Aqui vai um lembrete do prompt_template que você criou no exercício anterior, e que está disponível para você usar:
Use the only the context provided to answer the following question. If you don't know the answer, reply that you are unsure.
Context: {context}
Question: {question}
O vector_store com os chunks de documentos incorporados que você criou anteriormente também foi carregado para você, junto com todas as bibliotecas e classes necessárias.
Este exercício faz parte do curso
Retrieval Augmented Generation (RAG) com LangChain
Instruções do exercício
- Converta o Chroma
vector_storeem um objeto retriever para uso na LCEL retrieval chain. - Crie a LCEL retrieval chain para combinar o
retriever, oprompt_template, ollme um analisador de saída em string, para que ela possa responder às perguntas de entrada. - Invoque a chain na pergunta fornecida.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Convert the vector store into a retriever
retriever = vector_store.____(search_type="similarity", search_kwargs=____)
# Create the LCEL retrieval chain
chain = (
{"____": ____, "question": ____}
| ____
| ____
)
# Invoke the chain
print(chain.____("Who are the authors?"))