בניית צוותים והגדרות מרובי סוכנים מורכבים עם LangGraph – תהיו בצד הנכון של השינוי

פרסומת
תכנון תשתיות רפואיות


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

פרסומת

היי וברוכים הבאים לקורס זה בנושא בניית צוותים והגדרות מורכבות מרובי סוכנים באמצעות LangGraph, LangChain ו- LangSmith. בקורס זה נתחיל מהיסוד באמצעות LangChain, ולאחר מכן נבנה ונבנה, ונוסיף עוד מורכבות וכלים ככל שנמשיך. נלמד איך לבנות גרף עם נתיבים, נתיבים מותנים, צוותים, מנהלי צוות ועוד, כולם מחברים את הסוכנים שלנו בדרכים עוצמתיות.

  • ב חלק 1נתחיל עם היסודות של LangChain, נלמד כיצד ליצור תבניות פקודות ו-Chains, לעבוד עם תחביר LangChain כדי לחבר בקלות את קריאות ה-LLM שלנו.
  • בתוך ה החלק הבא נלמד איך לכתוב כלים כדי שנוכל להפוך את הסוכנים העתידיים שלנו לחזקים על ידי מתן פונקציות שהם יכולים להתקשר אליהם. אנו נשתמש בתחביר LangChain החדש ביותר לשם כך וניצור גם כלי ליצירת תמונות וגם כלי מזג אוויר.
  • חלק 3 הוא המקום שבו נלמד את היסודות של LangGraph, המכסים את המושגים הבסיסיים ואיך בדיוק זה עובד. נלמד על ידי הגדרת הסוכן והגרף הראשון שלנו שיכולים להחזיר ייצוג חזותי של מזג האוויר הנוכחי בכל עיר שתקרא.
  • ב חלק 4 נבחן כיצד נוכל לקחת את כל זה לשלב הבא, ונדון כיצד נוכל להשתמש בכל זה כדי ליצור צוות שלם של סוכנים שעובד יחד עבורנו. כמו כן, נכתוב כלי שיכול להוציא קבצי PDF כהכנה להגדרת ריבוי הסוכנים שלנו.
  • חלק 5 זה המקום שבו הגומי באמת מגיע לדרך ואנו ניצור מערך רב-סוכנים רב עוצמה ב-LangGraph באמצעות צוות, מנהל צוות, סוכנים רבים, נתיבים מותנים ועוד. ניצור צוות שיוכל לעבוד יחד באופן עצמאי וליצור עבורנו מסלולי טיול, תוך נספק להם בפורמט PDF עם תמונה משולבת ותוכנית טיול מלאה.
  • בתוך ה חלק אחרון נסתכל על כתיבת כלים אסינכרוניים עבור הסוכנים שלנו ולאחר מכן ניצור גרף מחקר אינטרנט וכתיבת מאמר שיכול לבקר בדפי אינטרנט רבים בו-זמנית ולאחר מכן נכתוב מאמר על הנושא הרצוי עבורנו.

אני מקווה שאתה מתרגש כמוני להתחיל. בואו לצלול פנימה!

LangChain, LangSmith ו- LangGraph

היי וברוכים הבאים לקורס זה בנושא LangGraph, LangChain ולנגסמית. שמי הוא דירק ואן מירוולד ואני אהיה המארח והמדריך שלכם כשנצא לחקירה הזו ביחד.

אז מה נסגר עם כל מילות הלנג האלה? ובכן, בקיצור:

  • LangChain היא מסגרת בסיסית שתאפשר לנו לעבוד עם LLMs.
  • LangGraph יאפשר לנו ליצור שילובים מורכבים יותר באמצעות LangChain על ידי הצגת מבני גרפים, שבהם יכולים להיות לנו מספר צמתים או אפילו צוותים של סוכני LLM שעובדים יחד.
  • LangSmith הוא כלי שעוזר לנו לראות בדיוק מה קורה בזמן שאנחנו עובדים עם השניים לעיל, כדי לעזור לנו לנפות באגים ולשפר את הקוד שלנו בצורה נוחה יותר.

LangChain

בואו נתחיל קודם עם LangChain🔗. Langchain היא מסגרת שנועדה להקל על בניית אפליקציות המשתמשות במודלים של שפה גדולה (LLM). תחשוב על זה כעל סט כלים שעוזר לגשר על הפער בין LLMs לבין היישומים שאולי תרצה לבנות איתם.

LangChain עוזר לנו:

  • ספק ממשק מאוחד: כל קוד שאתה כותב יכול לשמש עם LLMs שונים עם מעט שינויים, ואתה יכול להשתמש באותו קוד כדי לכתוב הנחיות או כלים עבור LLMs שונים.
  • כלים מוכנים מראש למשימות נפוצות: Langchain כולל כלים למשימות נפוצות שאולי תרצה לעשות עם LLMs, כגון בניית צ'אטבוטים, סיכום מסמכים או ניתוח קוד. מלבד בניית כלים ופונקציות משלנו, אנו יכולים גם לייבא כלים שנבנו מראש בקהילה.
  • זיכרון והקשר: Langchain מקל על שילוב זיכרון והקשר ביישומי LLM שלנו. המשמעות היא שהאפליקציה שלנו יכולה לזכור אינטראקציות מהעבר ולהשתמש במידע זה כדי להודיע ​​לתגובות עתידיות.

אז בואו נתחיל! ראשית קדימה, צור תיקיית פרוייקט חדשה ותקרא לה איך שתרצה, אני אקרא לשלי FINX_LANGGRAPH:

📂 FINX_LANGGRAPH

צור venv בתיקיית פרויקט השורש

אנו נריץ את הפרויקט הזה בתוך סביבה וירטואלית. סביבה וירטואלית היא ספרייה עצמאית שתאפשר לנו להתקין גרסאות ספציפיות של חבילות בתוך הסביבה הוירטואלית מבלי להשפיע על התקנת Python העולמית.

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

לדוגמה, כאשר אנו משתמשים pydantic נשתמש ב-V1 הישן יותר עבור הפרויקט הזה, מכיוון שהוא משחק יפה עם LangChain. סביר להניח שתתקין לך V2 על התקנת Python כלל המערכת שלך, ואז היבוא שלך יהיה שונה משלי, מה שיגרום לבלבול. אנחנו גם לא רוצים להתעסק עם התקנת Python כלל המערכת שלך.

הסביבה הוירטואלית תקל עליך להתקין את הגרסאות המדויקות שלי מבלי לדאוג להשפיע על אף אחד מהפרויקטים האחרים שלך, והיא תרגול טוב שכדאי לעקוב אחריו באופן כללי.

כדי ליצור סביבה וירטואלית חדשה נשתמש בכלי שנקרא pipenv. אם אין לך pipenv מותקן, אתה יכול להתקין אותו באמצעות pip, שהוא מנהל החבילות של Python. הפעל את הפקודה הבאה בטרמינל שלך:

pip install pipenv

ודא שהטרמינל נמצא בתוך תיקיית פרויקט השורש שלך, למשל /c/Coding_Vault/Finx_Fine_Tuningולאחר מכן הפעל את הפקודה הבאה כדי ליצור סביבה וירטואלית חדשה:

pipenv shell

זה ייצור סביבה וירטואלית חדשה וגם א Pipfile בספריית הפרויקט שלך. כל החבילות שאתה מתקין באמצעות pipenv install יתווסף ל Pipfile.

  1. כדי ליצור א Pipfile.lockהמשמש לייצור בנייה דטרמיניסטית, הרץ:
pipenv lock

זה יצור א Pipfile.lock בספריית הפרויקט שלך, המכילה את הגרסה המדויקת של כל תלות כדי להבטיח שהתקנות עתידיות יוכלו לשכפל את אותה סביבה.

אנחנו לא צריכים להתקין ספרייה תחילה כדי ליצור א Pipfile.lock. מעתה ואילך כאשר אנו מתקינים ספריה בסביבה וירטואלית זו עם pipenv install library_nameהם יתווספו ל- Pipfile ו Pipfile.lockשהם בעצם רק קבצי טקסט שעוקבים אחר התלות המדויקת שלנו בפרויקט.

לעיון, אני משתמש ב-Python 3.10 עבור הפרויקט הזה, אבל אתה אמור להיות בסדר עם כל גרסה עדכנית. שקול לשדרג אם אתה משתמש בגרסה ישנה יותר.

הגדרת פרויקט בסיסית

לפני שנתחיל, אנחנו צריכים לוודא שיש לנו את מפתח ה-API של OpenAI מוכן לטעינה בצורה נוחה, אנחנו לא יכולים לקוד קשיח זה בקוד המקור שלנו. עבור אל https://platform.openai.com/api-keys והעתק את מפתח ה-API שלך, או צור אחד חדש. אתה תשלם רק על מה שאתה משתמש וזה יהיה סנטים אם רק תשחק עם זה כלאחר יד. לאחר מכן צור קובץ חדש בשם .env בתיקיית השורש של הפרויקט שלך:

📂 FINX_LANGGRAPH
    📄 .env             ✨New file
    📄 Pipfile
    📄 Pipfile.lock

והדבק את מפתח ה-API שלך ב- .env קובץ כזה, הקפד לא להשתמש ברווחים או במירכאות:

OPENAI_API_KEY=your_api_key_here

אז קדימה, שמור וסגור את הקובץ הזה. אם אתה משתמש Gitהקפד להוסיף קובץ זה לקובץ שלך .gitignore כדי שלא תמסור בטעות את מפתח ה-API שלך למאגר שלך. אם אתה לא משתמש Gitרק ודא שאתה לא כולל את .env קובץ אם אתה חולק את הקוד שלך עם מישהו.

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

הפעל את הפקודה הבאה בטרמינל שלך כדי להוסיף את python-decouple חבילה בתוך שלך pipenv סביבה:

pipenv install python-decouple==3.7

אנו נשתמש בחבילה זו כדי לקרוא את ה .env קובץ וקבל ממנו את מפתח ה-API. כעת צור קובץ חדש בשם setup_environment.py בתיקיית השורש של הפרויקט שלך:

📂 FINX_LANGGRAPH
    📄 .env
    📄 Pipfile
    📄 Pipfile.lock
    📄 setup_environment.py  ✨New file

ואז בתוך החדש הזה setup_environment.py קובץ, כתוב את הקוד הבא:

import os

from decouple import config


def set_environment_variables() -> None:
    os.environ["OPENAI_API_KEY"] = str(config("OPENAI_API_KEY"))

אנו מייבאים את os ו config מ ה decouple חבילה שהתקנו רק לפני דקה. לאחר מכן אנו יוצרים פונקציה שנוכל לייבא מקובצי הקוד האחרים שלנו.

ה config("OPENAI_API_KEY") הפונקציה קוראת את .env קובץ ומקבל את הערך של OPENAI_API_KEY משתנה שהגדרנו שם, אז ודא שהשתמשת באותו השם בדיוק שם. ה str() Cast רק מוודא שזה ערך מחרוזת. לאחר מכן הגדרנו את הערך הזה ל- OPENAI_API_KEY שימוש במשתנה סביבה os.environ.

בדרך זו אנו יכולים פשוט להשתמש ב-LangChain באופן חופשי מבלי לדאוג למפתח ה-API שלנו, מכיוון שגם LangChain וגם OpenAI מוגדרים לקרוא את מפתחות ה-API שלנו ממשתני הסביבה באופן אוטומטי.

יסודות LangChain

אוקי, הגיע הזמן להתחיל עם LangChain! בואו נכסה תחילה את היסודות כדי שנבין את אבני הבניין. נתחיל עם כמה התקנות. ודא שאתה מפעיל את כל אלה גם אם כבר מותקנות חלק מהספריות הללו מכיוון שאנו לא משתמשים בהתקנת Python העולמית אלא בסביבה הווירטואלית שלנו. הפעל את הפקודה הבאה בטרמינל שלך:

pipenv install openai==1.14.2 langchain==0.1.13 langchain-openai==0.1.0

ה openai הספרייה תעבוד עם ה-API של OpenAI מאחורי הקלעים בזמן שאנו משתמשים langchain וה langchain-openai לספרייה יש פונקציונליות כלשהי החופפת את שניהם.

כעת צור קובץ חדש בשם langchain_basics.py בתיקיית השורש של הפרויקט שלך:

📂 FINX_LANGGRAPH
    📄 .env
    📄 langchain_basics.py  ✨New file
    📄 Pipfile
    📄 Pipfile.lock
    📄 setup_environment.py

בתוך החדש הזה langchain_basics.py קובץ, בואו נתחיל עם הייבוא ​​הבא:

from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from setup_environment import set_environment_variables

לפני שנסביר את היבוא, אני רוצה לכסות בעיה אפשרית שיש לך כאן. ייתכן שיש לך את הבעיה הבאה כאשר…



קישור לכתבת המקור – 2024-04-18 23:28:42

Facebook
Twitter
LinkedIn
Telegram
WhatsApp
Email
פרסומת
תכנון תשתיות רפואיות

עוד מתחומי האתר