Crie o fluxo do grafo para várias ferramentas
Seus blocos de construção para criar o grafo do chatbot já estão prontos! Você vai juntar todos os seus nós em um único fluxo usando arestas para gerenciar as conexões entre eles. Para começar, seu fluxo de grafo já foi configurado para você com MessagesState e StateGraph() para acompanhar as atualizações de mensagens do chatbot. A função display() para renderizar seu grafo como um diagrama do LangGraph também foi configurada e o MemorySaver já foi importado para você.
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver
workflow = StateGraph(MessagesState)
Este exercício faz parte do curso
Projetando Sistemas Agentes com LangChain
Instruções do exercício
- Adicione
call_modelcomo um nó usando o rótulo"chatbot"e adicionetool_nodecom o rótulo"tools". - Defina uma aresta conectando o nó
STARTao nó"chatbot". - Adicione arestas condicionais do nó
"chatbot"para os nós"tools"eENDusandoshould_continue, antes de conectar o nó"tools"de volta ao nó"chatbot". - Crie uma instância de
MemorySaver()e compile o fluxo em um aplicativo com ocheckpointerde memória.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Add nodes for chatbot and tools
workflow.add_node("____", ____)
workflow.add_node("____", ____)
# Define an edge connecting START to the chatbot
workflow.add_edge(____, "____")
# Define conditional edges and route "tools" back to "chatbot"
workflow.add_conditional_edges("____", ____, ["____", ____])
workflow.add_edge("____", "____")
# Set up memory and compile the workflow
memory = ____()
app = workflow.____(checkpointer=____)
try:
display(Image(graph.get_graph().draw_mermaid_png()))
except Exception:
print("Plot generation failed... falling back to cached asset.")
display_fallback()