خانه / هوش مصنوعی (AI) / LangChain چیست؟

LangChain چیست؟

LangChain چیست؟

نویسنده:

انتشار:

به‌روزرسانی:

تعداد نظرات: 0

زمان مطالعه: 12 دقیقه

در چند سال اخیر، مدل‌های زبانی بزرگ (LLMها) از یک فناوری آزمایشی به بستری عملی برای ساخت اپلیکیشن‌های واقعی تبدیل شده‌اند؛ از چت‌بات‌ها تا ایجنت‌هایی که می‌توانند فرایندهای پیچیده را خودکار کنند. اما برای تبدیل یک مدل زبانی به یک محصول قابل‌اعتماد، لازم است بتوان آن را به داده‌های بیرونی، ابزارها، APIها و گردش‌کارهای مختلف متصل کرد. LangChain دقیقا برای حل همین مسئله طراحی شده است؛ فریم‌ورکی متن‌باز که ساخت اپلیکیشن‌های مبتنی بر LLM را ساختارمند، سریع و قابل‌گسترش می‌کند.

در این مقاله قرار است ببینیم LangChain چیست و چرا تا این حد برای توسعه‌دهنده‌ها مهم شده است. در ادامه درباره سازوکار داخلی آن، نحوه‌ کار با مدل‌های مختلف، استفاده از Chainها، ساخت Agentها، اتصال به پایگاه‌های داده‌ برداری، اجرای RAG، مدیریت حافظه، کار با ابزارها و ساخت چندایجنتی با LangGraph صحبت می‌کنیم. همچنین LangSmith را معرفی می‌کنیم که نقش حیاتی در ارزیابی و پایش اپلیکیشن‌های مبتنی بر LLM دارد. در پایان نیز نحوه‌ شروع کار و کاربردهای عملی LangChain در پروژه‌های واقعی را مرور خواهیم کرد.

لانگ‌چِین چیست؟

فریم ورک langchain

LangChain یک فریم‌ورک متن‌باز برای ساخت و Orchestration اپلیکیشن‌هایی است که با مدل‌های زبانی بزرگ (LLMها) کار می‌کنند. این ابزار در دو نسخه‌ مبتنی بر Python و JavaScript ارائه شده و مجموعه‌ای از APIها و ابزارها را فراهم می‌کند تا توسعه‌ اپلیکیشن‌های مبتنی بر LLM مثل چت‌بات‌ها و ایجنت‌های هوش مصنوعی را ساده‌تر کند.

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

LangChain که توسط هریسون چِیس در اکتبر ۲۰۲۲ معرفی شد، با سرعتی چشمگیر رشد کرد؛ تا جایی که در ژوئن ۲۰۲۳ به سریع‌ترین پروژه‌ی متن‌باز در حال رشد روی گیت‌هاب تبدیل شد. تقریبا هم‌زمان با انتشار ChatGPT از سوی OpenAI، LangChain نقشی مهم در قابل دسترس‌تر شدن هوش مصنوعی مولد (GenAI) برای علاقه‌مندان و استارتاپ‌ها ایفا کرد و حالا با رشد ابزارهای هوش مصنوعی ایجنت‌محور، تحول بزرگی در اتوماسیون رقم زده است.

LangChain می‌تواند بخش زیادی از کاربردهای مرتبط با LLMها و پردازش زبان طبیعی (NLP) را پوشش دهد؛ از جمله چت‌بات‌ها، جستجوی هوشمند، سیستم‌های پرسش‌وپاسخ، سرویس‌های خلاصه‌سازی محتوا و حتی ایجنت‌هایی که توانایی خودکارسازی فرایندهای پیچیده را دارند.

یکپارچه‌سازی با مدل‌های زبانی بزرگ (LLM)

مدل‌های زبانی بزرگ به‌تنهایی یک «برنامه» محسوب نمی‌شوند؛ آن‌ها مدل‌های آماری از پیش آموزش‌دیده هستند که باید در کنار یک اپلیکیشن (و گاهی منابع داده‌ اختصاصی) قرار بگیرند تا بتوانند کاربرد واقعی داشته باشند.

برای نمونه، ChatGPT خودش یک LLM نیست؛ بلکه یک اپلیکیشن چت‌بات است که بسته به نسخه‌ای که انتخاب می‌کنید، از مدل زبانی GPT-3.5 یا GPT-4 استفاده می‌کند. مدل GPT مسئول تحلیل ورودی کاربر و تولید پاسخ طبیعی است اما این اپلیکیشن است که رابط کاربری، تجربه‌ گفتگو و امکانات تعامل را فراهم می‌کند. حتی در مقیاس سازمانی نیز، ChatGPT تنها ابزاری نیست که از GPT استفاده می‌کند؛ مثلا Microsoft Bing Chat هم با GPT-4 کار می‌کند.

از سوی دیگر، با وجود اینکه مدل‌های پایه (Foundation Models) روی مجموعه‌داده‌های عظیم آموزش دیده‌اند، همه‌چیزدان نیستند. اگر یک وظیفه‌ خاص نیازمند اطلاعات تخصصی، مستندات داخلی یا داده‌های زمینه‌ای باشد، LLM باید به آن منابع داده‌ بیرونی متصل شود. حتی اگر بخواهید مدل نسبت به اتفاقات روز آگاهی داشته باشد، ناگزیر باید داده‌ بیرونی به آن بدهید؛ چون داده‌های داخلی مدل فقط تا زمان پایان دوره‌ آموزش آن به‌روز هستند.

به همین شکل، اگر یک وظیفه‌ مبتنی بر هوش مصنوعی نیازمند اتصال به گردش‌کارهای نرم‌افزاری بیرونی باشد، مثلا ایجنتی که باید با Slack کار کند، ناچارید LLM را به API آن سرویس متصل کنید.

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

کاربردهای LangChain

کاربردهای langchain

اپلیکیشن‌های هوش مصنوعی ساخته‌شده با LangChain می‌توانند طیف وسیعی از نیازها را پوشش دهند؛ از وظایف ساده‌ پرسش‌وپاسخ و تولید متن گرفته تا راهکارهای پیچیده‌تری که در آن‌ها LLM نقش «موتور استدلال» را بازی می‌کند.

  • چت‌بات‌ها: چت‌بات‌ها از رایج‌ترین کاربردهای LLM هستند. LangChain می‌تواند زمینه‌ مناسب را برای استفاده‌ تخصصی یک چت‌بات فراهم کند و آن را از طریق API با کانال‌ها و گردش‌کارهای موجود یکپارچه کند.
  • خلاصه‌سازی: مدل‌های زبانی قادرند انواع متن را خلاصه کنند؛ از مقاله‌های دانشگاهی پیچیده گرفته تا رونوشت جلسات، یا حتی خلاصه‌ای از ایمیل‌های دریافتی.
  • پرسش‌وپاسخ: با اتصال LLMها به اسناد یا پایگاه‌های دانش تخصصی مانند Wolfram، arXiv یا PubMed، مدل می‌تواند اطلاعات مرتبط را بازیابی کرده و پاسخ‌های دقیق ارائه دهد. برخی مدل‌ها اگر به‌درستی پرامپت‌گذاری یا فاین‌تیون شوند، حتی بدون داده‌ خارجی نیز قادر به پاسخ‌گویی به بسیاری از سؤالات هستند.
  • داده‌افزایی: LLMها می‌توانند داده‌ ساختگی (Synthetic Data) برای پروژه‌های یادگیری ماشین تولید کنند. به‌عنوان نمونه، می‌توان مدلی ساخت که نمونه‌های جدیدی شبیه داده‌های یک دیتاست آموزشی تولید کند.
  • ایجنت‌های مجازی: با اتصال به گردش‌کارهای مناسب، ماژول‌های Agent در LangChain می‌توانند با تکیه بر یک LLM به‌طور خودمختار گام‌های بعدی را تعیین کرده و اقدام انجام دهند مثلا با استفاده از RPA.

LangChain چگونه کار می‌کند؟

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

مفهوم Abstraction در زندگی روزمره هم وجود دارد. مثلا عدد π به ما اجازه می‌دهد نسبت محیط دایره به قطر آن را بیان کنیم بدون اینکه مجبور باشیم بی‌نهایت رقم اعشار آن را بنویسیم. یا یک ترموستات به ما امکان می‌دهد دمای خانه را کنترل کنیم بدون اینکه بدانیم در پشت آن چه مدارهای پیچیده‌ای وجود دارد؛ تنها کافی است بدانیم هر تنظیم چه تغییری در دما ایجاد می‌کند.

LangChain در اصل یک کتابخانه از abstractionها برای Python و JavaScript است که مراحل و مفاهیم رایج در کار با LLMها را در قالب مولفه‌های ماژولار ارائه می‌دهد. این مولفه‌ها مثل توابع یا کلاس‌ها به‌عنوان بلوک‌های سازنده‌ برنامه‌های هوش مصنوعی مولد عمل می‌کنند. شما می‌توانید این اجزا را مانند زنجیره به هم متصل کنید تا اپلیکیشن‌های پیچیده را بسازید، بدون اینکه لازم باشد برای هر وظیفه‌ NLP حجم زیادی کد بنویسید یا تمام جزئیات پیچیده‌ زیرساخت را بدانید.

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

وارد کردن مدل‌های زبانی

تقریبا هر مدل زبانی بزرگ (LLM) را می‌توان در LangChain استفاده کرد. وارد کردن یک مدل زبانی به LangChain بسیار ساده است؛ تنها چیزی که نیاز دارید یک کلید API است. کلاس LLM در LangChain برای ارائه‌ یک رابط استاندارد میان همه‌ مدل‌ها طراحی شده است.

بیشتر ارائه‌دهندگان LLM از شما می‌خواهند یک حساب کاربری بسازید تا بتوانید کلید API دریافت کنید. برخی از این APIها به‌خصوص مدل‌های اختصاصی و بسته مثل محصولات OpenAI یا Anthropic ممکن است شامل هزینه باشند.

بسیاری از مدل‌های متن‌باز مانند LLaMA از Meta AI، مدل Deepseek-LLM، مدل‌های Granite از IBM و Flan-T5 گوگل از طریق Hugging Face قابل دسترسی‌اند. همچنین IBM watsonx نیز از طریق همکاری با Hugging Face مجموعه‌ای از مدل‌های متن‌باز را ارائه می‌دهد. ساخت حساب در هر یک از این سرویس‌ها این امکان را می‌دهد که برای مدل‌های ارائه‌شده یک کلید API ایجاد کنید.

LangChain فقط محدود به مدل‌های آماده یا از پیش ارائه‌شده نیست؛ کلاس CustomLLM اجازه می‌دهد برای مدل‌های دلخواه، Wrapper سفارشی بسازید. علاوه بر این، می‌توان از APIها و Python SDK مربوط به IBM watsonx که یک یکپارچگی رسمی با LangChain دارد استفاده کرد تا مدل‌هایی را که خودتان آموزش داده‌اید یا فاین‌تیون کرده‌اید، با استفاده از کلاس WatsonxLLM و project ID مخصوص آن مدل، در برنامه‌های LangChain به کار ببرید.

قالب‌های پرامپت

پرامپت همان دستوراتی است که به یک LLM داده می‌شود. هنر ساختن پرامپتی که بتواند زمینه‌ کافی، ساختار مناسب و جهت‌دهی درست را برای مدل فراهم کند، معمولا با عنوان Prompt Engineering شناخته می‌شود.

کلاس PromptTemplate در LangChain فرایند ساخت پرامپت را استاندارد می‌کند و نیاز به هاردکد کردن دستی زمینه و پرسش‌ها را از بین می‌برد. مولفه‌های کلیدی پرامپت نیز در قالب کلاس‌های رسمی ثبت می‌شوند؛ مثلا input_variables.

بنابراین یک پرامپت‌تمپلیت می‌تواند شامل موارد زیر باشد:

متن زمینه (Context)

دستورالعمل‌ها (مثلا: «از اصطلاحات تخصصی استفاده نکن»)

مثال‌هایی برای راهنمایی مدل (Few-shot prompting)

قالب خروجی موردنظر

ساختار یا پرسش استاندارد برای تکرار در کاربردهای مختلف

وقتی یک تمپلیت خوب طراحی کردید، می‌توانید آن را ذخیره کنید و هر زمان لازم شد مجددا استفاده کنید.

در حالی که همه‌ این موارد را می‌توان با کدنویسی دستی انجام داد اما PromptTemplate باعث می‌شود این عناصر به‌صورت روان با دیگر قابلیت‌های LangChain، مثل Chainها، یکپارچه شوند.

چین‌ها (Chains)

همان‌طور که از نام LangChain مشخص است، Chainها هسته‌ اصلی جریان‌های کاری در این فریم‌ورک هستند. چین‌ها مدل‌های زبانی را با مولفه‌های دیگر ترکیب می‌کنند و با اجرای یک سری توابع، اپلیکیشن را می‌سازند. ساده‌ترین نوع Chain، کلاس LLMChain است. این Chain فقط یک مدل و یک PromptTemplate را فراخوانی می‌کند.

مثلا اگر یک پرامپت را با نام «ExamplePrompt» ذخیره کرده باشید و بخواهید آن را روی مدل Flan-T5 اجرا کنید، کافی است:

۱. LLMChain را از langchain.chains ایمپورت کنید.

۲. یک نمونه بسازید:

۳. برای اجرای Chain روی یک ورودی:

اگر بخواهید خروجی یک تابع، ورودی تابع بعدی باشد، می‌توانید از SimpleSequentialChain استفاده کنید. هر مرحله می‌تواند از پرامپت، ابزار، پارامترها یا حتی مدل‌های متفاوت استفاده کند؛ کاملا بسته به نیاز پروژه‌ شما.

ایندکس‌ها

برای انجام برخی وظایف، مدل‌های زبانی بزرگ نیاز دارند به منابع داده‌ خارجی دسترسی داشته باشند؛ منابعی که در دیتاست اولیه‌ آموزش مدل وجود نداشته‌اند، مثل اسناد داخلی، ایمیل‌ها یا دیتاست‌های اختصاصی. LangChain به‌صورت کلی این نوع مستندات و منابع خارجی را Indexes می‌نامد.

بارگذارهای سند

LangChain مجموعه‌ی وسیعی از Document Loaderها را برای سرویس‌های شخص ثالث ارائه می‌دهد. این قابلیت باعث می‌شود بتوانید داده‌ها را به‌سادگی از منابع مختلف وارد پروژه کنید، مثل:

  • سرویس‌های ذخیره‌سازی فایل: Dropbox، Google Drive، OneDrive
  • محتوای وب: YouTube، PubMed، آدرس‌های URL دلخواه
  • ابزارهای همکاری و مدیریت پروژه: Airtable، Trello، Figma، Notion
  • دیتابیس‌ها: Pandas، MongoDB، سرویس‌های مایکروسافت

این تنوع، فرایند جمع‌آوری و آماده‌سازی داده برای LLMها را بسیار ساده می‌کند.

پایگاه‌های داده‌ برداری

برخلاف دیتابیس‌های ساخت‌یافته‌ سنتی، دیتابیس‌های برداری داده‌ها را به Embedding تبدیل می‌کنند؛ نمایش‌های عددی در قالب بردارهایی با ابعاد ثابت. معمولا داده‌های مرتبط در فضای برداری کنار هم قرار می‌گیرند و به‌صورت خوشه‌بندی توسط روش‌های بدون ناظر سازمان‌دهی می‌شوند.

این ساختار باعث می‌شود بتوان حتی روی دیتاست‌های بسیار بزرگ، کوئری‌های با تاخیر پایین اجرا کرد و سرعت و کارایی را به‌طور چشمگیری افزایش داد. همچنین Embeddingها متادیتا را نیز در خود نگه می‌دارند، که امکان جستجوهای متنوع و پیچیده‌تر را فراهم می‌کند.

LangChain بیش از:

  • ۲۵ روش مختلف برای ساخت Embedding
  • ۵۰ Vector Store مختلف (چه ابری و چه محلی)

را پشتیبانی می‌کند؛ بنابراین تقریبا برای هر معماری داده‌ای می‌توان یک راه‌حل سازگار پیدا کرد.

Text Splitters

برای افزایش سرعت و کاهش مصرف محاسباتی، معمولا بهتر است متن‌های بزرگ را به بخش‌های کوچک‌تر تقسیم کنیم. TextSplitterهای LangChain متن را به بلاک‌های کوچک و از نظر معنایی قابل‌درک تقسیم می‌کنند. سپس می‌توان این بخش‌ها را با روش‌ها و پارامترهای دلخواه دوباره ترکیب یا پردازش کرد.

بازیابی اطلاعات (Retrieval)

بعد از اتصال منابع داده‌ خارجی، مدل باید بتواند هر زمان لازم شد اطلاعات مرتبط را سریع بازیابی و در پاسخ خود ادغام کند. مشابه watsonx، LangChain نیز قابلیت تولید تقویت‌شده با بازیابی (RAG) را ارائه می‌دهد. در این معماری، ماژول‌های retriever یک string query دریافت کرده و مجموعه‌ای از Document‌ها را به‌عنوان خروجی برمی‌گردانند.

RAG عامل‌محور

در LangChain می‌توان سیستم‌های RAG عامل‌محور نیز ساخت. در RAG سنتی، LLM تنها به یک Vector Database برای مراجعه دسترسی دارد و پاسخ خود را فقط بر اساس محتوای بازیابی‌شده تولید می‌کند. اما در هوش مصنوعی Agentic این محدودیت وجود ندارد. Agentic RAG علاوه بر بازیابی داده می‌تواند از ابزارهای مختلف استفاده کند؛ مثلا:

  • انجام محاسبات ریاضی
  • نوشتن ایمیل
  • تحلیل داده
  • اجرای اقدامات یا عملیات پیچیده

به این ترتیب، LLM از نقش یک مدل صرفا پاسخ‌دهنده فراتر می‌رود و می‌تواند مانند یک «عامل هوشمند» رفتار کند.

حافظه

به‌صورت پیش‌فرض، مدل‌های زبانی بزرگ هیچ حافظه‌ بلندمدتی از تعاملات قبلی ندارند (مگر اینکه تاریخچه‌ گفتگو را دوباره به‌عنوان ورودی برای مدل ارسال کنید). LangChain برای حل این مسئله مجموعه‌ای از ابزارهای ساده ارائه می‌دهد که به کمک آن‌ها می‌توان حافظه را به سیستم اضافه کرد. این حافظه بسته به نیاز شما می‌تواند:

  • تمام مکالمات قبلی را ذخیره کند،
  • یک خلاصه از مکالمات گذشته نگه دارد،
  • یا فقط n پیام آخر را حفظ کند.

این قابلیت به ساخت چت‌بات‌ها و ایجنت‌هایی کمک می‌کند که زمینه‌ گفتگو را حفظ کرده و پاسخ‌های دقیق‌تر و سازگارتر ارائه دهند.

ابزارها

با وجود قدرت و انعطاف بالای LLMها، این مدل‌ها محدودیت‌های مهمی دارند؛ از جمله:

  • نداشتن دسترسی به اطلاعات روز،
  • نداشتن دانش تخصصی دامنه،
  • ضعف کلی در انجام محاسبات دقیق ریاضی.

ابزارهای LangChain مجموعه‌ای از توابع هستند که به ایجنت‌های LangChain اجازه می‌دهند با دنیای واقعی تعامل داشته باشند و کیفیت خدمات خود را ارتقا دهند. برخی از ابزارهای مهم و آماده‌ LangChain عبارت‌اند از:

  • Wolfram Alpha: امکان دسترسی به قابلیت‌های قدرتمند محاسباتی و بصری‌سازی داده را فراهم می‌کند و باعث می‌شود مدل بتواند محاسبات ریاضی پیشرفته را انجام دهد.
  • Google Search: دسترسی به جستجوی گوگل را ممکن می‌کند و به ایجنت‌ها اطلاعات به‌روز و بلادرنگ می‌دهد.
  • OpenWeatherMap: اطلاعات وضعیت آب‌وهوا را از API این سرویس دریافت می‌کند.
  • Wikipedia: دسترسی سریع و کارآمد به محتوای مقالات ویکی‌پدیا را فراهم می‌کند.

این ابزارها کمک می‌کنند ایجنت‌ها فراتر از توانایی‌های داخلی LLM رفتار کنند و خدمات عملی، دقیق و مبتنی بر داده ارائه دهند.

ایجنت‌های LangChain

ایجنت‌های لانگ چین

با فریم‌ورک LangChain می‌توان ایجنت‌هایی ساخت که به یک LLM توانایی تصمیم‌گیری، استفاده از ابزارها و انجام وظایف پیچیده را به‌صورت مرحله‌به‌مرحله می‌دهند؛ نه صرفا تولید یک پاسخ متنی ساده. برخلاف یک تعامل معمولی «پرامپت و پاسخ»، یک ایجنت در LangChain می‌تواند:

  • فکر کند،
  • برنامه‌ریزی کند،
  • مجموعه‌ای از اقدامات را اجرا کند،
  • یاد بگیرد،
  • و خود را تطبیق دهد.

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

اجزای LangChain برای کار با watsonx.ai

پکیج‌ها، کلاس‌ها و متدهای LangChain بسته به پلتفرم هوش مصنوعی مورد استفاده متفاوت هستند. برای ارتباط با مدل‌های watsonx.ai از طریق LangChain، اجزای کلیدی کلاس WatsonxLLM شامل موارد زیر است:

  • langchain_ibm: پکیجی که ادغام LangChain با IBM را ممکن می‌کند. نصب این پکیج برای استفاده از کلاس‌ها و متدهای زیر ضروری است.
  • ibm_watsonx_ai: کتابخانه‌ای برای اتصال به سرویس‌های watsonx.ai مثل IBM Cloud و IBM Cloud Pak for Data.
  • APIClient: کلاس اصلی در کتابخانه‌ ibm_watsonx_ai که مدیریت منابع سرویس API را برعهده دارد. پارامترهای آن شامل اعتبارسنجی (Credentials) و آدرس Endpoint است.
  • WatsonxLLM: Wrapper مدل‌های پایه‌ watsonx.ai. این Wrapper برای ادغام با Chainها لازم است. پارامترهای آن شامل مدل ID، کلید API، آدرس endpoint، project ID و پارامترهای مدل است.
  • ModelInference: کلاسی برای ساخت Interface مدل. پارامترها شامل مدل ID، اطلاعات هویتی، project ID و تنظیمات مدل است. پس از ساخت، می‌توان این مدل را به کلاس‌های مرتبط پاس داد.
  • invoke(): مدلی را با یک پرامپت از نوع رشته‌ای فراخوانی می‌کند.
  • generate(): مدل را با چند پرامپت در قالب یک لیست از رشته‌ها اجرا می‌کند.

ساخت ایجنت با ابزارها در Watonx + LangChain

کلاس دیگری که برای ساخت ایجنت‌های مبتنی بر مدل‌های watsonx.ai استفاده می‌شود ChatWatsonx است. این کلاس با متد bind_tools امکان می‌دهد لیستی از ابزارهای سفارشی یا آماده را در هر مرحله به LLM متصل کنید.

برای دریافت پاسخ ایجنت، از متد invoke استفاده می‌شود. پس از فراخوانی، ویژگی tool_calls نام ابزار، آرگومان‌ها، شناسه و نوع هر Tool call انجام‌شده را برمی‌گرداند (در صورت وجود).

LangGraph

langraph

LangGraph که توسط تیم LangChain ایجاد شده، یک فریم‌ورک متن‌باز برای ساخت ایجنت‌های هوش مصنوعی است که از هماهنگ‌سازی چند ایجنتی (Multi-Agent Orchestration) پشتیبانی می‌کند. با LangGraph می‌توان جریان‌های کاری (Workflows) ساخت که در آن ایجنت‌ها با یکدیگر تعامل، تخصص‌گرایی و همکاری دارند.

در هسته‌ LangGraph از قدرت معماری‌های مبتنی بر گراف استفاده می‌شود تا بتوان روابط پیچیده بین اجزای مختلف یک جریان هوش مصنوعی را مدل‌سازی و مدیریت کرد. ترکیب این معماری با قابلیت نظارت Human-in-the-Loop و مجموعه‌ای از APIها و ابزارهای یکپارچه، بستری انعطاف‌پذیر فراهم می‌کند برای توسعه‌ی راهکارها و جریان‌های هوش مصنوعی شامل:

  • چت‌بات‌ها
  • State Graphها
  • سیستم‌های مبتنی بر چند ایجنت
  • و هر نوع Workflow مبتنی بر Agent

ادغام ابزارها از طریق MCP

با استفاده از کتابخانه‌ langchain-mcp-adapters، ایجنت‌های LangGraph می‌توانند از ابزارهایی که روی سرورهای Model Context Protocol (MCP) تعریف شده‌اند استفاده کنند.

کتابخانه‌ mcp نیز به کاربران امکان می‌دهد سرورهای سفارشی MCP بسازند. به‌طور کلی MCP امکان ایجاد یک اتصال امن بین یک سیستم هوش مصنوعی مثل یک ایجنت و ابزارهای خارجی را فراهم می‌کند. به این ترتیب، مدل‌های زبانی مختلف می‌توانند با استفاده از پروتکل استاندارد MCP به ابزارها و منابع داده یکسان متصل شوند.

کار با LangSmith

LangSmith که در پاییز ۲۰۲۳ معرفی شد، با هدف پر کردن فاصله‌ میان نمونه‌سازی سریع که باعث محبوبیت LangChain شد و ساخت اپلیکیشن‌های تولیدی (Production-Grade) مبتنی بر LLM توسعه یافته است.

LangSmith ابزارهایی برای نظارت، ارزیابی و دیباگ اپلیکیشن‌ها ارائه می‌دهد؛ از جمله قابلیت ثبت خودکار تمام فراخوانی‌های مدل برای یافتن خطاها و آزمودن عملکرد در پیکربندی‌های مختلف مدل.

استفاده از LangSmith محدود به اپلیکیشن‌های ساخته‌شده با LangChain نیست و می‌توان در پروژه‌های دیگر نیز از آن بهره برد. ارزیابی عملکرد ایجنت‌ها در LangSmith با استفاده از رویکرد LLM-as-a-judge انجام می‌شود. مجموعه‌ این قابلیت‌ها به بهینه‌سازی اپلیکیشن‌های پایدارتر، دقیق‌تر و مقرون‌به‌صرفه‌تر کمک می‌کند.

کار با LangChain

LangChain متن‌باز و رایگان است و کد منبع آن از طریق GitHub قابل دریافت است. برای نصب LangChain در Python کافی است دستور زیر را اجرا کنید:

اگر بخواهید تمام وابستگی‌های LangChain نصب شوند، می‌توانید از دستور زیر استفاده کنید:

نتیجه‌گیری

LangChain فقط یک لایه نازک روی LLMها نیست؛ بلکه یک جعبه‌ابزار کامل برای طراحی و اورکستریشن اپلیکیشن‌های هوش مصنوعی است. از مرحله‌ ایده و نمونه‌سازی، تا اتصال به مدل‌های مختلف، یکپارچه‌سازی با پایگاه‌های داده و ابزارها، پیاده‌سازی RAG، طراحی ایجنت‌های چندمرحله‌ای و چندابزاره و در نهایت نظارت و ارزیابی با LangSmith، این اکوسیستم تقریبا همه‌ نیازهای فنی شما را در مسیر ساخت یک محصول مبتنی بر LLM پوشش می‌دهد.

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

 

منابع

ibm.com 

سوالات متداول

یک لایه‌ استاندارد برای اتصال LLMها به داده‌ها، ابزارها و گردش‌کارهای نرم‌افزاری ارائه می‌دهد.

بله، لانگ‌چین برای این دو زبان ارائه شده است.

بله، کافی است API مدل‌هایی مثل OpenAI، Hugging Face یا watsonx را داشته باشید.

وقتی مدل باید به اسناد، دانش تخصصی یا داده‌های به‌روز دسترسی داشته باشد.

برای ساخت جریان‌های چندایجنتی و مبتنی بر وضعیت (State) استفاده می‌شود.

زمانی که می‌خواهید اپلیکیشن را پایدار، ارزیابی‌پذیر و قابل‌نظارت کنید—معمولا بعد از نمونه‌سازی اولیه.

فرصت‌های شغلی

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

دیدگاه‌ها

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

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