Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Cadeia de Retriever Limpa

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?

1 resposta
solução!

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

Imagem da comunidade