إكسيرا8

عزز الذكاء الاصطناعي للمحادثة باستخدام تقنيات التوجيه المتقدمة مع Amazon Bedrock | خدمات الويب الأمازون

تم تصميم مساعدي الذكاء الاصطناعي للمحادثة (AI) لتوفير استجابات دقيقة في الوقت الفعلي من خلال التوجيه الذكي للاستعلامات إلى وظائف الذكاء الاصطناعي الأكثر ملاءمة. مع خدمات الذكاء الاصطناعي التوليدية من AWS مثل أمازون بيدروك، يمكن للمطورين إنشاء أنظمة يمكنها إدارة طلبات المستخدمين والاستجابة لها بخبرة. Amazon Bedrock هي خدمة مُدارة بالكامل توفر مجموعة مختارة من النماذج الأساسية عالية الأداء (FMs) من شركات الذكاء الاصطناعي الرائدة مثل AI21 Labs وAnthropic وCohere وMeta وStability AI وAmazon باستخدام واجهة برمجة تطبيقات واحدة، إلى جانب مجموعة واسعة من القدرات التي تحتاجها لإنشاء تطبيقات ذكاء اصطناعي منتجة تتمتع بالأمان والخصوصية والذكاء الاصطناعي المسؤول.

يقوم هذا المنشور بتقييم طريقتين أساسيتين لتطوير مساعدي الذكاء الاصطناعي: استخدام الخدمات المُدارة مثل وكلاء شركة أمازون بيدروك، وتوظيف تقنيات مفتوحة المصدر مثل لانجشين. نحن نستكشف مزايا وتحديات كل منها، حتى تتمكن من اختيار المسار الأنسب لاحتياجاتك.

ما هو مساعد الذكاء الاصطناعي؟

مساعد الذكاء الاصطناعي هو نظام ذكي يفهم استعلامات اللغة الطبيعية ويتفاعل مع الأدوات المختلفة ومصادر البيانات وواجهات برمجة التطبيقات لأداء المهام أو استرداد المعلومات نيابة عن المستخدم. يمتلك مساعدو الذكاء الاصطناعي الفعالون القدرات الرئيسية التالية:

  • معالجة اللغة الطبيعية (NLP) وتدفق المحادثة
  • تكامل قاعدة المعرفة والبحث الدلالي لفهم واسترجاع المعلومات ذات الصلة بناءً على الفروق الدقيقة في سياق المحادثة
  • تشغيل المهام، مثل استعلامات قاعدة البيانات والمخصصة AWS لامدا وظائف
  • التعامل مع المحادثات المتخصصة وطلبات المستخدمين

نعرض فوائد مساعدي الذكاء الاصطناعي باستخدام إدارة أجهزة إنترنت الأشياء (IoT) كمثال. في حالة الاستخدام هذه، يمكن للذكاء الاصطناعي أن يساعد الفنيين على إدارة الآلات بكفاءة من خلال الأوامر التي تجلب البيانات أو أتمتة المهام، وتبسيط العمليات في التصنيع.

وكلاء لنهج أمازون بيدروك

وكلاء شركة أمازون بيدروك يسمح لك ببناء تطبيقات ذكاء اصطناعي توليدية يمكنها تشغيل مهام متعددة الخطوات عبر أنظمة الشركة ومصادر البيانات. وهو يوفر القدرات الرئيسية التالية:

  • الإنشاء الفوري التلقائي من التعليمات وتفاصيل واجهة برمجة التطبيقات (API) ومعلومات مصدر البيانات، مما يوفر أسابيع من الجهد الهندسي السريع
  • الجيل المعزز للاسترجاع (RAG) لربط الوكلاء بشكل آمن بمصادر بيانات الشركة وتقديم الاستجابات ذات الصلة
  • تنسيق وتشغيل المهام متعددة الخطوات عن طريق تقسيم الطلبات إلى تسلسلات منطقية واستدعاء واجهات برمجة التطبيقات الضرورية
  • رؤية تفكير الوكيل من خلال تتبع سلسلة الأفكار (CoT)، مما يسمح باستكشاف الأخطاء وإصلاحها وتوجيه سلوك النموذج
  • قدرات هندسية سريعة لتعديل قالب المطالبة الذي تم إنشاؤه تلقائيًا لتعزيز التحكم في الوكلاء

يمكنك استخدام وكلاء Amazon Bedrock و قواعد المعرفة لأمازون بيدروك لبناء ونشر مساعدي الذكاء الاصطناعي لحالات استخدام التوجيه المعقدة. إنها توفر ميزة استراتيجية للمطورين والمؤسسات من خلال تبسيط إدارة البنية التحتية، وتعزيز قابلية التوسع، وتحسين الأمان، وتقليل الأحمال الثقيلة غير المتمايزة. كما أنها تسمح بتعليمات برمجية أبسط لطبقة التطبيق نظرًا لإدارة منطق التوجيه والتوجيه والذاكرة بشكل كامل.

حل نظرة عامة

يقدم هذا الحل مساعدًا للذكاء الاصطناعي للمحادثة مصممًا لإدارة أجهزة إنترنت الأشياء وعملياتها عند استخدام Anthropic's Claude v2.1 على Amazon Bedrock. تخضع الوظائف الأساسية لمساعد الذكاء الاصطناعي إلى مجموعة شاملة من التعليمات، تُعرف باسم موجه النظاموالتي تحدد قدراتها ومجالات خبرتها. يضمن هذا التوجيه أن مساعد الذكاء الاصطناعي يمكنه التعامل مع مجموعة واسعة من المهام، بدءًا من إدارة معلومات الجهاز وحتى تشغيل الأوامر التشغيلية.

"""The following is the system prompt that outlines the full scope of the AI assistant's capabilities:
You are an IoT Ops agent that handles the following activities:
- Looking up IoT device information
- Checking IoT operating metrics (historical data)
- Performing actions on a device-by-device ID
- Answering general questions
You can check device information (Device ID, Features, Technical Specifications, Installation Guide, Maintenance and Troubleshooting, Safety Guidelines, Warranty, and Support) from the "IotDeviceSpecs" knowledge base.
Additionally, you can access device historical data or device metrics. The device metrics are stored in an Athena DB named "iot_ops_glue_db" in a table named "iot_device_metrics". 
The table schema includes fields for oil level, temperature, pressure, received_at timestamp, and device_id.
The available actions you can perform on the devices include start, shutdown, and reboot."""

مزودًا بهذه القدرات، كما هو مفصل في موجه النظام، يتبع مساعد الذكاء الاصطناعي سير عمل منظمًا للإجابة على أسئلة المستخدم. يوفر الشكل التالي تمثيلاً مرئيًا لسير العمل هذا، موضحًا كل خطوة بدءًا من تفاعل المستخدم الأولي وحتى الاستجابة النهائية.

تمثيل مرئي لسير العمل هذا، يوضح كل خطوة بدءًا من تفاعل المستخدم الأولي وحتى الاستجابة النهائية.

يتكون سير العمل من الخطوات التالية:

  1. تبدأ العملية عندما يطلب المستخدم من المساعد أداء مهمة ما؛ على سبيل المثال، طلب الحد الأقصى لنقاط البيانات لجهاز إنترنت أشياء محدد device_xxx. يتم التقاط إدخال النص هذا وإرساله إلى مساعد الذكاء الاصطناعي.
  2. يقوم مساعد الذكاء الاصطناعي بتفسير إدخال النص الخاص بالمستخدم. ويستخدم محفوظات المحادثة ومجموعات العمل وقواعد المعرفة المتوفرة لفهم السياق وتحديد المهام الضرورية.
  3. بعد تحليل نية المستخدم وفهمها، يحدد مساعد الذكاء الاصطناعي المهام. يعتمد ذلك على التعليمات التي يفسرها المساعد وفقًا لموجه النظام وإدخال المستخدم.
  4. يتم بعد ذلك تشغيل المهام من خلال سلسلة من استدعاءات واجهة برمجة التطبيقات (API). يتم ذلك باستخدام تتفاعل المطالبة، والتي تقسم المهمة إلى سلسلة من الخطوات التي تتم معالجتها بشكل تسلسلي:
    1. لفحص مقاييس الجهاز، نستخدم check-device-metrics مجموعة العمل، والتي تتضمن استدعاء واجهة برمجة التطبيقات (API) لوظائف Lambda التي تقوم بعد ذلك بالاستعلام أمازون أثينا للبيانات المطلوبة.
    2. بالنسبة لإجراءات الجهاز المباشرة مثل البدء أو الإيقاف أو إعادة التشغيل، نستخدم الأمر action-on-device مجموعة العمل، التي تستدعي وظيفة Lambda. تبدأ هذه الوظيفة عملية ترسل الأوامر إلى جهاز إنترنت الأشياء. بالنسبة لهذا المنشور، ترسل وظيفة Lambda إشعارات باستخدام خدمة البريد الإلكتروني البسيطة من أمازون (أمازون إس إي إس).
    3. نحن نستخدم قواعد المعرفة الخاصة بـ Amazon Bedrock لجلب البيانات التاريخية المخزنة على شكل تضمينات في ملف Amazon Bedrock خدمة Amazon OpenSearch قاعدة بيانات المتجهات.
  5. بعد اكتمال المهام، يتم إنشاء الاستجابة النهائية بواسطة Amazon Bedrock FM ويتم إرسالها مرة أخرى إلى المستخدم.
  6. يقوم وكلاء Amazon Bedrock تلقائيًا بتخزين المعلومات باستخدام جلسة ذات حالة للحفاظ على نفس المحادثة. يتم حذف الحالة بعد انقضاء مهلة الخمول القابلة للتكوين.

محة فنية

يوضح الرسم البياني التالي بنية نشر مساعد الذكاء الاصطناعي مع وكلاء Amazon Bedrock.

مخطط معماري لنشر مساعد الذكاء الاصطناعي مع وكلاء Amazon Bedrock.

ويتكون من المكونات الرئيسية التالية:

  • واجهة المحادثة - تستخدم واجهة المحادثة Streamlit، وهي مكتبة Python مفتوحة المصدر تعمل على تبسيط إنشاء تطبيقات ويب مخصصة وجذابة بصريًا للتعلم الآلي (ML) وعلوم البيانات. يتم استضافته على خدمة الأمازون المرنة للحاويات (Amazon ECS) مع AWS فارجيتويمكن الوصول إليه باستخدام Application Load Balancer. يمكنك استخدام Fargate مع Amazon ECS للتشغيل حاويات دون الحاجة إلى إدارة الخوادم أو المجموعات أو الأجهزة الافتراضية.
  • وكلاء شركة أمازون بيدروك - يقوم وكلاء Amazon Bedrock بإكمال استعلامات المستخدم من خلال سلسلة من خطوات التفكير والإجراءات المقابلة بناءً على ذلك رد الفعل المطالبة:
    • قواعد المعرفة لأمازون بيدروك – توفر قواعد المعرفة الخاصة بـ Amazon Bedrock إدارة كاملة RAG لتزويد مساعد الذكاء الاصطناعي بإمكانية الوصول إلى بياناتك. في حالة الاستخدام الخاصة بنا، قمنا بتحميل مواصفات الجهاز إلى ملف خدمة تخزين أمازون البسيطة دلو (أمازون S3). وهو بمثابة مصدر البيانات لقاعدة المعرفة.
    • مجموعات العمل - هذه هي مخططات واجهة برمجة التطبيقات المحددة التي تستدعي وظائف Lambda محددة للتفاعل مع أجهزة إنترنت الأشياء وخدمات AWS الأخرى.
    • أنثروبي كلود v2.1 على أمازون بيدروك - يفسر هذا النموذج استعلامات المستخدم وينظم تدفق المهام.
    • الأمازون تيتان التضمينات - يعمل هذا النموذج كنموذج لتضمين النص، حيث يقوم بتحويل نص اللغة الطبيعية - من كلمات مفردة إلى مستندات معقدة - إلى متجهات رقمية. يؤدي ذلك إلى تمكين إمكانات البحث الموجه، مما يسمح للنظام بمطابقة استعلامات المستخدم لغويًا مع إدخالات قاعدة المعرفة الأكثر صلة للبحث الفعال.

تم دمج الحل مع خدمات AWS مثل Lambda لتشغيل التعليمات البرمجية استجابةً لاستدعاءات API، وAthena للاستعلام عن مجموعات البيانات، وOpenSearch Service للبحث في قواعد المعرفة، وAmazon S3 للتخزين. تعمل هذه الخدمات معًا لتوفير تجربة سلسة لإدارة عمليات أجهزة إنترنت الأشياء من خلال أوامر اللغة الطبيعية.

المميزات

يقدم هذا الحل الفوائد التالية:

  • تعقيد التنفيذ:
    • يلزم وجود عدد أقل من أسطر التعليمات البرمجية، لأن وكلاء Amazon Bedrock يتخلصون من الكثير من التعقيدات الأساسية، مما يقلل من جهود التطوير
    • تم تبسيط إدارة قواعد البيانات المتجهة مثل OpenSearch Service، لأن قاعدة المعرفة الخاصة بـ Amazon Bedrock تتعامل مع التوجيه والتخزين
    • أصبح التكامل مع خدمات AWS المختلفة أكثر بساطة من خلال مجموعات العمل المحددة مسبقًا
  • تجربة المطور:
    • توفر وحدة تحكم Amazon Bedrock واجهة سهلة الاستخدام للتطوير السريع والاختبار وتحليل السبب الجذري (RCA)، مما يعزز تجربة المطور الشاملة
  • خفة الحركة والمرونة:
    • يسمح وكلاء Amazon Bedrock بإجراء ترقيات سلسة إلى أجهزة FM الأحدث (مثل Claude 3.0) عندما تصبح متاحة، بحيث يظل الحل الخاص بك محدثًا بأحدث التطورات
    • تتم إدارة حصص الخدمة وقيودها بواسطة AWS، مما يقلل من عبء مراقبة البنية التحتية وتوسيع نطاقها
  • الأمن:
    • Amazon Bedrock عبارة عن خدمة مُدارة بالكامل، وتلتزم بمعايير الأمان والامتثال الصارمة الخاصة بـ AWS، مما قد يؤدي إلى تبسيط مراجعات الأمان التنظيمي

على الرغم من أن وكلاء Amazon Bedrock يقدمون حلاً مبسطًا ومُدارًا لبناء تطبيقات الذكاء الاصطناعي للمحادثة، إلا أن بعض المؤسسات قد تفضل نهجًا مفتوح المصدر. في مثل هذه الحالات، يمكنك استخدام أطر عمل مثل LangChain، والتي سنناقشها في القسم التالي.

نهج التوجيه الديناميكي LangChain

LangChain هو إطار عمل مفتوح المصدر يعمل على تبسيط بناء الذكاء الاصطناعي للمحادثة من خلال السماح بتكامل نماذج اللغات الكبيرة (LLMs) وإمكانيات التوجيه الديناميكي. باستخدام لغة التعبير LangChain (LCEL)، يمكن للمطورين تحديد التوجيه، والذي يسمح لك بإنشاء سلاسل غير حتمية حيث يحدد ناتج الخطوة السابقة الخطوة التالية. يساعد التوجيه على توفير البنية والاتساق في التفاعلات مع LLMs.

في هذا المنشور، نستخدم نفس مثال مساعد الذكاء الاصطناعي لإدارة أجهزة إنترنت الأشياء. ومع ذلك، فإن الاختلاف الرئيسي هو أننا بحاجة إلى التعامل مع مطالبات النظام بشكل منفصل والتعامل مع كل سلسلة ككيان منفصل. تحدد سلسلة التوجيه سلسلة الوجهة بناءً على مدخلات المستخدم. يتم اتخاذ القرار بدعم من LLM عن طريق تمرير موجه النظام وسجل الدردشة وسؤال المستخدم.

حل نظرة عامة

يوضح الرسم التخطيطي التالي سير عمل حل التوجيه الديناميكي.

سير عمل حل التوجيه الديناميكي مع LangChain

يتكون سير العمل من الخطوات التالية:

  1. يقدم المستخدم سؤالاً إلى مساعد الذكاء الاصطناعي. على سبيل المثال، "ما الحد الأقصى للمقاييس للجهاز 1009؟"
  2. تقوم LLM بتقييم كل سؤال مع سجل الدردشة من نفس الجلسة لتحديد طبيعته ومجال الموضوع الذي يندرج تحته (مثل SQL أو الإجراء أو البحث أو SME). يقوم LLM بتصنيف المدخلات وتأخذ سلسلة توجيه LCEL هذا الإدخال.
  3. تحدد سلسلة جهاز التوجيه سلسلة الوجهة بناءً على الإدخال، ويتم تزويد LLM بمطالبة النظام التالية:
"""Given the user question below, classify it as one of the candidate prompts. You may want to modify the input considering the chat history and the context of the question. 
Sometimes the user may just assume that you have the context of the conversation and may not provide a clear input. Hence, you are being provided with the chat history for more context. 
Respond with only a Markdown code snippet containing a JSON object formatted EXACTLY as specified below. 
Do not provide an explanation to your classification beside the Markdown, I just need to know your decision on which destination and next_inputs
<candidate prompt>
physics: Good for answering questions about physics
sql: sql: Good for querying sql from AWS Athena. User input may look like: get me max or min for device x?
lambdachain: Good to execute actions with Amazon Lambda like shutting down a device or turning off an engine User input can be like, shutdown device x, or terminate process y, etc.
rag: Good to search knowledgebase and retrieve information about devices and other related information. User question can be like: what do you know about device x?
default: if the input is not well suited for any of the candidate prompts above. this could be used to carry on the conversation and respond to queries like provide a summary of the conversation
</candidate prompt>"""

يقوم LLM بتقييم سؤال المستخدم جنبًا إلى جنب مع سجل الدردشة لتحديد طبيعة الاستعلام ومجال الموضوع الذي يندرج تحته. يقوم LLM بعد ذلك بتصنيف المدخلات وإخراج استجابة JSON بالتنسيق التالي:

<Markdown>
```json
{{
"destination": string  name of the prompt to use
"next_inputs": string  a potentially modified version of the original input
}}
```

تستخدم سلسلة جهاز التوجيه استجابة JSON هذه لاستدعاء سلسلة الوجهة المقابلة. هناك أربع سلاسل وجهة خاصة بموضوع معين، ولكل منها موجه نظام خاص بها:

  1. يتم إرسال الاستعلامات المتعلقة بـ SQL إلى سلسلة وجهة SQL لتفاعلات قاعدة البيانات. يمكنك استخدام LCEL لبناء سلسلة SQL.
  2. تستدعي الأسئلة ذات التوجه العملي سلسلة وجهة Lambda المخصصة لتشغيل العمليات. مع LCEL، يمكنك تحديد ما يناسبك وظيفة مخصصة; في حالتنا، إنها وظيفة لتشغيل وظيفة Lambda محددة مسبقًا لإرسال بريد إلكتروني مع تحليل معرف الجهاز. قد يكون مثال إدخال المستخدم هو "إيقاف تشغيل الجهاز 1009".
  3. تنتقل الاستفسارات التي تركز على البحث إلى RAG سلسلة الوجهة لاسترجاع المعلومات.
  4. تنتقل الأسئلة المتعلقة بالشركات الصغيرة والمتوسطة إلى سلسلة وجهات الشركات الصغيرة والمتوسطة/الخبراء للحصول على رؤى متخصصة.
  5. تأخذ كل سلسلة وجهة المدخلات وتقوم بتشغيل النماذج أو الوظائف الضرورية:
    1. تستخدم سلسلة SQL Athena لتشغيل الاستعلامات.
    2. تستخدم سلسلة RAG خدمة OpenSearch للبحث الدلالي.
    3. تقوم سلسلة Lambda المخصصة بتشغيل وظائف Lambda للإجراءات.
    4. توفر سلسلة الشركات الصغيرة والمتوسطة/الخبراء رؤى باستخدام نموذج Amazon Bedrock.
  6. تتم صياغة الردود من كل سلسلة وجهة في رؤى متماسكة بواسطة LLM. يتم بعد ذلك تسليم هذه الرؤى إلى المستخدم، لاستكمال دورة الاستعلام.
  7. يتم تخزين مدخلات المستخدم واستجاباته في الأمازون DynamoDB لتوفير سياق LLM للدورة الحالية ومن التفاعلات السابقة. يتم التحكم في مدة المعلومات المستمرة في DynamoDB بواسطة التطبيق.

محة فنية

يوضح الرسم البياني التالي بنية حل التوجيه الديناميكي LangChain.

رسم تخطيطي لبنية حل التوجيه الديناميكي LangChain

تم إنشاء تطبيق الويب على Streamlit المستضاف على Amazon ECS مع Fargate، ويمكن الوصول إليه باستخدام Application Load Balancer. نحن نستخدم Anthropic's Claude v2.1 على Amazon Bedrock باعتباره LLM لدينا. يتفاعل تطبيق الويب مع النموذج باستخدام مكتبات LangChain. كما أنه يتفاعل مع مجموعة متنوعة من خدمات AWS الأخرى، مثل OpenSearch Service وAthena وDynamoDB لتلبية احتياجات المستخدمين النهائيين.

المميزات

يقدم هذا الحل الفوائد التالية:

  • تعقيد التنفيذ:
    • على الرغم من أنها تتطلب المزيد من التعليمات البرمجية والتطوير المخصص، إلا أن LangChain توفر قدرًا أكبر من المرونة والتحكم في منطق التوجيه والتكامل مع المكونات المختلفة.
    • تتطلب إدارة قواعد بيانات المتجهات مثل OpenSearch Service جهودًا إضافية في الإعداد والتكوين. يتم تنفيذ عملية التوجيه في التعليمات البرمجية.
    • قد يتضمن التكامل مع خدمات AWS مزيدًا من التعليمات البرمجية والتكوينات المخصصة.
  • تجربة المطور:
    • يمكن أن يكون نهج LangChain القائم على Python والوثائق الشاملة جذابة للمطورين المطلعين بالفعل على Python والأدوات مفتوحة المصدر.
    • قد يتطلب التطوير وتصحيح الأخطاء الفوري المزيد من الجهد اليدوي مقارنةً باستخدام وحدة تحكم Amazon Bedrock.
  • خفة الحركة والمرونة:
    • تدعم LangChain مجموعة واسعة من برامج LLM، مما يسمح لك بالتبديل بين النماذج أو مقدمي الخدمات المختلفين، مما يعزز المرونة.
    • تتيح طبيعة LangChain مفتوحة المصدر إجراء تحسينات وتخصيصات يقودها المجتمع.
  • الأمن:
    • باعتبارها إطار عمل مفتوح المصدر، قد تتطلب LangChain مراجعات أمنية وتدقيقًا أكثر صرامة داخل المؤسسات، مما قد يؤدي إلى زيادة النفقات العامة.

وفي الختام

يعد مساعدو الذكاء الاصطناعي للمحادثة أدوات تحويلية لتبسيط العمليات وتحسين تجارب المستخدم. استكشف هذا المنشور طريقتين قويتين باستخدام خدمات AWS: الوكلاء المُدارون لـ Amazon Bedrock والتوجيه الديناميكي المرن مفتوح المصدر LangChain. يتوقف الاختيار بين هذه الأساليب على متطلبات مؤسستك وتفضيلات التطوير ومستوى التخصيص المطلوب. بغض النظر عن المسار الذي تسلكه، تمكّنك AWS من إنشاء مساعدين أذكياء يعتمدون على الذكاء الاصطناعي ويُحدثون ثورة في تفاعلات الأعمال والعملاء

ابحث عن رمز الحل وأصول النشر في موقعنا مستودع جيثب، حيث يمكنك اتباع الخطوات التفصيلية لكل نهج من أساليب الذكاء الاصطناعي للمحادثة.


حول المؤلف

أمير حكمه هو مهندس حلول AWS ومقره في ولاية بنسلفانيا. وهو يتعاون مع بائعي البرامج المستقلين (ISVs) في المنطقة الشمالية الشرقية، ويساعدهم في تصميم وبناء منصات حديثة وقابلة للتطوير على سحابة AWS. بصفته خبيرًا في الذكاء الاصطناعي/التعلم الآلي والذكاء الاصطناعي التوليدي، يساعد أمير العملاء على إطلاق العنان لإمكانات هذه التقنيات المتطورة. وفي أوقات فراغه، يستمتع بركوب دراجته النارية وقضاء وقت ممتع مع عائلته.

شارون لي هو مهندس حلول AI/ML في Amazon Web Services ومقره في بوسطن، ولديه شغف لتصميم وبناء تطبيقات الذكاء الاصطناعي التوليدية على AWS. وهي تتعاون مع العملاء للاستفادة من خدمات AWS AI/ML للحصول على حلول مبتكرة.

كوثر كمال هو أحد كبار مهندسي الحلول في Amazon Web Services ويتمتع بخبرة تزيد عن 15 عامًا في مجال أتمتة البنية التحتية والأمان. إنه يساعد العملاء على تصميم وبناء حلول DevSecOps وAI/ML قابلة للتطوير في السحابة.

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟