ديفيد متخصص في تسجيلات الفينيل. يمكنك أن تطلب منه توصية أو معلومات إضافية حول أي من السجلات الموجودة في مجموعة Discogs الخاصة بك. سيكون ديفيد سعيدًا بمساعدتك.
يعد تطبيق LLM هذا مثالًا بسيطًا لوكيل المحادثة الذي يستخدم Discogs API لتوفير معلومات حول سجلات الفينيل. ويتكون من 4 وحدات بناء رئيسية:
وهو يستخدم حاليًا LangChain4j كإطار عمل مع GPT-4o كمحرك مساعد للذكاء الاصطناعي، ولكن يمكن تكييفه بسهولة لاستخدام محركات أخرى.
يتم فرض بنية التطبيق من الرسم البياني أدناه بواسطة إطار عمل ArchUnit من خلال الاختبارات في فئة ArchitectureTest.
تم تطوير واجهة المستخدم لهذا المشروع باستخدام الموجه التالي:
I need the code for an HTML 5 page that contains an input field for a Discogs username
and a text area for inserting prompts for the application to send to AI agents.
Above the text area there should be the space in which the AI responses are displayed, in the ChatGPT style
أعطى كود HTML5 الذي تم إنشاؤه من GitHub Copilot العناصر المرئية الأولية لواجهة المستخدم والتي قمت بتعديلها بعد ذلك لإضافة اتصال websocket والمنطق لإرسال واستقبال الرسائل من مساعد الذكاء الاصطناعي. لقد وجدت أن هذا هو النهج السريع جدًا للنماذج الأولية. بعد ذلك، انتقلت إلى مكونات أكثر قوة من تصميم النمل، بما في ذلك الدردشة الاحترافية.
كنت أرغب في البداية في استخدام اللاما3. لا يدعم نموذج llama3 حاليًا الأدوات (يونيو 2024). وهذا يعني أن مساعد الذكاء الاصطناعي لا يمكنه جمع اسم مستخدم Discogs واسترداد مجموعة السجلات بمفرده. انتقلنا إلى GPT-4o حتى يتمكن David من طلب معلومات Discogs وإلغاء الحاجة إلى أي نماذج.
بعض LLMs ليست ذكية مثل غيرها. على الرغم من أن نموذج Mistral 7b يدعم الأدوات، إلا أنني لم أتمكن من الحصول على إجابات جيدة منه. ولن ينجح حتى في اختبارات التكامل الخاصة بي. ومع ذلك، لم أتمكن من تشغيل ماجستير في القانون باستخدام الأدوات مجانًا.
الهلوسة هي الألم. لقد بدأت رحلتي إلى RAG كوسيلة لتقليلها. وبما أن ديفيد يعمل في مجال الموسيقى، فإن ويكيبيديا هي أول قاعدة معرفية تتبادر إلى ذهن RAG. ربما يمكنني الاستفادة من واجهة برمجة تطبيقات MediaWiki للبحث في صفحات الموسيقى ذات الصلة بالمحادثة. في الوقت الحالي، أستخدم بحث Google فقط وهو يساعد في بعض الأحيان ولكنه بالتأكيد لا يكفي لتغطية التكلفة التي يضيفها باستخدام الرموز المميزة.
كان اختبار تطبيق LLM تحديًا. لقد أجريت اختبارات التكامل أكثر من المعتاد. أدى هذا إلى دورة تطوير أبطأ. كما أن الطبيعة الاحتمالية لمساعد الذكاء الاصطناعي تجعل من الصعب اختبار التطبيق بطريقة حتمية.
تتضمن اختبارات الوحدة العالمية في LLM المطالبة بنموذج الذكاء الاصطناعي بدلاً من مجرد استدعاء وحدة من التعليمات البرمجية. عند استخدام نموذج قائم على السحابة، يكون لإجراء اختبارات الوحدة تكلفة. لقد جربت أيضًا استخدام وكيل ذكاء اصطناعي ثانٍ لمساعدتي في تأكيد النتائج من الذكاء الاصطناعي الرئيسي. إنه نهج واعد لأننا نستطيع القيام بالتأكيدات الدلالية، وليس فقط معالجة السلسلة. والمقايضة هنا هي أنها تولد أيضًا تكلفة، وتزيد من مخاطر الأخطاء الاحتمالية التي تقدمها LLMs.
يجب أن يكون لديك مفتاح OpenAI API صالح لتشغيل هذا التطبيق.
./gradlew bootRun
لبدء التطبيق.http://localhost:8080
في متصفحك للتفاعل مع مساعد الذكاء الاصطناعي.