دمج بايثون مع Meta Llama 3 للذكاء الاصطناعي

Share:
درس تقني متوسط ⏱ ٤٥ دقيقة قراءة © بوابة الذكاء الاصطناعي ٢٠٢٦-٠٦-١٧

تعلم كيفية دمج بايثون مع Meta Llama 3 لبناء تطبيقات ذكاء اصطناعي قوية. يغطي هذا الدرس التقني الإعداد، دمج API، والتطبيقات العملية.

المتطلبات الأساسية

  • بايثون ٣.٩ أو أعلى
  • مفتاح API لـ Meta Llama 3
  • فهم أساسي لمفاهيم بايثون والذكاء الاصطناعي

ما الذي سنبنيه

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

بحلول نهاية هذا الدرس، سيكون لديك تطبيق يعمل يمكن أن يكون أساسًا لحلول أكثر تعقيدًا مدفوعة بالذكاء الاصطناعي. سيظهر هذا التطبيق استخدام API لـ Meta Llama 3 لمهام معالجة اللغة الطبيعية، مما يبرز إمكاناته في التطبيقات الواقعية، بما في ذلك تلك المتعلقة بمبادرات التحول الرقمي في منطقة الخليج مثل رؤية السعودية ٢٠٣٠.

الإعداد والتثبيت

لبدء العمل، نحتاج إلى إعداد بيئة التطوير لدينا عن طريق تثبيت مكتبات بايثون الضرورية وتكوين الوصول إلى API لـ Meta Llama 3. يتضمن ذلك تثبيت بعض الحزم وإعداد متغيرات البيئة.

pip install torch torchtune requests

بعد ذلك، نحتاج إلى تكوين متغيرات البيئة لدينا لتخزين مفاتيح API والمعلومات الحساسة الأخرى بشكل آمن. أنشئ ملف .env في دليل المشروع الخاص بك وأضف ما يلي:


    META_LLAMA3_API_KEY=your_api_key_here
    

تأكد من استبدال your_api_key_here بمفتاح API الفعلي الخاص بك من Meta Llama 3.

الخطوة ١: الاتصال بـ Meta Llama 3 API

في هذه الخطوة، سنكتب سكربت بايثون لإنشاء اتصال مع API لـ Meta Llama 3. سيسمح لنا هذا الاتصال بإرسال الطلبات واستقبال الردود من نموذج Llama 3.


    import os
    import requests
    from dotenv import load_dotenv

    # Load environment variables
    load_dotenv()

    # Retrieve the API key
    API_KEY = os.getenv('META_LLAMA3_API_KEY')
    BASE_URL = 'https://api.meta.com/llama3/v1'

    # Function to make a request to the Llama 3 API
    def query_llama3(prompt):
        headers = {
            'Authorization': f'Bearer {API_KEY}',
            'Content-Type': 'application/json'
        }
        data = {
            'prompt': prompt,
            'max_tokens': 150
        }
        response = requests.post(f'{BASE_URL}/completions', headers=headers, json=data)
        return response.json()

    # Test the function
    result = query_llama3("What is the capital of France?")
    print(result)
    

في هذا الكود، نبدأ بتحميل متغيرات البيئة باستخدام مكتبة dotenv، وهو أمر ضروري للحفاظ على أمان مفاتيح API الخاصة بنا. ثم نحدد دالة query_llama3 التي تأخذ استفسارًا كمدخل، وترسله إلى API لـ Llama 3، وتعيد الرد. تتعامل الدالة مع المصادقة عن طريق تضمين مفتاح API في رؤوس الطلب.

الخطوة ٢: معالجة الردود

بمجرد أن نحصل على الرد الخام من API لـ Llama 3، نحتاج إلى معالجته لاستخراج المعلومات المفيدة. تتضمن هذه الخطوة تحليل الرد بصيغة JSON والتعامل مع أي أخطاء محتملة.


    def process_response(response):
        try:
            # Check for errors in the response
            if response.get('error'):
                print(f"Error: {response['error']['message']}")
                return None

            # Extract the text from the response
            text = response['choices'][0]['text'].strip()
            return text
        except KeyError as e:
            print(f"KeyError: {e}")
            return None

    # Example usage
    raw_response = query_llama3("Tell me a joke.")
    processed_text = process_response(raw_response)
    print(processed_text)
    

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

الخطوة ٣: بناء واجهة التطبيق

في هذه الخطوة، سنقوم بإنشاء واجهة سطر أوامر بسيطة (CLI) لتطبيقنا. ستسمح هذه الواجهة للمستخدمين بإدخال استفساراتهم والحصول على ردود من نموذج Llama 3 في الوقت الفعلي.


    def main():
        print("Welcome to the Meta Llama 3 AI assistant!")
        while True:
            user_input = input("You: ")
            if user_input.lower() in ['exit', 'quit']:
                print("Goodbye!")
                break

            # Query the Llama 3 API
            raw_response = query_llama3(user_input)
            processed_text = process_response(raw_response)

            # Display the response
            if processed_text:
                print(f"Llama 3: {processed_text}")
            else:
                print("Sorry, I couldn't process your request.")

    if __name__ == "__main__":
        main()
    

يقوم هذا الكود بإعداد حلقة مستمرة تسمح للمستخدمين بالتفاعل مع التطبيق حتى يقرروا الخروج. يتعامل مع إدخال المستخدم، ويستعلم API لـ Llama 3، ويعرض رد النموذج. يمكن توسيع هذه الواجهة البسيطة إلى واجهة أكثر تطورًا مع ميزات إضافية في المستقبل.

⚠️ خطأ شائع: تأكد من تحميل متغيرات البيئة بشكل صحيح. مشكلة شائعة هي عدم وجود ملف .env في الدليل الصحيح، مما يؤدي إلى قيم None لمفاتيح API الخاصة بك.

اختبار تنفيذك

للتحقق من أن تطبيقك يعمل بشكل صحيح، قم بتشغيل السكربت وحاول إدخال استفسارات متنوعة. يجب أن ترى ردودًا مناسبة من نموذج Llama 3. إذا واجهت أي مشاكل، تحقق من مفتاح API الخاص بك واتصال الشبكة.

python your_script_name.py

ما الذي يجب بناؤه بعد ذلك

  • دمج التطبيق مع واجهة ويب باستخدام Flask أو Django لجعله متاحًا عبر الإنترنت.
  • تعزيز التطبيق بقدرات فهم اللغة الطبيعية باستخدام مكتبات NLP إضافية مثل SpaCy أو NLTK.
  • تطوير تطبيق جوال باستخدام React Native أو Flutter يتفاعل مع الخلفية الخاصة ببايثون للحصول على مساعدة ذكاء اصطناعي في الوقت الفعلي.
Share:

هل كان هذا الشرح مفيداً؟