Tworzenie grafu przepływu pracy dla wielu narzędzi
Elementy składowe twojego grafu chatbota są już gotowe! Teraz połączysz wszystkie węzły w jeden przepływ pracy, używając krawędzi do zarządzania połączeniami między nimi. Na dobry początek graf przepływu pracy został już skonfigurowany z MessagesState i StateGraph() do śledzenia aktualizacji wiadomości chatbota. Funkcja display() do renderowania grafu jako diagramu LangGraph również jest gotowa, a MemorySaver został już zaimportowany.
from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver
workflow = StateGraph(MessagesState)
To ćwiczenie jest częścią kursu
Projektowanie systemów agentowych z LangChain
Instrukcje do ćwiczenia
- Dodaj
call_modeljako węzeł z etykietą"chatbot"oraztool_nodez etykietą"tools". - Zdefiniuj krawędź łączącą węzeł
STARTz węzłem"chatbot". - Dodaj warunkowe krawędzie z węzła
"chatbot"do węzłów"tools"iEND, używającshould_continue, a następnie połącz węzeł"tools"z powrotem z węzłem"chatbot". - Utwórz instancję
MemorySaver()i skompiluj przepływ pracy do postaci aplikacji z mechanizmemcheckpointerobsługującym pamięć.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()