1
resposta

[ERRO] Não consigo executar o meu pipeline

Boa tarde, Ao rodar a célula com o seguinte código

qp = QP(
    modules = {
        'input': InputComponent(),
        'pandas_prompt': pandas_prompt,
        'llm1': llm,
        'pandas_output_parser': pandas_output_parser,
        'response_synthesis_prompt': response_synthesis_prompt,
        'llm2': llm,
    },
    verbose=True
)

qp.add_chain(['input', 'pandas_prompt', 'llm1', 'pandas_output_paser'])
#qp.add_chain(['input', 'pandas_prompt', 'llm1', 'pandas_output_parser', 'response_synthesis_prompt', 'llm2'])

qp.add_links(
    [
        Link('input', 'response_synthesis_prompt', dest_key='query_str'),
        Link('llm1', 'response_synthesis_prompt', dest_key='pandas_instructions'),
        Link('pandas_output_parser', 'response_synthesis_prompt', dest_key='pandas_output'),
    ]
)

qp.add_link('response_synthesis_prompt', 'llm2')

E fazer a pergunta com a query: response = qp.run(query_str='Qual é a média gasta por cada tipo de cliente?'), obtenho a seguinte mensagem.

> Running module input with input: 
query_str: Qual é a média gasta por cada tipo de cliente?

> Running module pandas_prompt with input: 
query_str: Qual é a média gasta por cada tipo de cliente?

> Running module llm1 with input: 
messages: Você está trabalhando com um dataframe do pandas em Python chamado `df`.
Aqui estão os detalhes das colunas do DataFrame:
`ID_compra`: object
`filial`: object
`cidade`: object
`tipo_cliente`: object
`...

> Running module pandas_output_parser with input: 
input: assistant: df.groupby('tipo_cliente')['total'].mean()

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-48-4aa2cbcc53e3> in <cell line: 0>()
----> 1 response = qp.run(query_str='Qual é a média gasta por cada tipo de cliente?')

7 frames
/usr/local/lib/python3.11/dist-packages/llama_index/core/query_pipeline/query.py in add_output_to_module_inputs(dest_key, output, module, module_inputs)
     87         # ensure that there is only one remaining key given partials
     88         if len(free_keys) != 1:
---> 89             raise ValueError(
     90                 "Module input keys must have exactly one key if "
     91                 "dest_key is not specified. Remaining keys: "

ValueError: Module input keys must have exactly one key if dest_key is not specified. Remaining keys: in module: {'pandas_output', 'query_str', 'pandas_instructions'}

Tentei algumas alterações com apoio do Gemini, mas não consegui resolver.

1 resposta

Olá, Leonardo. Tudo bem?

Eu testei o seu código e notei que há um pequeno erro de digitação na linha

qp.add_chain(['input', 'pandas_prompt', 'llm1', 'pandas_output_paser'])

Note que ao fim está escrito paser ao invés de parser. Com esse ajuste, o seu código deve funcionar como na aula.

tela do google colab demonstrando a execução do código do aluno

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado