التحدث أمام الجمهور - معلمه - مساعده
يمكنك العثور على المدونة ذات الصلة بهذا المستودع هنا: تحسين مهارات التحدث أمام الجمهور باستخدام مساعد افتراضي قائم على الذكاء الاصطناعي مع Amazon Bedrock
تحذير
هذا المثال للأغراض التجريبية فقط وليس جاهزًا للإنتاج. قد يؤدي نشر هذه العينة إلى تحمل تكاليف . يرجى التأكد من إزالة البنية التحتية من خلال التعليمات المقدمة في النهاية عندما لا تكون هناك حاجة إليها بعد الآن.
تحسين مهارات التحدث أمام الجمهور باستخدام مساعد افتراضي قائم على GenAI مع Amazon Bedrock
يعد التحدث أمام الجمهور مهارة بالغة الأهمية في عالم اليوم، سواء كان ذلك للعروض التقديمية المهنية، أو الإعدادات الأكاديمية، أو النمو الشخصي. ومع ذلك، يعاني العديد من الأفراد من القلق وانعدام الثقة والتواصل غير الفعال أثناء التحدث أمام الجمهور. إن تعيين مدرب للتحدث أمام الجمهور أمر مكلف ومحدود التوفر. الآن، مع ظهور نماذج اللغات الكبيرة (LLMs)، يمكن للأفراد من خلفيات ومواقع متنوعة استخدام المساعد الافتراضي المدعوم بالذكاء الاصطناعي، بالإضافة إلى المؤسسات من أي حجم للاستفادة من تحليل الكلام في الوقت الفعلي، وتحديد المناطق. للتحسين، ومقترحات لتحسين إلقاء الكلام.
في هذا الريبو، نقدم مساعدًا افتراضيًا مدعومًا من Amazon Bedrock يمكنه نسخ الصوت في خطاب العرض التقديمي وفحصه لاستخدام اللغة والأخطاء النحوية وكلمات الحشو وتكرار الكلمات والجمل وما إلى ذلك وتقديم توصيات بالإضافة إلى اقتراح نسخة منسقة من خطاب المستخدم لتحسين العرض التقديمي. يساعد هذا الحل على صقل مهارات الاتصال وتعزيز الثقة وتمكين الأفراد في نهاية المطاف ليصبحوا متحدثين أكثر فعالية وتأثيرًا. يمكن للمؤسسات عبر مختلف القطاعات، بما في ذلك الشركات والمؤسسات التعليمية والهيئات الحكومية وشخصيات وسائل التواصل الاجتماعي، الاستفادة من هذا الحل لتوفير تدريب آلي لموظفيها وطلابها والمشاركين في التحدث أمام الجمهور.
هذا الحل مكتوب بلغة python فقط، ويستخدم قالب CDK لنشر البنية التحتية المطلوبة على AWS.
نظرة عامة على الحل
يتكون الحل من 4 مكونات رئيسية:
- مجمع مستخدمي Amazon Cognito لمصادقة المستخدم - يتم منح المستخدمين المصادقين حق الوصول إلى بوابة الويب لمساعد Public Talking Mentor AI Assistant لتحميل تسجيلات الصوت/الفيديو
- بوابة ويب بسيطة تم إنشاؤها باستخدام Streamlit لتحميل تسجيلات الصوت/الفيديو - يتم تخزين الملفات التي تم تحميلها في مجموعة Amazon Simple Storage Service (Amazon S3) للمعالجة والاسترجاع والتحليل لاحقًا.
- سير عمل AWS Step Functions لتنسيق تحويل الصوت إلى نص باستخدام Amazon Transcribe ثم استدعاء Amazon Bedrock مع تسلسل مطالبات الذكاء الاصطناعي لإنشاء توصيات الكلام وإعادة كتابة الاقتراحات.
- Amazon Simple Notification Service (Amazon SNS) لإرسال إشعار بالبريد الإلكتروني إلى المستخدم مع توصيات Amazon Bedrock التي تم إنشاؤها.
يستفيد هذا الحل من خدمة Amazon Transcribe لتحويل الكلام إلى نص من خلال التعرف التلقائي على الكلام. عندما يقوم المستخدم بتحميل ملف صوتي أو فيديو، تقوم Amazon Transcribe بنسخ الكلام إلى نص، والذي يتم بعد ذلك تمريره كبيانات إدخال إلى نموذج Anthropic Claude 3.5 Sonnet المستضاف على Amazon Bedrock. يرسل الحل مطلبين إلى Amazon Bedrock مع النص المكتوب. الموجه الأول هو توليد تعليقات وتوصيات بشأن استخدام اللغة، والأخطاء النحوية، وكلمات الحشو، وتكرار الكلمات والجمل، وجوانب أخرى من الكلام. المطلب الثاني هو الحصول على نسخة منسقة من الكلام الأصلي للمستخدم. يتم إجراء تسلسل مطالبات الذكاء الاصطناعي باستخدام Amazon Bedrock لهذين الموجهين لتقديم استجابة منسقة للغاية. في نهاية المطاف، يقوم الحل بدمج المخرجات من كل من المطالبات، ويعرض التوصيات الشاملة المستمدة من استخدام Amazon Bedrock على صفحة الويب الخاصة بالمستخدم بالإضافة إلى إرسال رسائل بريد إلكتروني إلى المستخدم تتضمن النتائج. حاليًا، يدعم هذا الحل كلام المستخدم باللغة الإنجليزية فقط.
بنيان
يوضح الرسم البياني التالي بنية الحل لدينا.
دعنا نستكشف الهندسة المعمارية خطوة بخطوة:
- يقوم المستخدم بالمصادقة على بوابة الويب Public Talking Mentor AI Assistant (تطبيق Streamlit مستضاف على سطح المكتب المحلي للمستخدم) باستخدام آلية مصادقة مجمع مستخدمي Amazon Cognito.
- يقوم المستخدم بتحميل ملف صوت/فيديو إلى بوابة الويب، والذي يتم تخزينه في حاوية Amazon S3 المشفرة.
- تقوم خدمة S3 بتشغيل حدث s3:ObjectCreated لكل ملف يتم حفظه في المجموعة.
- يستدعي Amazon EventBridge سير عمل AWS Step Functions بناءً على هذا الحدث.
- يستخدم سير عمل AWS Step Functions تكاملات AWS SDK لاستدعاء Amazon Transcribe وبدء StartTranscriptionJob، وتمرير حاوية S3 ومسار البادئة واسم الكائن في معلمة MediaFileUri. ينتظر سير العمل حتى تكتمل مهمة النسخ ويحفظ النص في مسار بادئة حاوية S3 آخر.
- يستخدم سير عمل AWS Step Functions بعد ذلك عمليات التكامل المحسنة لاستدعاء واجهة برمجة تطبيقات InvocModel الخاصة بـ Amazon Bedrock، والتي تحدد نموذج Anthropic Claude 3.5 Sonnet، وموجه النظام، والحد الأقصى من الرموز المميزة، ونص الكلام المكتوب كمدخلات إلى واجهة برمجة التطبيقات. يقوم موجه النظام بتوجيه كلود لتقديم اقتراحات حول كيفية تحسين الكلام عن طريق تحديد القواعد النحوية غير الصحيحة، وتكرار الكلمات أو المحتوى، واستخدام كلمات الحشو، وغيرها من التوصيات.
مهم
لتجنب الوقوع في قيود حجم الحمولة النافعة لـ StepFunctions البالغة 256 كيلو بايت، نستخدم عمليات تكامل AWS Lambda المحسنة في Step Functions لحفظ الحمولة النافعة لمعلمات استنتاج Bedrock في حاوية S3. تقوم وظيفة AWS Lambda بإنشاء الحمولات المطلوبة وحفظها في حاوية S3 معينة. تستخدم Step Functions بعد ذلك مسار حاوية S3 في معلمة input
الخاصة بـ Bedrock InvocModel API - هذا الحقل الاختياري خاص بالتكامل الأمثل لـ Amazon Bedrock مع Step Functions. وهذا يسمح لنا بتمرير حمولات أكبر من 256 كيلو بايت.
- بعد تلقي رد من Amazon Bedrock، يستخدم سير عمل AWS Step Functions التسلسل الفوري لصياغة إدخال آخر لـ Amazon Bedrock، بما في ذلك الخطاب المكتوب السابق، والاستجابة السابقة للنموذج، ومطالبة النموذج بتقديم اقتراحات لإعادة كتابة الخطاب.
- وأخيرًا، يجمع سير العمل هذه المخرجات من Amazon Bedrock، ويشكل رسالة يتم عرضها على صفحة الويب الخاصة بالمستخدم الذي قام بتسجيل الدخول.
- في النهاية، يستدعي سير عمل Step Functions التكامل الأمثل للنشر في SNS لإرسال بريد إلكتروني إلى المستخدم يتضمن الرسالة التي تم إنشاؤها بواسطة Bedrock.
- استعلامات التطبيق Streamlit Step Functions لعرض نتائج الإخراج على صفحة الويب الخاصة بمستخدم Cognito.
وظائف الخطوة آلة الدولة
يوضح الرسم البياني التالي سير عمل Step Functions State Machine. يمكنك أيضًا الوصول إلى لغة Amazon States Language (ASL) المكافئة لتعريف جهاز الحالة هنا - PublicSpeakingMentorAIAssistantStateMachine ASL
تثبيت
المتطلبات الأساسية
لتنفيذ حل مساعد الذكاء الاصطناعي للمتحدث العام، يجب أن يكون لديك المتطلبات الأساسية التالية:
حساب AWS يتمتع بأذونات AWS Identity and Access Management (IAM) الكافية لخدمات AWS المذكورة أدناه لنشر الحل وتشغيل بوابة ويب تطبيق Streamlit.
- أمازون بيدروك
- أمازون نسخ
- وظائف خطوة AWS
- أوس لامدا
- أمازون إيفنت بريدج
- أمازون كوجنيتو
- أمازون إس إن إس
- أمازون إس 3
- أمازون كلاودواتش
- AWS كلاودفورميشن
تم تمكين الوصول إلى النموذج لـ Anthropic's Claude 3.5 Sonnet في Amazon Bedrock في منطقة AWS التي تريدها
بيئة سطح المكتب المحلية مع AWS CLI (واجهة سطر الأوامر)، وأحدث إصدار من AWS CDK (2.159.0 أو أعلى)، وPython 3.8 أو أعلى، وGit مثبتة.
إعداد AWS CLI ببيانات اعتماد AWS الضرورية ومنطقة AWS المطلوبة.
مهم
يرجى التأكد من تثبيت أحدث إصدار من CDK (الإصدار 2.159.0 أو أعلى) لأن دعم إنشاء Anthropic Claude 3.5 Sonnet CDK غير متوفر في الإصدارات السابقة.
قم بنشر حل مساعد الذكاء الاصطناعي Mentor للتحدث أمام الجمهور
أكمل الخطوات التالية لنشر البنية التحتية لـ Public Talking Mentor AI Assistant AWS:
- انسخ المستودع إلى بيئة القرص المحلي لديك باستخدام الأمر التالي:
git clone https://github.com/aws-samples/improve_public_speaking_skills_using_a_genai_based_virtual_assistant_with_amazon_bedrock.git
- قم بتغيير الدليل إلى المستودع المستنسخ ودليل
app
بداخله.
cd improve_public_speaking_skills_using_a_genai_based_virtual_assistant_with_amazon_bedrock/app
- إنشاء بيئة افتراضية بيثون للأشعة تحت الحمراء:
- قم بتنشيط بيئتك الافتراضية:
source .venv/bin/activate
- تثبيت التبعيات المطلوبة
pip install -r requirements.txt
- (اختياري) قم بتجميع قالب AWS CloudFormation باستخدام AWS CDK (Cloud Development Kit) لـ Python.
نصيحة
قد تحتاج إلى تنفيذ عملية تمهيد cdk مرة واحدة باستخدام الأمر التالي. راجع CDK Bootstrapping لمزيد من التفاصيل.
cdk bootstrap aws:// < ACCOUNT-NUMBER- 1> / < REGION- 1>
- انشر قالب AWS CloudFormation في حساب AWS الخاص بك والمنطقة المحددة
بمجرد نشر CDK بنجاح، اتبع الخطوات أدناه لإنشاء مستخدم Cognito.
قم بإنشاء مستخدم Amazon Cognito للمصادقة
أكمل الخطوات التالية لإنشاء مستخدم/مستخدمين في مجمع مستخدمي Amazon Cognito للوصول إلى بوابة الويب. لا يحتاج المستخدمون الذين تم إنشاؤهم إلى أي أذونات AWS:
- قم بتسجيل الدخول إلى وحدة تحكم AWS الخاصة بحسابك وحدد منطقة AWS الخاصة بالنشر الخاص بك.
- في Amazon Cognito ضمن مجمعات المستخدمين، انقر فوق مجمع المستخدمين الذي تم إنشاؤه بواسطة قالب CloudFormation. سيكون لاسم تجمع المستخدمين بادئة PSMBUserPool متبوعة بسلسلة من الأحرف العشوائية ككلمة واحدة.
- انقر على زر إنشاء مستخدم وأدخل اسم المستخدم وكلمة المرور.
- وأخيرا انقر على زر إنشاء مستخدم في أسفل اليمين.
اشترك في موضوع SNS للحصول على إشعارات البريد الإلكتروني
أكمل الخطوات التالية للاشتراك في موضوع SNS لتلقي إشعارات البريد الإلكتروني لتوصيات الكلام:
- قم بتسجيل الدخول إلى وحدة تحكم AWS الخاصة بحسابك وحدد منطقة AWS الخاصة بالنشر الخاص بك.
- في Amazon SNS ضمن المواضيع، انقر فوق الموضوع الذي أنشأه قالب CloudFormation. يجب أن يبدو اسم الموضوع مثل InfraStack-PublicSpeakingMentorAIAssistantTopic متبوعًا بسلسلة من الأحرف العشوائية ككلمة واحدة.
- انقر فوق زر إنشاء اشتراك، وحدد البروتوكول كبريد إلكتروني من القائمة المنسدلة وأدخل عنوان بريدك الإلكتروني في مربع نقطة النهاية.
- وأخيرا انقر على زر إنشاء الاشتراك في أسفل اليمين.
قم بتشغيل تطبيق Streamlit للوصول إلى بوابة الويب
أكمل الخطوات التالية لتشغيل تطبيق Streamlit للوصول إلى بوابة الويب Public Talking Mentor AI Assistant:
- قم بتغيير الدليل إلى
webapp
داخل دليل app
.
- قم بتشغيل الخادم المبسط على المنفذ 8080.
streamlit run webapp.py --server.port 8080
- قم بتدوين عنوان URL لتطبيق Streamlit لمزيد من الاستخدام. اعتمادًا على إعداد البيئة لديك، يمكنك اختيار أحد عناوين URL من بين ثلاثة عناوين URL (محلية أو شبكة أو خارجية) توفرها عملية تشغيل خادم Streamlit.
Note: Allow inbound traffic on port 8080
تأكد من السماح بحركة المرور الواردة على المنفذ 8080 على جهازك المحلي.
الاستخدام
اتبع الخطوات أدناه لاستخدام Public Talking Mentor AI Assistant لتحسين خطابك:
- افتح عنوان URL لتطبيق Streamlit في متصفحك (يفضل Google Chrome) الذي لاحظته في الخطوات السابقة.
- قم بتسجيل الدخول إلى بوابة الويب باستخدام اسم مستخدم Amazon Cognito وكلمة المرور التي تم إنشاؤها مسبقًا للمصادقة.
- قم بتحميل تسجيل الصوت/الفيديو الخاص بك للحصول على توصيات الكلام ونتائج إعادة كتابة الكلام.
- انقر فوق "استعراض الملفات" لتحديد موقع التسجيل الخاص بك وتحديده.
- انقر فوق الزر "تحميل ملف" لتحميل ملفك إلى مجموعة Amazon S3.
- بمجرد انتهاء تحميل الملف، يقوم مساعد الذكاء الاصطناعي للمتحدث العام بمعالجة النسخ الصوتي والخطوات الهندسية السريعة لإنشاء توصيات الكلام وإعادة كتابة النتائج.
- بمجرد اكتمال المعالجة، ستتمكن من رؤية توصيات الكلام ونتائج إعادة كتابة الكلام على صفحة الويب بالإضافة إلى استلام بريدك الإلكتروني عبر إشعارات Amazon SNS.
- على الجانب الأيمن من صفحة الويب، يمكنك مراجعة جميع خطوات المعالجة التي يقوم بها حل Public Talking Mentor AI Assistant للحصول على نتائج خطابك.
تنظيف
أكمل الخطوات التالية لتنظيف مواردك:
- قم بإنهاء عملية خادم التطبيق Streamlit التي تعمل في بيئتك باستخدام عملية Ctrl+C.
- قم بالتغيير إلى دليل
app
في مستودعك. - قم بتدمير AWS CloudFormation باستخدام AWS CDK لـ Python.
بعض القيود
- المقصود من الكود المقدم هو أن يكون عرضًا توضيحيًا ونقطة بداية، وليس جاهزًا للإنتاج. يعتمد تطبيق Python على مكتبات الطرف الثالث مثل Streamlit وstreamlit-cognito-auth. باعتبارك المطور، تقع على عاتقك مسؤولية فحص جميع تبعيات الطرف الثالث وصيانتها واختبارها بشكل صحيح. وينبغي تقييم آليات المصادقة والترخيص بشكل شامل. بشكل عام، يجب عليك إجراء مراجعات واختبارات أمنية قبل دمج هذا الكود التجريبي في تطبيق الإنتاج أو مع البيانات الحساسة.
- في هذا العرض التوضيحي، يتوفر Amazon Cognito في تكوين بسيط. لاحظ أنه يمكن تكوين مجموعات مستخدمي Amazon Cognito لفرض سياسات كلمة مرور قوية، وتمكين المصادقة متعددة العوامل، وتعيين AdvancedSecurityMode على ENFORCED لتمكين النظام من اكتشاف محاولات تسجيل الدخول الضارة والتصرف بناءً عليها.
- توفر AWS خدمات متنوعة، لم يتم تنفيذها في هذا العرض التوضيحي، يمكنها تحسين أمان هذا التطبيق. يمكن لخدمات أمان الشبكة مثل قوائم ACL للشبكة وAWS WAF التحكم في الوصول إلى الموارد. يمكنك أيضًا استخدام AWS Shield للحماية من DDoS وAmazon GuardDuty لاكتشاف التهديدات. يقوم Amazon Inspector بإجراء تقييمات الأمان. هناك العديد من خدمات AWS وأفضل الممارسات التي يمكن أن تعزز الأمان - راجع نموذج المسؤولية المشتركة في AWS وإرشادات أفضل ممارسات الأمان للحصول على توصيات إضافية. ويكون المطور مسؤولاً عن تنفيذ هذه الخدمات وتكوينها بشكل صحيح لتلبية متطلبات الأمان الخاصة به.
- يوصى بالتناوب المنتظم للأسرار، ولم يتم تنفيذه في هذا العرض التوضيحي.
شكر وتقدير
معظم التعليمات البرمجية لتطبيق الويب AWS Step Functions Streamlit مستوحاة من نماذج AWS github repo التالية: Deploy-streamlit-app
حماية
انظر المساهمة لمزيد من المعلومات.
رخصة
هذه المكتبة مرخصة بموجب ترخيص MIT-0. انظر ملف الترخيص.