برنامه نویسی

اعمال API ارسال Langgraph برای اجرای گردش کار پویا و موازی

مقدمه

در برنامه های AI محور ، مدیریت گردش کار پویا و موازی به طور مؤثر بسیار مهم است. لانگگراف ارسال API یک ویژگی قدرتمند است که توزیع دولت پویا را در چندین نمونه گره امکان پذیر می کند و آن را به ابزاری ایده آل برای رسیدگی به بارهای کاری پیچیده و غیرقابل پیش بینی تبدیل می کند. چه برای اجرای موازی ، نقشه برداری عملیات یا مسیریابی وظیفه شرطی ، SEND API انعطاف پذیری و مقیاس پذیری را افزایش می دهد.

شرح تصویر

ویژگی های کلیدی API ارسال Langgraph

1. رسیدگی به تعداد شیء ناشناخته

یکی از بزرگترین چالش ها در اتوماسیون گردش کار ، برخورد با تعداد مختلفی از اشیاء است. در گردش کار سنتی ، مسیرهای از پیش تعریف شده انعطاف پذیری را محدود می کنند. با این حال ، ارسال API Langgraph به صورت پویا سناریوهایی را مدیریت می کند که تعداد عناصر از قبل ناشناخته است.

مثال: رزرو سفر کاربر

یک سفر کاربر را در نظر بگیرید. آنها ممکن است انتخاب کنند:

  • بوها پرواز تنها
  • بوها پرواز و اجاره ماشین
  • بوها پرواز ، اجاره ماشین و هتل

از آنجا که ما از قبل انتخاب کاربر را نمی دانیم ، API ارسال به صورت پویا سازگار ، ایجاد و توزیع گره های پردازش برای هر انتخاب در زمان واقعی است.

2. توزیع پویا دولت

API SEND با توزیع حالت های مختلف در چندین نمونه از یک گره ، اجرای موازی را امکان پذیر می کند. این بدان معنی است که هر قسمت از یک گردش کار می تواند به طور مستقل پردازش شود ، و به طور قابل توجهی کارایی را بهبود می بخشد.

چگونه در رزرو سفر کار می کند:

  • اگر یک کاربر یک پرواز و ماشین را رزرو کند ، دو گره جداگانه پردازش پرواز وت پردازش اجاره ماشین به موازات
  • اگر کاربر هتل اضافه کند ، نمونه دیگری برای پردازش ایجاد شده است رزرو هتل به طور مستقل

3. مدیریت انعطاف پذیر دولت

بر خلاف گردش کار استاتیک سنتی ، جایی که مدیریت دولت سفت و سخت است ، API SEND به حالت های ارسال شده اجازه می دهد تا با وضعیت نمودار اصلی متفاوت باشند. این بدان معنی است که هر نمونه گردش کار می تواند داده های منحصر به فرد خود را در حالی که هنوز بخشی از چارچوب اجرای بزرگتر است ، داشته باشد.

4. استفاده از لبه های مشروط

API استفاده می کند لبه های مشروط برای مسیریابی وظایف به صورت پویا بر اساس حالتهای گردش کار. اگر کاربر رزرو هتل را لغو کند اما پرواز و اجاره اتومبیل را نگه می دارد ، فقط گره های مربوطه وظایف لازم را انجام می دهند و از کارآیی اطمینان می دهند.

از مورد استفاده کنید: نقشه را در گردش کار AI کاهش دهید

API ارسال به ویژه در آن مفید است نقشه برداری عملیات ، جایی که برای پردازش موازی باید وظایف در چندین گره توزیع شود. در گردش کار AI ، این می تواند برای:

  • پردازش داده های توزیع شده
  • کارهای استدلال چند مرحله ای
  • ارکستراسیون گردش کار در برنامه های مبتنی بر LLM

شرح تصویر

from typing import TypedDict
from langgraph.graph import START, END,StateGraph
from langchain_openai.chat_models import AzureChatOpenAI
from dotenv import load_dotenv
from langgraph.types import Send
import os

load_dotenv()

llm = AzureChatOpenAI(
    azure_deployment="gpt-4o-mini",
    api_version="2024-08-01-preview",
    temperature=0,
    max_tokens=None,
    timeout=None,
    max_retries=2
)

booking_prompt = """Book the trip for the customer based on the following trip booking information: {reservation}.
 Please fill missing requirements with default values if not provided by the user.
   Return only minimal information."""

class TripBookingState(TypedDict):
    first_name: str
    last_name: str
    departure:str
    arrival:str
    departure_date:str
    return_date:str 
    num_people: int
    hotel: str
    flight: str
    booking_details: dict
    reservations: list

class Bookings(TypedDict):
    bookings: list[str]


def generate_bookings(state: TripBookingState):
    prompt=booking_prompt.format(reservation=state["reservations"])
    print(f"----------{reservation}----------------")   
    response = llm.invoke(prompt)
    return {"booking_details":response.content} 



def continue_to_booking(state: TripBookingState) -> dict:
    return {"send": [Send("generate_bookings", {"reservation": reservation}) for reservation in state["reservations"]]}

graph =StateGraph(TripBookingState)
graph.add_node("generate_bookings",generate_bookings)
graph.add_node("continue_to_booking",continue_to_booking)
graph.add_edge(START,"generate_bookings")
graph.add_edge("generate_bookings","continue_to_booking")
graph.add_edge("continue_to_booking",END)
app = graph.compile()

image = app.get_graph().draw_mermaid_png()
with open("map_reduce.png","wb") as file:
    file.write(image)   

for reservation in ["hotel", "flight", "car", "dinner"]:
    response = app.invoke({
        "first_name": "Sreeni",
        "last_name": "Ramadorai",
        "departure": "New York",
        "arrival": "San Francisco",
        "departure_date": "2024-12-01",
        "return_date": "2024-12-10",
        "num_people": 1,
        "hotel": "single room",
        "flight": "business class",
        "booking_details": {},
        "reservations": [reservation]
    })
    print(response)
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شرح تصویر

شرح تصویر

پایان

ارسال API Langgraph توسعه دهندگان را قادر می سازد تا بسازند مقیاس پذیر ، انعطاف پذیر و کارآمد گردش کار برای برنامه های AI محور. چه مدیریت رزرو سفر پویا یا توزیع وظایف محاسباتی ، این ویژگی به طور قابل توجهی اتوماسیون گردش کار را افزایش می دهد. توسعه دهندگان با استفاده از توانایی خود در رسیدگی به تعداد شیء ناشناخته ، فعال کردن توزیع وضعیت پویا و استفاده از مسیریابی مشروط ، می توانند برنامه های هوشمندانه ای ایجاد کنند که با پیچیدگی های دنیای واقعی سازگار باشند.

با تشکر
صمیمی

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا