فتح مستقبل الذكاء الاصطناعي مع GPT-4o: مقدمة شاملة للقدرات متعددة الوسائط

فريق نقطة
بواسطة فريق نقطة ·

جاري تحميل مشغل تحويل النص إلى كلام الصوتي...

صورة الغلاف

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

الخلفية

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

قدرات API الحالية

حالياً، يدعم GPT-4o API مدخلات النص والصورة مع مخرجات نصية، مشابهاً لـ GPT-4 Turbo. ومع ذلك، من المهم ملاحظة أنه من المتوقع إدخال وسائط إضافية، بما في ذلك الصوت، قريباً.

البداية

تثبيت OpenAI SDK لـ Python

لبدء استخدام قدرات GPT-4o، تحتاج أولاً إلى تثبيت OpenAI SDK لـ Python:

%pip install --upgrade openai --quiet

تكوين عميل OpenAI

قم بإعداد عميل OpenAI بإنشاء واستخدام مفتاح API. إذا لم يكن لديك مفتاح API، اتبع هذه الخطوات للحصول على واحد:

  1. أنشئ مشروعاً جديداً
  2. ولّد مفتاح API في مشروعك
  3. قم بإعداد مفتاح API كمتغير بيئي

بمجرد حصولك على مفتاح API، قم بتكوين عميل OpenAI:

from openai import OpenAI
import os
 
# تعيين مفتاح API واسم النموذج
MODEL="gpt-4o"
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY", ""))

إرسال طلب اختبار

لنبدأ بمدخل نصي بسيط:

completion = client.chat.completions.create(
    model=MODEL,
    messages=[
        {
            "role": "system",
            "content": "أنت مساعد مفيد. ساعدني في واجب الرياضيات!"
        },
        {
            "role": "user",
            "content": "مرحباً! هل يمكنك حل 2+2؟"
        }
    ]
)
 
print("المساعد: " + completion.choices[0].message.content)

المخرجات:

المساعد: بالطبع! 2 + 2 = 4. إذا كان لديك أي أسئلة أخرى، لا تتردد في السؤال!

معالجة الصور

يمكن لـ GPT-4o معالجة الصور واتخاذ إجراءات ذكية بناءً على محتوى الصورة. إليك كيفية توفير الصور بتنسيقين: Base64 المشفر و URL.

معالجة صور Base64

أولاً، معاينة الصورة ثم تشفيرها:

from IPython.display import Image, display, Audio, Markdown
import base64
 
IMAGE_PATH = "data/triangle.png"
# معاينة الصورة للسياق
display(Image(IMAGE_PATH))
 
# فتح ملف الصورة وتشفيرها كسلسلة base64
def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode("utf-8")
 
base64_image = encode_image(IMAGE_PATH)
response = client.chat.completions.create(
    model=MODEL,
    messages=[
        {
            "role": "system",
            "content": "أنت مساعد مفيد يرد بـ Markdown. ساعدني في واجب الرياضيات!"
        },
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "ما هي مساحة المثلث؟"},
                {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{base64_image}"}}
            ]
        }
    ],
    temperature=0.0
)
 
print(response.choices[0].message.content)

معالجة صور URL

يمكنك أيضاً إرسال صورة باستخدام URL:

response = client.chat.completions.create(
    model=MODEL,
    messages=[
        {
            "role": "system",
            "content": "أنت مساعد مفيد يرد بـ Markdown. ساعدني في واجب الرياضيات!"
        },
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "ما هي مساحة المثلث؟"},
                {"type": "image_url", "image_url":
                {
                    "url":
                    "https://example.com/triangle.png"
                    }
                }
            ]
        }
    ],
    temperature=0.0
)
 
print(response.choices[0].message.content)

معالجة الفيديو

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

إعداد معالجة الفيديو

أولاً، قم بتثبيت الحزم اللازمة:

%pip install opencv-python --quiet
%pip install moviepy --quiet

معالجة الفيديو إلى إطارات وصوت

import cv2
from moviepy.editor import VideoFileClip
import time
import base64
 
VIDEO_PATH = "data/keynote_recap.mp4"
 
def process_video(video_path, seconds_per_frame=2):
    base64Frames = []
    base_video_path, _ = os.path.splitext(video_path)
    video = cv2.VideoCapture(video_path)
    total_frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
    fps = video.get(cv2.CAP_PROP_FPS)
    frames_to_skip = int(fps * seconds_per_frame)
    curr_frame = 0
 
    while curr_frame < total_frames - 1:
        video.set(cv2.CAP_PROP_POS_FRAMES, curr_frame)
        success, frame = video.read()
        if not success:
            break
        _, buffer = cv2.imencode(".jpg", frame)
        base64Frames.append(base64.b64encode(buffer).decode("utf-8"))
        curr_frame += frames_to_skip
 
    video.release()
 
    audio_path = f"{base_video_path}.mp3"
    clip = VideoFileClip(video_path)
    clip.audio.write_audiofile(audio_path, bitrate="32k")
    clip.audio.close()
    clip.close()
 
    print(f"تم استخراج {len(base64Frames)} إطار")
    print(f"تم استخراج الصوت إلى {audio_path}")
 
    return base64Frames, audio_path
 
base64Frames, audio_path = process_video(VIDEO_PATH, seconds_per_frame=1)

توليد ملخصات بالبيانات المرئية والصوتية

ولّد ملخصاً شاملاً باستخدام الإطارات ونسخ الصوت:

# نسخ الصوت
transcription = client.audio.transcriptions.create(
    model="whisper-1",
    file=open(audio_path, "rb"),
)
 
# توليد ملخص باستخدام البيانات المرئية والصوتية
response = client.chat.completions.create(
    model=MODEL,
    messages=[
        {
            "role": "system",
            "content": """أنت تولد ملخص فيديو.
            أنشئ ملخصاً للفيديو المقدم ونسخته. أجب بـ Markdown"""
        },
        {
            "role": "user",
            "content": [
                "هذه هي إطارات الفيديو.",
                *map(lambda x: {"type": "image_url",
                    "image_url":
                    {"url": f'data:image/jpg;base64,{x}', "detail": "low"}},
                base64Frames),
                {"type": "text", "text": f"نسخ الصوت هو: {transcription.text}"}
            ]
        }
    ],
    temperature=0,
)
 
print(response.choices[0].message.content)

الخلاصة

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

حالياً، يدعم GPT-4o في API مدخلات النص والصورة، مع توقع إضافة قدرات الصوت قريباً. دمج هذه القدرات المتقدمة في مشاريع تطوير الويب الخاصة بك يمكن أن يفتح أبعاداً جديدة من التفاعلات والوظائف التي يقودها الذكاء الاصطناعي.


المراجع


هل تريد قراءة المزيد من المقالات؟ تحقق من أحدث مقال لدينا على Maximizing Website Performance: Best Practices for Speed and Reliability.

ناقش مشروعك معنا

نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.

دعنا نجد أفضل الحلول لاحتياجاتك.