در این آموزش، نحوه ساخت یک اپلیکیشن مبتنی بر عامل با استفاده از Streamlit و LangChain را بررسی خواهیم کرد. با ترکیب عوامل هوش مصنوعی، می توانیم برنامه ای ایجاد کنیم که نه تنها به سوالات پاسخ می دهد و در اینترنت جستجو می کند، بلکه محاسبات را انجام می دهد و داده ها را به طور موثر تجسم می کند. این راهنما شما را در ایجاد یک گردش کار راهنمایی می کند که ابزارهایی مانند Python REPL و قابلیت های جستجو را با یک LLM قدرتمند (Llama 3.3) ادغام می کند.
توجه: این پروژه بخشی از چالش Deepnote x Streamlit بود و تمام کدها و برنامه ها در فضای کاری Deenote موجود است.
اپلیکیشن مبتنی بر عامل چیست؟
یک اپلیکیشن مبتنی بر عامل از عوامل هوش مصنوعی برای انجام وظایف به صورت مستقل استفاده می کند. این عوامل می توانند:
- جستجو در اینترنت برای اطلاعات.
- اجرای کد پایتون برای محاسبات.
- تجسم داده ها به صورت پویا.
- حفظ حافظه مکالمه برای تعاملات یکپارچه.
با ترکیب این قابلیت ها، می توانید برنامه هایی بسازید که بسیار تعاملی و قادر به رسیدگی به گردش کارهای پیچیده باشند.
برای ایجاد یک گردش کار عامل، از ابزارهای زیر استفاده خواهیم کرد:
- ابزار جستجوی Tavily: برای جستجوی وب.
- ابزار Python REPL: برای اجرای کد پایتون.
- Llama 3.3 LLM: یک مدل زبانی همه کاره برای تولید پاسخ ها و مدیریت ابزارها.
ابتدا، از وب سایت های Tavily و Groq بازدید کنید تا کلید API را تولید کرده و آن را به عنوان یک متغیر محیطی تنظیم کنید.
در مرحله بعد، ابزار جستجو را با حداکثر تعداد نتایج 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.
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 برای ایجاد یک رابط وب تعاملی برای برنامه عامل استفاده می شود. در این بخش، همه چیز را از بخشهای قبلی ترکیب میکنیم و یک ربات چت Streamlit ایجاد میکنیم. کد این برنامه در وب مستقل | Deepnote موجود است.
برنامه از اجزای زیر تشکیل شده است:
- ادغام ابزارها:
- ابزار جستجو: از Tavily برای جستجوی وب با محدودیت یک نتیجه استفاده می کند.
- ابزار Python REPL: اجازه می دهد تا کد پایتون اجرا شود و نتایج را برمی گرداند.
- عامل LLM:
- یک LLM مبتنی بر Groq (Llama 3.3) را با دمای 0.7 و حداکثر حد نشانه 1024 مقداردهی اولیه می کند.
- عامل قادر به استفاده از ابزارهایی مانند جستجو و اجرای پایتون است.
- تاریخچه چت و حافظه:
- تاریخچه چت و وضعیت جلسه را برای مکالمات مداوم حفظ می کند.
- از MemorySaver برای بررسی و بازیابی حالات مکالمه استفاده می کند.
- ماندگاری شکل:
- شکل های Matplotlib تولید شده در طول مکالمه را ذخیره و نمایش می دهد.
- شکل ها در وضعیت جلسه ذخیره می شوند و با پیام های خاص مرتبط هستند.
- عملکرد تنظیم مجدد:
- یک دکمه تنظیم مجدد برای پاک کردن تاریخچه چت، شکل ها و وضعیت جلسه ارائه می دهد و یک مکالمه جدید را شروع می کند.
- رسیدگی به خطا:
- منطق تلاش مجدد را برای تماس های ابزار ناموفق پیاده سازی می کند و به طور منظم خطاهای غیرمنتظره را مدیریت می کند.
- ویژگی های رابط کاربری:
- تاریخچه چت قبلی را با شکل های مرتبط نمایش می دهد.
- به ورودی کاربر اجازه می دهد تا تماس های ابزار را فعال کند و پاسخ ها را در زمان واقعی نمایش می دهد.
- شامل یک پاورقی با پیوند به اسناد است.
پس از آزمایش کد، زمان استقرار برنامه شما فرا رسیده است تا همه افراد تیم شما بتوانند به آن دسترسی داشته باشند. روی دکمه «ایجاد برنامه Streamlit» کلیک کنید، و تمام! این یک پیوند برای شما ایجاد می کند و می توانید برنامه وب خود را از هر کجا تجربه کنید.
در اینجا نحوه نمایش آن در فضای کاری شما آمده است: روی دکمه «باز کردن برنامه» کلیک کنید تا برنامه خود را در یک تب مرورگر جدید در حالت تمام صفحه مشاهده کنید.
بیایید برنامه مستقر خود را با یک سوال در مورد جهان آزمایش کنیم. ما می خواهیم در مورد مهمترین اخبار مطلع شویم و در عرض چند ثانیه، به روز رسانی های خبری مرتبط را در اختیار ما قرار می دهد.
در مرحله بعد، Python REPL را آزمایش می کنیم تا به ما در محاسبه سود یک حساب پس انداز کمک کند. پاسخ در کمتر از یک ثانیه تولید شد. برای تأیید نتایج، من همان سوال را از ChatGPT پرسیدم.
ChatGPT نیز نتایج یکسانی را ارائه داد، اما چند ثانیه بیشتر طول کشید. این بدان معناست که برنامه ما هم سریع و هم دقیق است.
اکنون، بیایید تاریخچه و عملکردهای تجسم داده برنامه را بررسی کنیم و از آن بخواهیم یک نمودار خطی تولید کند.
در نهایت، از آن خواستیم تا اینترنت را جستجو کند تا بهترین حساب پس انداز را پیدا کند که همان بازده را ارائه می دهد.
این شگفت انگیز است! این برنامه سریع، دقیق است و تجسم داده ها را در چند ثانیه تولید می کند.
با ترکیب LangChain و Streamlit، می توانید برنامه های عامل قدرتمندی بسازید که قادر به رسیدگی به گردش کارهای پیچیده هستند. این آموزش نشان داد که چگونه:
- یک گردش کار عامل را با ابزارها و LLM ها تنظیم کنید.
- یک برنامه وب تعاملی با استفاده از Streamlit بسازید.
- برنامه را برای استفاده در دنیای واقعی آزمایش و مستقر کنید.
این پروژه پتانسیل عوامل هوش مصنوعی را در ایجاد برنامه های پویا و کاربرپسند به نمایش می گذارد. امروز شروع به ساخت گردش کارهای عامل خود کنید.
عابد علی عوان (@1abidaliawan) یک متخصص علوم داده مجاز است که عاشق ساخت مدل های یادگیری ماشین است. در حال حاضر، او بر ایجاد محتوا و نوشتن وبلاگ های فنی در مورد یادگیری ماشین و فناوری های علم داده تمرکز دارد. عابد دارای مدرک کارشناسی ارشد در مدیریت فناوری و مدرک کارشناسی در مهندسی مخابرات است. چشم انداز او ساخت یک محصول هوش مصنوعی با استفاده از یک شبکه عصبی نمودار برای دانش آموزانی است که با بیماری روانی دست و پنجه نرم می کنند.