در چند ماه گذشته به شدت کار کردم تا ادغام عوامل هوش مصنوعی در محصول SaaS خود را به سطح بالاتری برسانم. این یک سفر بسیار طولانی بود که بیش از یک سال پیش با اولین آزمایش ها شروع شد. باید بگویم که درک تمام اجزای متحرک یک سیستم مبتنی بر هوش مصنوعی چندان آسان نیست.
بهعنوان یک توسعهدهنده PHP، من سختیهای زیادی را متحمل شدم، عمدتاً به این دلیل که اکوسیستم PHP برای توسعه این نوع ویژگیهای «عاملی» در برنامههای کاربردی موجود، به اندازه فناوریهای دیگر پیشرفته و غنی نیست.
پایتون و جاوا اسکریپت در حال «رانندگی اتوبوس» هستند و بدیهی است که توسعهدهندگان دیگری که با زبانهای برنامهنویسی مختلف کار میکنند، مصنوعات خود را ایجاد میکنند تا این فرصت را داشته باشند که سفر خود را نیز آغاز کنند.
شش ماه پیش وقتی کار روی این فصل را شروع کردم، بسته هایی را در نظر گرفتم که مورد توجه قرار گرفتند، مانند LLPhant یا Prism . توسعه زیادی پشت این بسته ها وجود داشت و آنها قبلاً موارد زیادی را اجرا کرده اند. اما برای نیازهای من، آنها ضعفهای بسیار جدیای دارند که نمیتوان پایههای این فصل را برای کسبوکار من در این کتابخانهها ایجاد کرد. Prism به طور انحصاری برای لاراول است، بنابراین شما در آن قفل هستید، و LLPhant کلاس های مختلف زیادی دارد و بیشتر شبیه یک کتابخانه است تا یک چارچوب. همچنین فاقد ویژگی هایی مانند حافظه، تاریخچه چت، قابلیت مشاهده است.
مسیر ناپایدار
از همان ابتدا متوجه شدم که نمی توانم به زبان های برنامه نویسی دیگر نگاه کنم. پایدار نیست. و من مطمئن هستم که این برای اکثر توسعه دهندگانی که در یک فناوری خاص تخصص دارند، یکسان است.
اگر یک برنامه PHP دارید، نمی توانید یک عامل را در جاوا اسکریپت یا پایتون پیاده سازی کنید، زیرا آنها به داده ها و زمینه برنامه شما برای تولید جادوی خود نیاز دارند. انتقال این داده ها و زمینه به یک موجودیت خارجی که به زبانی دیگر نوشته شده است منجر به تکرار کد یا محدودیت فنی زیادی می شود که پایدار نیست.
من کنجکاو هستم که ببینم آیا این فقط من در حال مبارزه بودم یا اینکه این احساسات مانند سایر توسعه دهندگان PHP است.
شروع کردم به فکر کردن که ابزاری که برای خودم ایجاد کردم واقعاً خوب است، حداقل از دیدگاه من.
بنابراین تصمیم گرفتم این ابزار داخلی را به عنوان یک پروژه منبع باز منتشر کنم: Neuron AI ، چارچوب منبع باز برای ادغام عوامل AI کامل در برنامه PHP موجود شما.
چرا تصمیم گرفتم آن را متن باز کنم
سفری که میخواهم کاوش کنم از LangChain الهام گرفته شده است، و به افراد این قدرت را میدهد تا با یک جعبه ابزار متن باز کامل، موجودیتهای Agent را در برنامههای PHP ایجاد کنند. و به لطف خدمات نظارت و اشکال زدایی حرفه ای که توسط Inspector.dev ارائه می شود، پشتیبانی و دید طولانی مدت ارائه دهید.
در عین حال، من معتقدم که واقعاً می تواند به توسعه دهندگان PHP کمک کند تا با پایه های قوی تر به اتوبوس هوش مصنوعی بپرند.
به نظرم فرصت روشنی بود. امیدوارم بتواند پاسخ هایی را که به دنبال آن هستید برای ادامه ساختن نرم افزار عالی با زبان برنامه نویسی دلخواه خود به شما بدهد.
در اینجا نحوه سازماندهی سیستم آمده است:
مفاهیم کلیدی
Neuron AI به گونه ای طراحی شده است که ابزار کاملی را برای پیاده سازی برنامه های مبتنی بر هوش مصنوعی در اختیار شما قرار می دهد و ادغام آن در سیستم موجود شما را آسان می کند.
اکثر اجزای چارچوب Neuron AI سازنده های فعال را پیاده سازی نمی کنند، آنها فقط ویژگی هایی را برای پیاده سازی رفتار عامل خود در اختیار شما قرار می دهند. دو کلاس مهم، Agent و RAG ، به گونه ای طراحی شده اند که برای ایجاد پیاده سازی خاص شما توسعه داده شوند. آنها به ندرت به عنوان اشیاء مستقل استفاده می شوند.
این کار قابل حمل بودن اجرای عامل شما را تضمین می کند زیرا تمام قسمت های متحرک در یک موجودیت واحد محصور شده اند که می توانید آن را در هر کجا که می خواهید در برنامه خود اجرا کنید.
namespace App\Agents; use NeuronAI\Agent; use NeuronAI\Providers\Anthropic; use NeuronAI\Tools\Tool; class SEOAgent extends Agent { public function provider(): AIProviderInterface { // return an AI provider instance (Anthropic, OpenAI, Mistral, etc.) return new Anthropic( key: 'ANTHROPIC_API_KEY', model: 'ANTHROPIC_MODEL', ); } public function instructions() { return "Act as an expert of SEO (Search Engine Optimization). ". "Your role is to analyze a text and provide suggestions on how the content can be improved to better rank on Google search."; } public function tools(): array { return [ Tool::make( "get_file_content", "Use the url to get the content in plain text." )->addProperty( new ToolPropertry( name: 'url', type: 'string', description: 'The URL of the article you want to analyze.', required: true ) )->setCallable(function (string $url) { return file_get_contents($url); }) ]; } }
با نماینده صحبت کن
use NeuronAI\Chat\Messages\UserMessage; $response = SEOAgent::make($user) ->chat( new UserMessage("Give me your feedback about this article: https://inspector.dev/introduction-to-neuron-ai-create-full-featured-ai-agents-in-php/") ); echo $response->getContent(); // It seems like a good job has been done on the article, // however I can give you some tips to improve SEO:...
وابستگی های بسته
ما عمدا تصمیم گرفتیم که نورون را تا حد امکان آزاد از وابستگی های خارجی بسازیم. بسته فقط با یک وابستگی ارسال می شود: "guzzlehttp/guzzle": "^7.0"
بدون وارد کردن ده ها وابستگی در داخل برنامه خود، در صورت نیاز به ارتقاء معماری فعلی خود، مانند چارچوب برنامه وب (Laravel، Symfony، CodeIgniter و غیره) به نسخه جدیدتر یا ادغام وابستگی های جدید، خطر قفل شدن از Neuron را ندارید.
بر اساس تجربه ما، یک زنجیره وابستگی بد می تواند یک غافلگیری بسیار ناخوشایند زمانی که خیلی دیر شده باشد. شما قبلاً تلاش زیادی را برای پیاده سازی تعاملات هوش مصنوعی خود صرف کرده اید و ناگهان به یک گلوگاه تبدیل شده است زیرا وابستگی ها امکان ارتقا و تکامل بقیه سیستم شما را غیرممکن می کند.
ما می خواهیم بدانید که در مورد هوش مصنوعی نورون اینطور نیست.
توسعه پذیری
هر جزء از فریم ورک به رابط کاربری خود بستگی دارد. این به شما توانایی ایجاد پیادهسازیهای بتن جدید از هر مؤلفه را برای تعامل با سیستمهای خارجی و انتقال آنها به نمایندگان خود با اطمینان میدهد.
در مستندات مؤلفهها، بخش اختصاصی نحوه پیادهسازی یک مورد جدید را خواهید یافت که اساساً رابط آن را گسترش میدهد.
آیا می خواهید یک فروشگاه وکتور جدید یا یک ارائه دهنده جاسازی ها پیاده سازی کنید؟ مستندات را دنبال کنید و با ماژول جدید خود یک PR برای ما ارسال کنید. ما خوشحال خواهیم شد که آنها را به عنوان بخشی از چارچوب برای اطمینان از پشتیبانی و نگهداری شخص اول ادغام کنیم.
قابلیت مشاهده عوامل هوش مصنوعی
Neuron با یک سیستم داخلی طراحی شده است تا اجرای عامل و RAG شما را قابل مشاهده کند. شما می توانید نظارت بر فعالیت ها و عملکرد نمایندگان خود را تنها با یک خط کد شروع کنید. به بخش اختصاصی در بخش مشاهدهپذیری نگاهی بیندازید.
Neuron AI Toolkit
برای ایجاد یک عامل هوش مصنوعی کاملاً کاربردی، باید چندین چیز را با هم کار کنید. جدا از LLM، شما باید دائماً داده ها را پردازش کنید، جاسازی هایی ایجاد و ذخیره کنید تا نماینده خود را با اطلاعات تازه تغذیه کنید.
هدف این پروژه ارائه راهحلهای آسان برای پیادهسازی و گسترش در همه این حوزهها است.
بعد از راه اندازی چه اتفاقی می افتد
در Inspector ما از رشد ارگانیک استقبال می کنیم. بنابراین میخواهیم به توسعهدهندگان کمک کنیم تا اولین عوامل خود را برای کشف موارد لبه، نیازهای جدید و آشکارا رفع اشکال ایجاد کنند.
ما در حال حاضر با پایگاه کاربر داخلی خود از توسعه دهندگان +10K PHP کار می کنیم که در حال حاضر نمایندگان خود را شروع می کنند و هنوز چیزهای هیجان انگیز زیادی در حال ظهور هستند.
موارد استفاده واقعی، محرک تکامل چارچوب خواهند بود، بنابراین اگر میخواهید از تجربه ما اطلاعاتی کسب کنید، با ما تماس بگیرید. ما اینجا هستیم تا کمک کنیم.
نتیجه گیری
اگر مشتریان شما را تحت فشار قرار می دهند تا ویژگی های هوش مصنوعی را در برنامه خود پیاده سازی کنید، Neuron را امتحان کنید، تنها چند خط کد لازم است تا اولین نماینده کامل شما را پیاده سازی کنید.
با تشکر از شما برای خواندن این مقاله، از شما دعوت می کنم برای هر گونه سوال، کنجکاوی یا صرفاً برای ارائه بازخورد خود با من تماس بگیرید. و اگر فکر می کنید این ابزار می تواند برای سایر توسعه دهندگان PHP مفید باشد، لطفاً آن را در وبلاگ، رسانه های اجتماعی و کانال های یوتیوب خود به اشتراک بگذارید.
اطلاعات بیشتر در مورد بازرس در وب سایت: https://inspector.dev
بهترین،
والریو