דלג לתוכן הראשי

שיעור 4 — LangGraph

טיוטה לאישור המרצה. זהו חומר לימודי ראשוני. הוא אינו מחליף הנחיה שפורסמה במודל, ואינו קובע מועד או ציון.

מטרות​

  • להעביר את הלולאה משיעור 3 למצב מפורש.
  • להבדיל בין צומת שמחזיר שינוי, לבין קוד שמשנה מצב במקום.
  • להוסיף מעבר אחר כששליפה לא מחזירה את המקור הדרוש.

למה מסגרת​

הלולאה משיעור 3 שומרת הכול ברשימה אחת. קשה לעצור באמצע, לחזור לאותו צעד, או לבדוק צומת בלי להריץ את כל הסיפור. LangGraph נותן לזה צורה: אובייקט מצב, צמתים, וקשתות.

צומת קורא את המפתחות שהוא צריך ומחזיר רק את מה שהשתנה. המסגרת ממזגת. שינוי הרשימה במקום שובר את האפשרות לחזור אחורה למצב שנשמר.

דוגמה מצומצמת​

המצב כולל את המשימה, את המזהים שכבר נשלפו, מונה צעדים, ותשובה. אחרי צומת השליפה, קשת מותנית שואלת:

  • יש את שני המקורות: ממשיכים לחישוב.
  • חסר מקור ונותר תקציב: חוזרים לשליפה בשאילתה אחרת.
  • נגמר התקציב: צומת יציאה שמחזיר עצירה, לא תשובה מומצאת.

הקטע הבא הוא תרשים כוונה, לא קוד שהאתר מתקין עבורכם:

def route(state):
if state["answer"]:
return "end"
if state["step"] >= state["budget"]:
return "stop"
if "C:1" not in state["ids"]:
return "retrieve"
return "calculate"

מה בודקים במעבדה​

מריצים את אותה שאלה משני המקורות. שומרים צילום של המצב אחרי כל צומת. מכבים את הקשת שחוזרת לשליפה, ומראים שהתהליך נעצר עם מקור אחד.

התיעוד הרשמי: LangGraph. גרסת החבילה תפורסם במודל לפני העבודה המדורגת.