تعلم كيفية دمج بايثون مع 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 يتفاعل مع الخلفية الخاصة ببايثون للحصول على مساعدة ذكاء اصطناعي في الوقت الفعلي.