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?
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 ✨