الجنرال Ai - أمثلة Springboot / Langchain4J
يشير الذكاء الاصطناعي التوليدي إلى مجموعة فرعية من الذكاء الاصطناعي التي يمكنها إنشاء محتوى جديد بناءً على البيانات المدخلة. يشمل ذلك النماذج التي يمكنها إنشاء النصوص والصور والموسيقى وحتى مقاطع الفيديو. تتضمن أمثلة الذكاء الاصطناعي التوليدي نماذج لغوية مثل GPT-3 وDALL-E من OpenAI، والتي يمكنها إنشاء نصوص وصور تشبه الإنسان من الأوصاف النصية، على التوالي.
عادةً ما يتم تدريب نماذج الذكاء الاصطناعي التوليدية على مجموعات بيانات ضخمة وتستخدم تقنيات التعلم العميق لتعلم الأنماط والهياكل في البيانات. لديهم مجموعة واسعة من التطبيقات، بما في ذلك:
- معالجة اللغات الطبيعية (NLP): إنشاء نص يشبه الإنسان لروبوتات الدردشة والترجمات وإنشاء المحتوى.
- الفنون الإبداعية: إنشاء الأعمال الفنية والموسيقى وعناصر التصميم.
- زيادة البيانات: إنشاء بيانات إضافية لتدريب نماذج التعلم الآلي الأخرى.
- الرعاية الصحية: المساعدة في التصوير الطبي ووضع خطط علاجية مخصصة.
كيف تساعد واجهة برمجة تطبيقات LangChain4J Gen AI المطورين على إنشاء تطبيقات Spring Boot AI
LangChain4J هي مكتبة Java مصممة لتبسيط دمج نماذج اللغات الكبيرة (LLMs) وقدرات الذكاء الاصطناعي في تطبيقات Java، بما في ذلك تلك التي تم إنشاؤها باستخدام Spring Boot. وإليك كيف يساعد المطورين:
- واجهة برمجة التطبيقات الموحدة لـ LLM: توفر LangChain4J واجهة برمجة تطبيقات موحدة تدعم العديد من موفري LLM مثل OpenAI وGoogle Vertex AI. يسمح هذا التجريد للمطورين بالتبديل بين LLMs المختلفة دون تغيير قاعدة التعليمات البرمجية الخاصة بهم بشكل كبير.
- دمج مخزن التكامل: إنه يتكامل مع العديد من مخازن التضمين، مما يتيح التعامل الفعال مع البيانات الموجهة. وهذا مفيد بشكل خاص لمهام توليد الاسترجاع المعزز (RAG)، حيث يتم جلب المعلومات ذات الصلة من قاعدة المعرفة لتعزيز استجابات الذكاء الاصطناعي.
- مجموعة أدوات الميزات: تتضمن المكتبة مجموعة شاملة من الأدوات للقوالب السريعة وإدارة الذاكرة وتحليل المخرجات. تساعد هذه الأدوات في بناء تطبيقات الذكاء الاصطناعي المعقدة من خلال توفير تجريدات عالية المستوى ومكونات جاهزة للاستخدام.
- تكامل Spring Boot: يدعم LangChain4J Spring Boot، مما يسهل على المطورين إنشاء تطبيقات ذكاء اصطناعي قوية وقابلة للتطوير. يسمح التكامل بالدمج السلس لخدمات الذكاء الاصطناعي في تطبيقات Spring Boot، والاستفادة من ميزات إدارة التكوين وحقن التبعية في Spring.
- الأمثلة والوثائق: تقدم LangChain4J وثائق وأمثلة واسعة النطاق، لتوجيه المطورين من خلال حالات الاستخدام المختلفة وتوضيح كيفية تنفيذ الوظائف التي تدعم الذكاء الاصطناعي في تطبيقاتهم.
دراسة الحالة: تطبيق الرعاية الصحية - الخدمات المصغرة للتشخيص الممكّن من Gen Ai
أمثلة على الذكاء الاصطناعي العام: مقارنة 8 ماجستير في إدارة الأعمال (3 منها تعتمد على السحابة و5 محلية) في ميزات المؤسسة
تعتمد المقارنة التالية على الميزات المتوفرة في LangChain4J API (التي يدعمها OpenAI ChatGPT). تعتبر هذه الميزات ضرورية لتطوير تطبيقات المؤسسات المستندة إلى Gen AI.
# | مثال | جي بي تي 4o | ميتا لاما3 | ميسترال | مايكروسوفت فاي-3 | جوجل جيما | تي آي آي فالكون 2 | كلود 3 | الجوزاء 1.5 |
---|
1. | مرحبا بالعالم | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
2. | العالم المعقد | ؟ | ؟ | ؟ م1 | ؟ | ؟ | ؟ | ؟ | ؟ |
3. | البيانات المخصصة | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ F1 | ؟ | ؟ |
4. | توليد الصور | ؟ | ؟ L1 | ؟ م2 | ؟ ص1 | ؟ | ؟ F2 | ؟ | ؟ |
5. | قالب موجه | ؟ | ؟ | ؟ م3 | ؟ | ؟ | ؟ | ؟ | ؟ |
6. | أدوات | ؟ | ؟ L2 | ؟ م4 | ؟ ص2 | ؟ G1 | ؟ F3 | ؟ | ؟ G1 |
7. | ذاكرة الدردشة | ؟ | ؟ | ؟ | ؟ ص3 | ؟ G2 | ؟ | ؟ | ؟ G2 |
8. | قليل شوت | ؟ | ؟ | ؟ م5 | ؟ | ؟ | ؟ | ؟ | ؟ G3 |
9. | مترجم اللغة | ؟ | ؟ | ؟ م6 | ؟ | ؟ | ؟ | ؟ | ؟ |
10. | محلل المشاعر | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
11. | مستخرج البيانات | ؟ O1 | ؟ L3 | ؟ م7 | ؟ ص4 | ؟ G3 | ؟ F4 | ؟ | ؟ G4 |
12. | المتجر الدائم | ؟ | ؟ | ؟ م8 | ؟ ص5 | ؟ G4 | ؟ | ؟ | ؟ |
استرجاع الجيل المعزز (RAG) أمثلة على 8 ماجستير في القانون
# | مثال | جي بي تي 4o | ميتا لاما3 | ميسترال | مايكروسوفت فاي-3 | جوجل جيما | تي آي آي فالكون 2 | كلود 3 | الجوزاء 1.5 |
---|
51. | بسيط | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
52. | شرائح | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
53. | محول الاستعلام | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
54. | موجه الاستعلام | ؟ | ؟ L4 | ؟ م9 | ؟ ص6 | ؟ G4 | ؟ F5 | ؟ | ؟ G5 |
55. | إعادة الترتيب | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
56. | بيانات التعريف | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
57. | مستردات المحتوى المتعددة | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
58. | تخطي استرجاع المحتوى | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
59. | تطبيق الرعاية الصحية | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ | ؟ |
أعلى تصنيفات LLM بناءً على ميزات المؤسسة
# | رتبة | شركة | ماجستير | نتيجة | فئة |
---|
1 | 1 | أنثروبي | كلود 3 هايكو | 21/21 | سحاب |
2 | 2 | افتح الذكاء الاصطناعي | الدردشة جي بي تي 4o | 20/21 | سحاب |
3 | 3 | ميتا | اللاما 3 | 17/21 | محلي |
4 | 4 | TII | فالكون 2 | 16/21 | محلي |
5 | 4 | جوجل | الجوزاء 1.5 برو | 16/21 | سحاب |
6 | 4 | جوجل | جيما | 16/21 | محلي |
7 | 5 | مايكروسوفت | فاي 3 | 15/21 | محلي |
8 | 6 | ميسترال | ميسترال | 12/21 | محلي |
ملاحظة: ستتمتع شهادات LLM المستندة إلى السحابة بأكثر من 500 مليار معلمة داعمة بينما تعتمد LLMs المحلية في الغالب على 8 مليار معلمة.
الخروج مزيد من التفاصيل حول نتائج الاختبار
تثبيت LLMs المحلية
لتثبيت LLMs المحلية باستخدام Ollama
- ميتا لاما3
- جوجل جيما
- مايكروسوفت فاي-3
- تي آي آي فالكون 2
- ميسترال
- معالج الرياضيات
تحقق من دليل التثبيت.
احصل على مفاتيح اختبار Cloud LLMs
قم بالتسجيل للحصول على مفاتيح API
- افتح AI - ChatGPT (يمكن إنشاء مفتاح API هنا: https://platform.openai.com/api-keys)
- أنثروبي - كلود 3 (يمكن إنشاء مفتاح واجهة برمجة التطبيقات هنا: https://console.anthropic.com/settings/keys)
- Google Cloud - (https://console.cloud.google.com/ - تحقق من AiConstants.java للحصول على التعليمات)
- Cohere - (مفتاح واجهة برمجة التطبيقات هنا: https://dashboard.cohere.com/welcome/register)
- HuggingFace - (مفتاح واجهة برمجة التطبيقات هنا: https://huggingface.co/settings/tokens)
- سريع - (مفتاح واجهة برمجة التطبيقات هنا: https://rapidapi.com/judge0-official/api/judge0-ce)
قم بتعيين هذه المفاتيح في بيئتك
// API Keys -----------------------------------------------------------------------
// OpenAI API key here: https://platform.openai.com/account/api-keys
public static final String OPENAI_API_KEY = System.getenv("OPENAI_API_KEY");
// Cohere API key here: // https://dashboard.cohere.com/welcome/register
public static final String COHERE_API_KEY = System.getenv("COHERE_API_KEY");
// Anthropic API key here:: https://console.anthropic.com/settings/keys
public static final String ANTHROPIC_API_KEY = System.getenv("ANTHROPIC_API_KEY");
// HuggingFace API key here: https://huggingface.co/settings/tokens
public static final String HF_API_KEY = System.getenv("HF_API_KEY");
// Judge0 RapidAPI key here: https://rapidapi.com/judge0-official/api/judge0-ce
public static final String RAPID_API_KEY = System.getenv("RAPID_API_KEY");
Gen AI - هيكل حزمة التعليمات البرمجية
الحزمة io.fusion.air.microservice.ai.genai
- وحدات التحكم (نقاط النهاية المتبقية لاختبار الأمثلة)
- جوهر
- المساعدين (استنادًا إلى LangChain4J AiService)
- النماذج (نماذج البيانات المستخدمة في الكود)
- المطالبات (المطالبات المنظمة للحصول على مخرجات محددة)
- الخدمات (تم إعادة استخدام منطق الأعمال الخاص بـ LLM عبر جميع الأمثلة.)
- الأدوات (يتم استدعاء الوظائف بناءً على بحث LLM)
- أمثلة (Claude 3، Falcon 2، GPT 4o، Gemini، Gemma، Llama3، Mistral، Phi-3، Wizard Math)
- utils (رمز عام لإنشاء ChatLanguageModels والتكوينات ومفاتيح API ومشغل وحدة التحكم)
هيكل الكود
اختبار سريع بعد بدء تشغيل تطبيق SpringBoot
تحليل المشاعر باستخدام ChatGPT 4o
الإشراف على المحتوى باستخدام ChatGPT 4o
ChatBot باستخدام RAG (البيانات المخصصة) - دراسة حالة: خدمة تأجير السيارات
راج العمارة
يعمل الجيل المعزز للاسترجاع (RAG) على تحسين مخرجات نماذج اللغات الكبيرة (LLMs) من خلال دمج قواعد المعرفة الخارجية الموثوقة. في حين يتم تدريب LLMs على مجموعات بيانات واسعة واستخدام مليارات المعلمات لإنشاء استجابات لمهام مثل الإجابة على الأسئلة وترجمة اللغة وإكمال النص، تعمل RAG على تحسين هذه المخرجات من خلال الرجوع إلى مصادر معلومات محددة وحديثة تتجاوز بيانات التدريب الخاصة بالنموذج. تعمل هذه العملية على توسيع قدرات LLMs بشكل كبير لتلبية المجالات المتخصصة أو المعرفة الداخلية للمؤسسة دون الحاجة إلى إعادة تدريب النموذج. وبالتالي، توفر RAG حلاً فعالاً من حيث التكلفة لضمان بقاء المحتوى الذي تم إنشاؤه ملائمًا ودقيقًا ومناسبًا للسياق.
تواجه نماذج اللغات الكبيرة (LLMs) عدة تحديات:
- وقد يقدمون معلومات خاطئة عندما يفتقرون إلى الإجابة الصحيحة.
- يمكنهم تقديم معلومات قديمة أو عامة عندما يتوقع المستخدم استجابات محددة وحديثة.
- قد يقومون بإنشاء ردود بناءً على مصادر غير موثوقة.
- يمكن أن ينتجوا استجابات غير دقيقة بسبب ارتباك المصطلحات، حيث تستخدم مصادر التدريب المختلفة نفس المصطلحات لوصف مفاهيم مختلفة.
يعالج الجيل المعزز للاسترجاع (RAG) العديد من التحديات المرتبطة بـ LLMs من خلال توجيه النموذج لجلب المعلومات ذات الصلة من مصادر المعرفة الموثوقة والمحددة مسبقًا. يسمح هذا النهج للمؤسسات بممارسة المزيد من التحكم في المحتوى الناتج عن النموذج، مما يضمن الدقة والملاءمة. بالإضافة إلى ذلك، فهو يوفر للمستخدمين رؤى أكثر وضوحًا حول المصادر والعمليات التي تستخدمها LLM لصياغة استجاباتها.
محادثة باستخدام LLM مع اتفاقية خدمة تأجير السيارات (البيانات المخصصة).
استخراج البيانات باستخدام ChatGPT 4o
يعمل LangChain4J على مستويين من التجريد:
- مستوى منخفض. في هذا المستوى، لديك أكبر قدر من الحرية والوصول إلى جميع المكونات ذات المستوى المنخفض مثل ChatLanguageModel، وUserMessage، وAiMessage، وEmbeddingStore، وEmbedding، وما إلى ذلك. وهذه هي "الأساسيات" لتطبيقك المدعوم من LLM. لديك سيطرة كاملة على كيفية الجمع بينهما، ولكنك ستحتاج إلى كتابة المزيد من التعليمات البرمجية اللاصقة.
- مستوى عال. في هذا المستوى، يمكنك التفاعل مع LLMs باستخدام واجهات برمجة التطبيقات عالية المستوى مثل AiServices وChains، والتي تخفي عنك كل التعقيدات والنموذج النمطي. لا يزال لديك المرونة اللازمة لضبط السلوك وضبطه، ولكن يتم ذلك بطريقة تصريحية.
اقرأ المزيد... مقدمة LangChain4J
هيكل الحزمة
المتطلبات المسبقة
- سبرينج بوت 3.2.4
- جافا 22
- جاكرتا EE 10 (jakarta.servlet. ، jakarta.persistence. ، javax.validation.*)
- قاعدة بيانات PostgreSQL 14
- أولاما 0.1.38
افتراضيًا، سيستخدم التطبيق قاعدة بيانات H2 In-Memory. لا يلزم إعداد قاعدة البيانات لهذا الغرض.
الخطوة 1.1 – البدء
- استنساخ بوابة https://github.com/arafkarsh/ms-springboot-324-ai.git
- القرص المضغوط MS-Springboot-324-ai
- قاعدة بيانات القرص المضغوط
- اقرأ README.md لإعداد قاعدة البيانات الخاصة بك (قاعدة بيانات PostgreSQL)
- افتراضيًا (وضع المطورين)، سيستخدم التطبيق قاعدة بيانات In-Memory H2
الخطوة 1.2 - الترجمة (بمجرد أن يصبح الكود الخاص بك جاهزًا)
1.2.1 قم بتجميع الكود
قم بتشغيل "التحويل البرمجي" من ms-springboot-324-ai
- ترجمة أو ./ترجمة (يعمل في Linux وMac OS)
- ام فين نظيف؛ حزمة mvn -e؛ (جميع المنصات)
- استخدم خيارات ترجمة IDE
1.2.2 ما الذي سيفعله البرنامج النصي "الترجمة".
- تنظيف المجلد الهدف
- إنشاء رقم البناء وتاريخ الإنشاء (يأخذ نسخة احتياطية من application.properties)
- قم ببناء الناتج النهائي لجرة SpringBoot الدهنية وجرة رقيقة مخضرمة
- انسخ ملفات jar (والتبعيات) إلى مجلد src/docker
- انسخ ملف application.properties إلى المجلد الحالي ومجلد src/docker
في الخطوة 1.2.2، سيتم إنشاء ملف application.properties تلقائيًا بواسطة البرنامج النصي "compile". هذه خطوة حاسمة. بدون ملف application.properties الذي تم إنشاؤه، لن يتم تشغيل الخدمة. يوجد ملف خصائص التطبيق المبني مسبقًا.
الخطوة 1.3 - تشغيل
1.3.1 ابدأ الخدمة
- تشغيل أو ./تشغيل (يعمل في Linux أو Mac OS)
- تشغيل prod (لتشغيل ملف تعريف الإنتاج، الافتراضي هو ملف تعريف المطور)
- mvn Spring-boot:run (جميع الأنظمة الأساسية - قاعدة بيانات الذاكرة الداخلية لملف تعريف dev H2)
- mvn Spring-boot:run -Dspring-boot.run.profiles=prod (جميع الأنظمة الأساسية - منتج الملف الشخصي PostgreSQL DB)
1.3.2 اختبار الخدمة
- اختبار أو ./اختبار (يعمل في Linux أو Mac OS)
- تنفيذ أوامر الضفيرة مباشرة (من البرنامج النصي للاختبار)
نماذج الدردشة
- OpenAI (الأمثلة متاحة)
- Ollama - تشغيل نماذج الذكاء الاصطناعي على جهازك المحلي (تتوفر أمثلة)
- أزور فتح الذكاء الاصطناعي
- أمازون بيدروك
- أمر كوهير
- مختبرات AI21 الجوراسي-2
- ميتا لاما 2
- تيتان الأمازون
- جوجل فيرتكس AI بالم
- جوجل الجوزاء
- HuggingFace - يمكنك الوصول إلى آلاف النماذج، بما في ذلك تلك الموجودة في Meta مثل Llama2
- ميسترالAI
نماذج تحويل النص إلى صورة
- OpenAI مع DALL-E (الأمثلة متوفرة)
- الاستقرارAI
نماذج النسخ (الصوت إلى النص).
نماذج التضمين
- OpenAI
- أولاما
- أزور أوبن إيه آي
- اونكس
- PostgresML
- بيدروك كوهير
- بيدروك تيتان
- جوجل فيرتيكس آي
- ميستال منظمة العفو الدولية
توفر واجهة Vector Store API إمكانية النقل عبر موفري خدمات مختلفين، وتتميز بواجهة برمجة تطبيقات جديدة لتصفية البيانات التعريفية تشبه SQL والتي تحافظ على إمكانية النقل.
قواعد بيانات المتجهات
- بحث متجه أزور
- صفاء
- ميلفوس
- Neo4j
- PostgreSQL/PGVector
- كوز الصنوبر
- ريديس
- ويفيات
- قدررانت
النماذج المدعومة هي
- OpenAI
- أزور أوبن إيه آي
- VertexAI
- ميسترال منظمة العفو الدولية
تحقق من أمثلة عملية CRUD
- إعداد Postman مع نقاط نهاية REST للاختبار
- أمثلة الخام
- أمثلة على رمز JWT
تحقق من CRUD_Examples.md
(ج) حقوق الطبع والنشر 2024: ترخيص Apache 2: المؤلف: عارف كارش حميد
* مرخص بموجب ترخيص Apache، الإصدار 2.0 ("الترخيص")؛
* لا يجوز لك استخدام هذا الملف إلا وفقًا للترخيص.
* يمكنك الحصول على نسخة من الترخيص على
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* ما لم يكن ذلك مطلوبًا بموجب القانون المعمول به أو تم الاتفاق عليه كتابيًا
* الموزعة بموجب الترخيص يتم توزيعها على أساس "كما هي"،
* دون ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية.
* راجع الترخيص لمعرفة الأذونات التي تحكم اللغة المحددة و
* القيود بموجب الترخيص.