برنامه نویسی

LangGraph پیشرفته: ساخت عوامل هوشمند با معماری ReACT

Summarize this content to 400 words in Persian Lang

مقدمه

در چشم انداز به سرعت در حال تحول امروزی هوش مصنوعی و مدل های زبان بزرگ (LLM)، ساخت عوامل هوشمند کارآمد و انعطاف پذیر به یک موضوع داغ تبدیل شده است. LangGraph به عنوان یک ابزار قدرتمند، راه جدیدی را برای پیاده‌سازی گردش‌های کاری پیچیده هوش مصنوعی، به ویژه در ساخت عوامل هوشمند با معماری ReACT (استدلال و عمل) ارائه می‌کند. این مقاله به چگونگی استفاده از LangGraph برای پیاده‌سازی معماری ReACT می‌پردازد و مثال‌ها و توضیحات کد مفصلی را ارائه می‌کند.

مفاهیم اساسی LangGraph

LangGraph یک چارچوب پایتون برای ساخت برنامه های کاربردی بر اساس LLM است. ایده اصلی آن این است که گردش‌های کاری پیچیده هوش مصنوعی را به‌عنوان یک نمودار حالت حاوی گره‌ها، لبه‌ها و وضعیت‌های داده نشان دهد. این رویکرد به ما اجازه می‌دهد تا منطق رفتاری عوامل هوشمند را به صورت شهودی‌تر طراحی و اجرا کنیم.

در LangGraph می‌توانیم از مؤلفه‌های اصلی (گره‌ها، لبه‌ها، وضعیت‌های داده) برای ساخت عوامل استفاده کنیم که این مزیت قابل توجهی از انعطاف‌پذیری LangGraph است. علاوه بر این، LangGraph برخی از عوامل از پیش ساخته شده را ارائه می دهد، مانند عوامل ReACT و عامل های فراخوانی ابزار، که ما را قادر می سازد تا عامل های هوشمند را با سرعت بیشتری ایجاد کنیم.

مقدمه ای بر معماری ReACT

ReACT (Reasoning and Acting) یک معماری عامل هوشمند است که توانایی های استدلال و عمل را ترکیب می کند. در معماری ReACT، عامل با استدلال مداوم، عمل و مشاهده نتایج، مشکلات را حل می کند. این روش به عامل اجازه می دهد تا با انعطاف پذیری بیشتری به وظایف پیچیده پاسخ دهد و از ابزارهای خارجی برای افزایش قابلیت های خود استفاده کند.

پیاده سازی ReACT Architecture با LangGraph

بیایید نحوه پیاده سازی یک عامل هوشمند با معماری ReACT با استفاده از LangGraph را از طریق یک مثال خاص بررسی کنیم.

1. تنظیم محیط

ابتدا باید کتابخانه ها و ماژول های لازم را وارد کنیم:

import dotenv
from langchain_community.tools import GoogleSerperRun
from langchain_community.tools.openai_dalle_image_generation import OpenAIDALLEImageGenerationTool
from langchain_community.utilities import GoogleSerperAPIWrapper
from langchain_community.utilities.dalle_image_generator import DallEAPIWrapper
from langchain_core.pydantic_v1 import BaseModel, Field
from langchain_openai import ChatOpenAI
from langgraph.prebuilt.chat_agent_executor import create_react_agent

dotenv.load_dotenv()

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

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

2. ابزارها و طرحواره های پارامتر را تعریف کنید

در مرحله بعد، دو ابزار را تعریف می کنیم: جستجوی گوگل و تولید تصویر DALL-E. ما همچنین طرح های پارامتری را برای این ابزارها تعریف می کنیم:

class GoogleSerperArgsSchema(BaseModel):
query: str = Field(description=”Query statement for executing Google search”)

class DallEArgsSchema(BaseModel):
query: str = Field(description=”Input should be a text prompt for generating images”)

google_serper = GoogleSerperRun(
name=”google_serper”,
description=(
“A low-cost Google search API. ”
“Use this tool when you need to answer questions about current events. ”
“The input for this tool is a search query.”
),
args_schema=GoogleSerperArgsSchema,
api_wrapper=GoogleSerperAPIWrapper(),
)

dalle = OpenAIDALLEImageGenerationTool(
name=”openai_dalle”,
api_wrapper=DallEAPIWrapper(model=”dall-e-3″),
args_schema=DallEArgsSchema,
)

tools = [google_serper, dalle]

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

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

3. ایجاد مدل زبان

ما از مدل GPT-4 OpenAI به عنوان مدل زبان بزرگ خود استفاده می کنیم:

model = ChatOpenAI(model=”gpt-4o-mini”, temperature=0)

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

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

4. ReACT Agent را با استفاده از عملکرد از پیش ساخته شده ایجاد کنید

LangGraph توابع از پیش ساخته شده ای را برای ایجاد عوامل ReACT ارائه می دهد که استفاده از آنها بسیار آسان است:

agent = create_react_agent(
model=model,
tools=tools
)

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

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

5. عامل و محتوای خروجی را فراخوانی کنید

در نهایت، می توانیم عاملی را که ایجاد کرده ایم فراخوانی کنیم و نتایج خروجی را چاپ کنیم:

print(agent.invoke({“messages”: [(“human”, “Help me draw a picture of a shark flying in the sky”)]}))

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

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

تجزیه و تحلیل نتایج

وقتی این کد را اجرا می کنیم، عامل ابتدا الزامات کار را درک می کند و سپس تصمیم می گیرد از ابزار DALL-E برای تولید یک تصویر استفاده کند. این یک توصیف تصویر دقیق ایجاد می کند و سپس DALL-E API را برای ایجاد تصویر فراخوانی می کند. در نهایت URL تصویر تولید شده را همراه با توضیح مختصری برمی گرداند.

خروجی ممکن است به شکل زیر باشد:

{
“messages”: [
HumanMessage(content=”Help me draw a picture of a shark flying in the sky”),
AIMessage(content=””, additional_kwargs={‘tool_calls’: […]}),
ToolMessage(content=”https://dalleproduse.blob.core.windows.net/…”),
AIMessage(content=”Here is the image you requested: a picture of a shark flying in the sky. You can view the image by clicking the link below.\n\n![Shark flying in the sky](https://dalleproduse.blob.core.windows.net/…)”)
] }

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

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

خلاصه

از طریق این مثال، می‌توانیم ببینیم که LangGraph چگونه فرآیند ساخت عوامل هوشمند را با معماری ReACT ساده می‌کند. این انتزاعات سطح بالا و اجزای از پیش ساخته شده را ارائه می دهد و به ما امکان می دهد تا به سرعت گردش های کاری پیچیده هوش مصنوعی را پیاده سازی کنیم. در عین حال، انعطاف‌پذیری LangGraph به ما اجازه می‌دهد تا قابلیت‌های عامل را در صورت نیاز سفارشی‌سازی و گسترش دهیم.

توجه به این نکته مهم است که LangGraph هنوز به سرعت در حال تکامل است. به عنوان مثال، نسخه فعلی (تا زمان نوشتن این مقاله) عوامل ReACT از پیش ساخته شده را بر اساس فراخوانی تابع پیاده سازی می کند که ممکن است در نسخه 0.3.0 حذف شوند. بنابراین، هنگام استفاده از LangGraph، توصیه می شود مراقب آخرین اسناد و به روز رسانی آن باشید.

با این وجود، فلسفه طراحی اصلی و رویکرد کپسوله سازی LangGraph هنوز برای یادگیری و مرجع بسیار ارزشمند است. با پیشرفت فناوری هوش مصنوعی…

مقدمه

در چشم انداز به سرعت در حال تحول امروزی هوش مصنوعی و مدل های زبان بزرگ (LLM)، ساخت عوامل هوشمند کارآمد و انعطاف پذیر به یک موضوع داغ تبدیل شده است. LangGraph به عنوان یک ابزار قدرتمند، راه جدیدی را برای پیاده‌سازی گردش‌های کاری پیچیده هوش مصنوعی، به ویژه در ساخت عوامل هوشمند با معماری ReACT (استدلال و عمل) ارائه می‌کند. این مقاله به چگونگی استفاده از LangGraph برای پیاده‌سازی معماری ReACT می‌پردازد و مثال‌ها و توضیحات کد مفصلی را ارائه می‌کند.

مفاهیم اساسی LangGraph

LangGraph یک چارچوب پایتون برای ساخت برنامه های کاربردی بر اساس LLM است. ایده اصلی آن این است که گردش‌های کاری پیچیده هوش مصنوعی را به‌عنوان یک نمودار حالت حاوی گره‌ها، لبه‌ها و وضعیت‌های داده نشان دهد. این رویکرد به ما اجازه می‌دهد تا منطق رفتاری عوامل هوشمند را به صورت شهودی‌تر طراحی و اجرا کنیم.

در LangGraph می‌توانیم از مؤلفه‌های اصلی (گره‌ها، لبه‌ها، وضعیت‌های داده) برای ساخت عوامل استفاده کنیم که این مزیت قابل توجهی از انعطاف‌پذیری LangGraph است. علاوه بر این، LangGraph برخی از عوامل از پیش ساخته شده را ارائه می دهد، مانند عوامل ReACT و عامل های فراخوانی ابزار، که ما را قادر می سازد تا عامل های هوشمند را با سرعت بیشتری ایجاد کنیم.

مقدمه ای بر معماری ReACT

ReACT (Reasoning and Acting) یک معماری عامل هوشمند است که توانایی های استدلال و عمل را ترکیب می کند. در معماری ReACT، عامل با استدلال مداوم، عمل و مشاهده نتایج، مشکلات را حل می کند. این روش به عامل اجازه می دهد تا با انعطاف پذیری بیشتری به وظایف پیچیده پاسخ دهد و از ابزارهای خارجی برای افزایش قابلیت های خود استفاده کند.

پیاده سازی ReACT Architecture با LangGraph

بیایید نحوه پیاده سازی یک عامل هوشمند با معماری ReACT با استفاده از LangGraph را از طریق یک مثال خاص بررسی کنیم.

1. تنظیم محیط

ابتدا باید کتابخانه ها و ماژول های لازم را وارد کنیم:

import dotenv
from langchain_community.tools import GoogleSerperRun
from langchain_community.tools.openai_dalle_image_generation import OpenAIDALLEImageGenerationTool
from langchain_community.utilities import GoogleSerperAPIWrapper
from langchain_community.utilities.dalle_image_generator import DallEAPIWrapper
from langchain_core.pydantic_v1 import BaseModel, Field
from langchain_openai import ChatOpenAI
from langgraph.prebuilt.chat_agent_executor import create_react_agent

dotenv.load_dotenv()
وارد حالت تمام صفحه شوید

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

2. ابزارها و طرحواره های پارامتر را تعریف کنید

در مرحله بعد، دو ابزار را تعریف می کنیم: جستجوی گوگل و تولید تصویر DALL-E. ما همچنین طرح های پارامتری را برای این ابزارها تعریف می کنیم:

class GoogleSerperArgsSchema(BaseModel):
    query: str = Field(description="Query statement for executing Google search")

class DallEArgsSchema(BaseModel):
    query: str = Field(description="Input should be a text prompt for generating images")

google_serper = GoogleSerperRun(
    name="google_serper",
    description=(
        "A low-cost Google search API. "
        "Use this tool when you need to answer questions about current events. "
        "The input for this tool is a search query."
    ),
    args_schema=GoogleSerperArgsSchema,
    api_wrapper=GoogleSerperAPIWrapper(),
)

dalle = OpenAIDALLEImageGenerationTool(
    name="openai_dalle",
    api_wrapper=DallEAPIWrapper(model="dall-e-3"),
    args_schema=DallEArgsSchema,
)

tools = [google_serper, dalle]
وارد حالت تمام صفحه شوید

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

3. ایجاد مدل زبان

ما از مدل GPT-4 OpenAI به عنوان مدل زبان بزرگ خود استفاده می کنیم:

model = ChatOpenAI(model="gpt-4o-mini", temperature=0)
وارد حالت تمام صفحه شوید

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

4. ReACT Agent را با استفاده از عملکرد از پیش ساخته شده ایجاد کنید

LangGraph توابع از پیش ساخته شده ای را برای ایجاد عوامل ReACT ارائه می دهد که استفاده از آنها بسیار آسان است:

agent = create_react_agent(
    model=model,
    tools=tools
)
وارد حالت تمام صفحه شوید

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

5. عامل و محتوای خروجی را فراخوانی کنید

در نهایت، می توانیم عاملی را که ایجاد کرده ایم فراخوانی کنیم و نتایج خروجی را چاپ کنیم:

print(agent.invoke({"messages": [("human", "Help me draw a picture of a shark flying in the sky")]}))
وارد حالت تمام صفحه شوید

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

تجزیه و تحلیل نتایج

وقتی این کد را اجرا می کنیم، عامل ابتدا الزامات کار را درک می کند و سپس تصمیم می گیرد از ابزار DALL-E برای تولید یک تصویر استفاده کند. این یک توصیف تصویر دقیق ایجاد می کند و سپس DALL-E API را برای ایجاد تصویر فراخوانی می کند. در نهایت URL تصویر تولید شده را همراه با توضیح مختصری برمی گرداند.

خروجی ممکن است به شکل زیر باشد:

{
    "messages": [
        HumanMessage(content="Help me draw a picture of a shark flying in the sky"),
        AIMessage(content="", additional_kwargs={'tool_calls': [...]}),
        ToolMessage(content="https://dalleproduse.blob.core.windows.net/..."),
        AIMessage(content="Here is the image you requested: a picture of a shark flying in the sky. You can view the image by clicking the link below.\n\n![Shark flying in the sky](https://dalleproduse.blob.core.windows.net/...)")
    ]
}
وارد حالت تمام صفحه شوید

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

خلاصه

از طریق این مثال، می‌توانیم ببینیم که LangGraph چگونه فرآیند ساخت عوامل هوشمند را با معماری ReACT ساده می‌کند. این انتزاعات سطح بالا و اجزای از پیش ساخته شده را ارائه می دهد و به ما امکان می دهد تا به سرعت گردش های کاری پیچیده هوش مصنوعی را پیاده سازی کنیم. در عین حال، انعطاف‌پذیری LangGraph به ما اجازه می‌دهد تا قابلیت‌های عامل را در صورت نیاز سفارشی‌سازی و گسترش دهیم.

توجه به این نکته مهم است که LangGraph هنوز به سرعت در حال تکامل است. به عنوان مثال، نسخه فعلی (تا زمان نوشتن این مقاله) عوامل ReACT از پیش ساخته شده را بر اساس فراخوانی تابع پیاده سازی می کند که ممکن است در نسخه 0.3.0 حذف شوند. بنابراین، هنگام استفاده از LangGraph، توصیه می شود مراقب آخرین اسناد و به روز رسانی آن باشید.

با این وجود، فلسفه طراحی اصلی و رویکرد کپسوله سازی LangGraph هنوز برای یادگیری و مرجع بسیار ارزشمند است. با پیشرفت فناوری هوش مصنوعی…

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

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

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

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