تصویر از نویسنده
تصویر از نویسنده

ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

در این آموزش، نحوه ساخت یک اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و LangChain را بررسی خواهیم کرد. با ترکیب عوامل هوش مصنوعی، می توانیم برنامه ای ایجاد کنیم که نه تنها به سوالات پاسخ می دهد و در اینترنت جستجو می کند، بلکه محاسبات را انجام می دهد و داده ها را به طور موثر تجسم می کند. این راهنما شما را در ایجاد یک گردش کار راهنمایی می کند که ابزارهایی مانند Python REPL و قابلیت های جستجو را با یک LLM قدرتمند (Llama 3.3) ادغام می کند.

توجه: این پروژه بخشی از چالش Deepnote x Streamlit بود و تمام کدها و برنامه ها در فضای کاری Deenote موجود است.

اپلیکیشن مبتنی بر عامل چیست؟

یک اپلیکیشن مبتنی بر عامل از عوامل هوش مصنوعی برای انجام وظایف به صورت مستقل استفاده می کند. این عوامل می توانند:

  • جستجو در اینترنت برای اطلاعات.
  • اجرای کد پایتون برای محاسبات.
  • تجسم داده ها به صورت پویا.
  • حفظ حافظه مکالمه برای تعاملات یکپارچه.

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

ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

برای ایجاد یک گردش کار عامل، از ابزارهای زیر استفاده خواهیم کرد:

  1. ابزار جستجوی Tavily: برای جستجوی وب.
  2. ابزار Python REPL: برای اجرای کد پایتون.
  3. Llama 3.3 LLM: یک مدل زبانی همه کاره برای تولید پاسخ ها و مدیریت ابزارها.

ابتدا، از وب سایت های Tavily و Groq بازدید کنید تا کلید API را تولید کرده و آن را به عنوان یک متغیر محیطی تنظیم کنید.

ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

در مرحله بعد، ابزار جستجو را با حداکثر تعداد نتایج 1 تنظیم کنید تا سرعت پاسخ ابزار افزایش یابد.

from langchain_community.tools.tavily_search import TavilySearchResults
from langchain.agents import Tool
from langchain_experimental.utilities import PythonREPL


search = TavilySearchResults(max_results=1)

حالا ابزار مفسر پایتون را تنظیم کنید.

python_repl = PythonREPL()
repl_tool = Tool(
 name="python_repl",
 description="Executes Python code and returns the result.",
 func=python_repl.run,
)

مدل زبانی را با استفاده از Groq API تنظیم کنید و آخرین مدل Llama را در اختیار آن قرار دهید.

from langchain_groq import ChatGroq

llm = ChatGroq(
 model="llama-3.3-70b-versatile",
 temperature=0.7,
 max_tokens=1024,
 max_retries=2,
)

قالب اعلان چت را ایجاد کنید که به فراخوانی ابزارها کمک می کند و این ابزارها را برای ایجاد مجری عامل ترکیب کنید.

from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder

prompt = ChatPromptTemplate.from_messages(
 [
 ("system", "You are a helpful assistant"),
 ("human", "{input}"),
 MessagesPlaceholder("agent_scratchpad"),
 ]
)

tools = [search, repl_tool]
agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools)

ما یک اعلان ورودی را در اختیار مجری عامل قرار می دهیم و یک پاسخ را به عنوان یک جریان تولید می کنیم.

for step in agent_executor.stream(
 {
 "input": (
 "Create a pie chart of the top 5 most used programming languages in 2025."
 )
 }
):
 if "output" in step:
 print(step["output"])

در نتیجه، مدل اینترنت را جستجو می کند و یک تصویر نمودار دایره ای با توزیع دقیق استفاده از زبان برنامه نویسی تولید می کند.

Python REPL can execute arbitrary code. Use with caution.
ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain
Based on the search results, the top 5 most used programming languages in 2025 are:

1. Python
2. JavaScript
3. Java
4. C++
5. C#

Here is a pie chart showing the distribution of these languages:


 +---------------------------------------+
 | Python 38.4% |
 +---------------------------------------+
 | JavaScript 24.1% |
 +---------------------------------------+
 | Java 15.6% |
 +---------------------------------------+
 | C++ 12.3% |
 +---------------------------------------+
 | C# 9.6% |
 +---------------------------------------+


Note: The percentages are based on the search results and may not reflect the actual usage of these languages in the industry.

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

for step in agent_executor.stream(
 (
 {
 "input": (
 "What is the temperature in Islamabad?"
 )
 }
 ),
):
 if "output" in step:
 print(step["output"])

این دقیق است زیرا در خارج باران می بارد.

The current temperature in Islamabad is 59°F (15°C) with some clouds.
ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain
ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

Streamlit برای ایجاد یک رابط وب تعاملی برای برنامه عامل استفاده می شود. در این بخش، همه چیز را از بخش‌های قبلی ترکیب می‌کنیم و یک ربات چت Streamlit ایجاد می‌کنیم. کد این برنامه در وب مستقل | Deepnote موجود است.

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

  • ادغام ابزارها:
    • ابزار جستجو: از Tavily برای جستجوی وب با محدودیت یک نتیجه استفاده می کند.
    • ابزار Python REPL: اجازه می دهد تا کد پایتون اجرا شود و نتایج را برمی گرداند.
  • عامل LLM:
    • یک LLM مبتنی بر Groq (Llama 3.3) را با دمای 0.7 و حداکثر حد نشانه 1024 مقداردهی اولیه می کند.
    • عامل قادر به استفاده از ابزارهایی مانند جستجو و اجرای پایتون است.
  • تاریخچه چت و حافظه:
    • تاریخچه چت و وضعیت جلسه را برای مکالمات مداوم حفظ می کند.
    • از MemorySaver برای بررسی و بازیابی حالات مکالمه استفاده می کند.
  • ماندگاری شکل:
    • شکل های Matplotlib تولید شده در طول مکالمه را ذخیره و نمایش می دهد.
    • شکل ها در وضعیت جلسه ذخیره می شوند و با پیام های خاص مرتبط هستند.
  • عملکرد تنظیم مجدد:
    • یک دکمه تنظیم مجدد برای پاک کردن تاریخچه چت، شکل ها و وضعیت جلسه ارائه می دهد و یک مکالمه جدید را شروع می کند.
  • رسیدگی به خطا:
    • منطق تلاش مجدد را برای تماس های ابزار ناموفق پیاده سازی می کند و به طور منظم خطاهای غیرمنتظره را مدیریت می کند.
  • ویژگی های رابط کاربری:
    • تاریخچه چت قبلی را با شکل های مرتبط نمایش می دهد.
    • به ورودی کاربر اجازه می دهد تا تماس های ابزار را فعال کند و پاسخ ها را در زمان واقعی نمایش می دهد.
    • شامل یک پاورقی با پیوند به اسناد است.

پس از آزمایش کد، زمان استقرار برنامه شما فرا رسیده است تا همه افراد تیم شما بتوانند به آن دسترسی داشته باشند. روی دکمه «ایجاد برنامه Streamlit» کلیک کنید، و تمام! این یک پیوند برای شما ایجاد می کند و می توانید برنامه وب خود را از هر کجا تجربه کنید.

ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

در اینجا نحوه نمایش آن در فضای کاری شما آمده است: روی دکمه «باز کردن برنامه» کلیک کنید تا برنامه خود را در یک تب مرورگر جدید در حالت تمام صفحه مشاهده کنید.

ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain
ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain
ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain
ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain
ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain
ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

بیایید برنامه مستقر خود را با یک سوال در مورد جهان آزمایش کنیم. ما می خواهیم در مورد مهمترین اخبار مطلع شویم و در عرض چند ثانیه، به روز رسانی های خبری مرتبط را در اختیار ما قرار می دهد.

ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

در مرحله بعد، Python REPL را آزمایش می کنیم تا به ما در محاسبه سود یک حساب پس انداز کمک کند. پاسخ در کمتر از یک ثانیه تولید شد. برای تأیید نتایج، من همان سوال را از ChatGPT پرسیدم.

ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

ChatGPT نیز نتایج یکسانی را ارائه داد، اما چند ثانیه بیشتر طول کشید. این بدان معناست که برنامه ما هم سریع و هم دقیق است.

ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

اکنون، بیایید تاریخچه و عملکردهای تجسم داده برنامه را بررسی کنیم و از آن بخواهیم یک نمودار خطی تولید کند.

ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

در نهایت، از آن خواستیم تا اینترنت را جستجو کند تا بهترین حساب پس انداز را پیدا کند که همان بازده را ارائه می دهد.

ساخت اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و Langchain

این شگفت انگیز است! این برنامه سریع، دقیق است و تجسم داده ها را در چند ثانیه تولید می کند.

با ترکیب LangChain و Streamlit، می توانید برنامه های عامل قدرتمندی بسازید که قادر به رسیدگی به گردش کارهای پیچیده هستند. این آموزش نشان داد که چگونه:

  1. یک گردش کار عامل را با ابزارها و LLM ها تنظیم کنید.
  2. یک برنامه وب تعاملی با استفاده از Streamlit بسازید.
  3. برنامه را برای استفاده در دنیای واقعی آزمایش و مستقر کنید.

این پروژه پتانسیل عوامل هوش مصنوعی را در ایجاد برنامه های پویا و کاربرپسند به نمایش می گذارد. امروز شروع به ساخت گردش کارهای عامل خود کنید.

عابد علی عوان (@1abidaliawan) یک متخصص علوم داده مجاز است که عاشق ساخت مدل های یادگیری ماشین است. در حال حاضر، او بر ایجاد محتوا و نوشتن وبلاگ های فنی در مورد یادگیری ماشین و فناوری های علم داده تمرکز دارد. عابد دارای مدرک کارشناسی ارشد در مدیریت فناوری و مدرک کارشناسی در مهندسی مخابرات است. چشم انداز او ساخت یک محصول هوش مصنوعی با استفاده از یک شبکه عصبی نمودار برای دانش آموزانی است که با بیماری روانی دست و پنجه نرم می کنند.