Published on

معرفی Spring AI (قسمت اول): راهکاری برای ساده‌سازی توسعه هوش مصنوعی

نویسندگان

پروژه Spring AI به منظور ساده‌سازی توسعه برنامه‌های هوش مصنوعی بدون پیچیدگی غیرضروری طراحی شده است. این پروژه از پروژه‌های معروف پایتون مانند LangChain و LlamaIndex الهام گرفته است، اما نسخه مستقیمی از آن‌ها نیست و بر این باور است که موج بعدی برنامه‌های هوش مصنوعی مولد (Generative AI) فقط محدود به توسعه‌دهندگان پایتون نخواهد بود، بلکه در زبان‌های برنامه‌نویسی متعددی مورد استفاده قرار خواهد گرفت.

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

نقش مهندسان ML، مهندسان پلتفرم و توسعه‌دهندگان اپلیکیشن

در استفاده از هوش مصنوعی و یادگیری ماشین در پروژه‌ها، نقش‌های مختلفی دخیل هستند. تصویر زیر نقش‌ها و وظایف مختلف را نشان می‌دهد:

  • مهندسان ML: مسئول آموزش مدل، تنظیم دقیق (Fine-Tuning) و استنتاج (Inference) مدل هستند.
  • مهندسان پلتفرم: زیرساخت و پلتفرم مورد نیاز برای اجرای مدل‌ها را فراهم می‌کنند.
  • توسعه‌دهندگان اپلیکیشن: از APIهای ارائه‌شده برای ادغام قابلیت‌های هوشمند در برنامه‌های خود استفاده می‌کنند.
نقش مهندسان و توسعه‌دهندگان در پروژه‌های

استنتاج مدل از طریق APIهای HTTP

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

استنتاج مدل از طریق APIهای HTTP

در هسته اصلی، Spring AI مشکل اساسی ادغام هوش مصنوعی را حل می‌کند: اتصال داده‌ها و APIهای سازمانی با مدل‌های هوش مصنوعی. این پروژه انتزاعاتی ارائه می‌دهد که به توسعه‌دهندگان امکان می‌دهد مؤلفه‌ها را با تغییرات کم در کد به سادگی تعویض کنند و از مدل‌های مختلف استفاده کنند.

ویژگی‌های Spring AI

پشتیبانی از ارائه‌دهندگان بزرگ مدل‌های هوش مصنوعی

این پروژه از ارائه‌دهندگان بزرگی مانند OpenAI، Microsoft، Amazon، Google، و Hugging Face پشتیبانی می‌کند که امکان استفاده از مدل‌های مختلف با یک API یکسان را فراهم می‌کنند. این قابلیت به توسعه‌دهندگان کمک می‌کند تا به راحتی مدل مورد نیاز خود را انتخاب کنند.

انواع مدل‌های پشتیبانی‌شده

مدل‌های پشتیبانی‌شده در Spring AI شامل چت، تبدیل متن به تصویر، رونویسی صوتی، تبدیل متن به گفتار، و مدیریت محتوا هستند. با گذر زمان، ویژگی‌های بیشتری به این مدل‌ها اضافه خواهد شد تا نیازهای متنوع توسعه‌دهندگان را پوشش دهند.

API قابل‌انتقال بین ارائه‌دهندگان مختلف

Spring AI امکان استفاده از APIهای همگام و جریان را فراهم کرده و به توسعه‌دهندگان اجازه می‌دهد به ویژگی‌های خاص هر مدل دسترسی داشته باشند. این ویژگی توسعه‌دهندگان را قادر می‌سازد بدون نیاز به بازنویسی گسترده کد، به ارائه‌دهنده‌ای دیگر مهاجرت کنند.

نگاشت خروجی مدل‌های هوش مصنوعی به POJOها

Spring AI خروجی مدل‌های هوش مصنوعی را به POJOها (اشیاء جاوا ساده) نگاشت می‌کند. این ویژگی به توسعه‌دهندگان جاوا کمک می‌کند تا به راحتی خروجی مدل‌ها را در برنامه‌های خود مورد استفاده قرار دهند.

پشتیبانی از پایگاه داده‌های برداری (Vector Database)

Spring AI از پایگاه داده‌های برداری مختلف مانند Apache Cassandra، Azure Vector Search، Milvus، و MongoDB Atlas پشتیبانی می‌کند. این پایگاه‌های داده‌ای امکان ذخیره و بازیابی داده‌های برداری را که در کاربردهای هوش مصنوعی بسیار حیاتی هستند، فراهم می‌کنند.

پیکربندی خودکار Spring Boot

Spring AI با استفاده از پیکربندی خودکار و استارترهای Spring Boot، استفاده از مدل‌های هوش مصنوعی و Vector Storeها را برای توسعه‌دهندگان آسان‌تر می‌کند و فرآیند راه‌اندازی را تسریع می‌بخشد.

چارچوب ETL برای مهندسی داده

Spring AI یک چارچوب ETL (استخراج، تبدیل، و بارگذاری) برای مهندسی داده فراهم می‌کند که به توسعه‌دهندگان اجازه می‌دهد داده‌ها را برای استفاده در مدل‌های هوش مصنوعی آماده‌سازی کنند.

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

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