Olá,
Como poderia incrementar no projeto do professor uma limpeza na recuperação dos chunks de modo que somente o texto seja enviado para o LLM na etapa de envio do prompt aumentado para o LLM do Ollama?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá,
Como poderia incrementar no projeto do professor uma limpeza na recuperação dos chunks de modo que somente o texto seja enviado para o LLM na etapa de envio do prompt aumentado para o LLM do Ollama?
Oi, Nelson! Tudo bem?
Faz total sentido sua dúvida. Em cadeias RAG, o retriever normalmente retorna objetos Document com metadados, mas para o LLM o que importa no prompt é só o texto.
Penso que nesse caso você pode criar uma função simples que extrai apenas o page_content dos documentos:
def formatar_docs(docs):
return "\n\n".join(doc.page_content for doc in docs)
rag_chain = (
{
"contexto": retriever | formatar_docs,
"query": RunnablePassthrough()
}
| prompt
| modelo
| StrOutputParser()
)
Assim, o "contexto" passa a receber só o texto dos documentos, sem metadados, deixando o prompt mais limpo e econômico em tokens.
Testa algo nessa linha e veja se faz sentido.
Bons estudos!
Sucesso ✨