ثورة جديدة في تفاعلنا مع الذكاء الاصطناعي من خلال نموذج GPT-4o
شهد مجال الذكاء الاصطناعي تطورات هائلة في السنوات الأخيرة، وأتاحت النماذج اللغوية المتقدمة وأحدثها نموذج فور أومني GPT-4o من OpenAI وكلمة أومني واختصارها oهي كلمة لاتينية تعني شامل إشارة لتنوع أشكال البيانات التي يتعامل معها النموذج فقد فتح هذا النموذج فرصة جديدة في معالجة اللغة الطبيعية.
فالنماذج اللغوية الكبيرة (LLMs) التي تعد أدوات قوية قادرة على فهم النصوص المكتوبة وتصنيفها بدقة عالية أصبحت اليوم قادرة على فهم الحوارات والنصوص المنطوقة وفهم محتوى الصور ومقاطع الفيديو المرئية بنفس الكفاءة.
إتاحة نموذج GPT-4o للمطورين
أفضل ما في الأمر، أن شركة OpenAI قد أتاحت الوصول إلى واجهة برمجة التطبيقات API الخاصة بنموذج GPT-4o للمطورين للاستفادة منها في تطوير تطبيقاتهم.
كما أعلنت OpenAI أن GPT-4o يتضمن جودة وسرعة محسنة عبر أكثر من 50 لغة، مما يعد بتجربة ذكاء اصطناعي أكثر شمولاً وسهولة، وبسعر أرخص. كما ذكرت أن المشتركين في الخطة المدفوعة سيحصلون على سعة أكبر بخمس مرات مقارنة بالمستخدمين المجانيين.
كما ستطلق الشركة نسخة سطح المكتب من ChatGPT لتسهيل الاستدلال في الوقت الحقيقي عبر واجهات الصوت والرؤية والنص للجماهير.
كيفية استخدام واجهة برمجة تطبيقات GPT-4o
يتبع نموذج GPT-4o الجديد واجهة برمجة التطبيقات الموجودة للتكملة الحوارية من OpenAI، مما يجعله متوافقاً مع الإصدارات السابقة وسهل الاستخدام.
وإليك كود بلغة البرمجة بايثون للتعامل معه:
from openai import OpenAI
OPENAI_API_KEY = "<your-api-key>"
def openai_chat_resolve(response: dict, strip_tokens = None) -> str:
if strip_tokens is None:
strip_tokens = []
if response and response.choices and len(response.choices) > 0:
content = response.choices[0].message.content.strip()
if content is not None or content != '':
if strip_tokens:
for token in strip_tokens:
content = content.replace(token, '')
return content
raise Exception(f'Cannot resolve response: {response}')
def openai_chat_request(prompt: str, model_name: str, temperature=0.0):
message = {'role': 'user', 'content': prompt}
client = OpenAI(api_key=OPENAI_API_KEY)
return client.chat.completions.create(
model=model_name,
messages=[message],
temperature=temperature,
)
response = openai_chat_request(prompt="Hello!", model_name="gpt-4o-2024-05-13")
answer = openai_chat_resolve(response)
print(answer)
لنشرح الكود خطوة بخطوة:
- استوردت في البداية مكتبة OpenAI التي توفر الأدوات اللازمة للتفاعل مع واجهة برمجة التطبيقات الخاصة بـ OpenAI.
- قم قمت بتعيين مفتاح واجهة برمجة التطبيقات (API Key) باستخدام المتغير OPENAI_API_KEY الذي يخزن مفتاح واجهة برمجة التطبيقات (API Key) الخاص بك. وهنا عليك استبدال قيمة <your-api-key> بمفتاح واجهة برمجة التطبيقات الخاص بك الذي تحصل عليه من OpenAI.
- ثم عرفت دالة باسم openai_chat_resolve لايجاد الاستجابة من OpenAI وهي تملك وسيطي دخل حيث تمثل الاستجابة قائمة بالاستجابة التي نحصل عليها من OpenAI يمثل الوسيط response أما الوسيط strip_tokens (افتراضي: None) فيمثل قائمة من الرموز التي نرغب في إزالتها من النص المستلم.
تتم المعالجة كما يلي
- إذا كانت strip_tokens غير محددة، تعيّن لقائمة فارغة.
- نتحقق من أن الاستجابة تحتوي على اختيارات (choices) وأنها ليست فارغة.
- نستخرج محتوى الرسالة من الاستجابة ونزيل المسافات الزائدة باستخدام الدالة strip.
- إذا كانت هناك رموز محددة في strip_tokens نستبدلها في المحتوى.
الخرج من الدالة هو النص المستخرج من الاستجابة بعد معالجة الرموز وإذا لم نستخرج أي نص نرفع استثناء مع رسالة توضح المشكلة.
- عرفت بعد ذلك دالة باسم openai_chat_request لإرسال الطلب إلى OpenAI تستقبل كدخل الوسيط prompt وهو نص يمثل الرسالة أو النص الذي نود إرساله إلى النموذج. والوسيط model_name وهو نص يمثل اسم النموذج الذي نود استخدامه مثل gpt-4o-2024-05-13 وأخيرًا الوسيط temperature الذي يتحكم في مدى عشوائية الخرج، حيث أن القيمة الأقل تجعل النموذج أكثر حذرًا والقيمة الأعلى تجعله أكثر إبداعًا مع العلم أن قيمته الافتراضية تكون صفر.
- إنشاء رسالة مع دور user ومحتوى prompt.
- تهيئة عميل OpenAI باستخدام مفتاح API.
- إرسال الطلب للنموذج المحدد واستلام الاستجابة.
خرج الدالة هو الاستجابة التي يتم إرجاعها من OpenAI.
- أخيرًا نقوم بإرسال الطلب واستلام الاستجابة response وتخزينها في متغير answer بعد معالجتها وطباعتها على الشاشة وفي حالتنا استخدامنا openai_chat_request لإرسال النصHello للنموذج gpt-4o-2024-05-13 وعالجنا النص وطبعنا النص النهائي المستلم من النموذج.
ما هي أهم نماذج معالجة اللغة الطبيعية
- GPT-4o: gpt-4o-2024-05-13
- GPT-4: gpt-4-0613
- GPT-4-Turbo: gpt-4-turbo-2024-04-09
- Gemini 1.5 Pro: gemini-1.5-pro-preview-0409
- Gemini 1.0: gemini-1.0-pro-002
- Palm 2 Unicorn: text-unicorn@001