Olá, minha resposta está vindo completamente diferente das aulas, primeiramente eu utilizei o modelo model_name='llama-3.3-70b-versatile'
Pois o modelo utilizado na aula é antigo e não roda.
from langchain_core.prompts import MessagesPlaceholder
from langchain_core.messages import ToolMessage
from langchain_core.runnables import RunnablePassthrough
from operator import itemgetter
from langchain_core.output_parsers import StrOutputParser
system = f"""Você tem acesso a um dataframe pandas `df`. \
Aqui está a saída de `df.head().to_markdown()`:
\`\`\`
{df.head().to_markdown()}
\`\`\`
Dada uma pergunta do usuário, escreva o código Python para respondê-la. \
Não presuma que você tem acesso a nenhuma biblioteca além das bibliotecas Python integradas e pandas.\
Responda em português à pergunta quando tiver informações suficientes para respondê-la."""
prompt = ChatPromptTemplate.from_messages([("system", system), ("human", "{question}"),
MessagesPlaceholder("chat_history", optional=True)])
def _get_chat_history(x: dict) -> list:
"""Analise a saída da cadeia até este ponto em uma lista de mensagens do histórico
de bate-papo para inserir no prompt"""
ai_msg = x["ai_msg"]
tool_call_id = x["ai_msg"].additional_kwargs["tool_calls"][0]["id"]
tool_msg = ToolMessage(tool_call_id=tool_call_id, content=str(x["tool_output"]))
return [ai_msg, tool_msg]
cadeia = (
RunnablePassthrough.assign(ai_msg=prompt | llm_com_ferramenta)
.assign(tool_output=itemgetter("ai_msg") | parser | ferramenta_python)
.assign(chat_history=_get_chat_history)
.assign(response=prompt | llm | StrOutputParser())
.pick(["tool_output", "response"])
)
deu como resposta:
<>:19: SyntaxWarning: invalid escape sequence '\`'
<>:17: SyntaxWarning: invalid escape sequence '\`'
<>:19: SyntaxWarning: invalid escape sequence '\`'
<>:17: SyntaxWarning: invalid escape sequence '\`'
/tmp/ipykernel_966/184883069.py:19: SyntaxWarning: invalid escape sequence '\`'
prompt = ChatPromptTemplate.from_messages([("system", system), ("human", "{question}"),
/tmp/ipykernel_966/184883069.py:17: SyntaxWarning: invalid escape sequence '\`'
resposta = cadeia.invoke({"question": "Qual é a média do tempo de entrega para cada tipo de clima?"})
print(resposta['response'])
deu como resposta:
A média do tempo de entrega para cada tipo de clima é a seguinte:
- Chuvoso: 165 minutos
- Ensolarado: 112,5 minutos
- Nublado: 150 minutos
- Tempestade: 130 minutos
Poderiam me ajudar?