1. مقدمة عن نموذج رؤية GPT-4

نموذج رؤية GPT-4 (GPT-4V) هو نموذج ذكاء اصطناعي متعدد الوسائط تم تقديمه من قبل OpenAI، والذي يدمج قدرات الفهم البصري بناءً على GPT-4. على عكس النماذج التقليدية لمعالجة النصوص، يمكن لـ GPT-4V استقبال وتحليل محتوى الصور، وتوفير وصف لها، والرد على الأسئلة، والمشاركة في تفاعلات متعلقة بالصور.

أمثلة على التطبيقات:

  • التعرف والتصنيف للمنتجات: يمكن لمنصات التجارة الإلكترونية استخدام GPT-4V لتحديد وتوفير وصف لصور المنتجات، مما يساعد على تحسين أنظمة البحث والتوصيات.
  • مساعدة في اتخاذ القرارات الطبية: بينما GPT-4V غير مناسب لتشخيص الصور الطبية بشكل مباشر، إلا أنه يمكنه مساعدة الكوادر الطبية في فهم الصور الأولي وتنظيم البيانات.
  • التعليم والبحث العلمي: في التدريس والبحث العلمي، يمكن استخدام GPT-4V لتحليل الرسوم البيانية، ونتائج التجارب، وتفسير البيانات العلمية للصور تلقائيًا.
  • مراقبة وتحليل حركة المرور: من خلال تحليل صور مراقبة المرور، يمكن لـ GPT-4V مساعدة أنظمة إدارة المرور في الإبلاغ عن الحالة في الوقت الحقيقي وتحديد الحوادث.

2. مثال بسيط

فيما يلي مثال بسيط باستخدام طلب CURL لتوضيح كيفية استخدام نموذج رؤية GPT-4 لتحليل الصور:

معاملات طلب الواجهة البرمجية:

  • model: يحدد إصدار النموذج المراد استخدامه، في هذه الحالة "gpt-4-vision-preview".
  • messages: يحتوي على دور وتعريف المحتوى، حيث يمكن أن يتضمن المحتوى روابط نصوص وصور.
  • max_tokens: يحدد الحد الأقصى لطول توليف النص.

مثال طلب CURL:

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4-vision-preview",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "ماذا في هذه الصورة؟"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "رابط الصورة الخاصة بك"
            }
          }
        ]
      }
    ],
    "max_tokens": 300
  }'

مع الطلب أعلاه، قمنا بإرسال صورة إلى نموذج رؤية GPT-4 وطلبنا سؤال بسيط: "ماذا في هذه الصورة؟" سيقوم النموذج بتحليل محتوى الصورة وتقديم إجابة استنادًا إلى محتوى الصورة.

3. رفع الصور باستخدام ترميز Base64

في بعض الحالات، قد تحتاج إلى رفع ملف صورة محلي إلى نموذج رؤية GPT-4. في مثل هذه الحالات، يمكننا تضمين بيانات الصورة في طلب واجهة برمجة التطبيقات باستخدام ترميز base64.

مثال على كود Python:

import base64
import requests

api_key = "YOUR_OPENAI_API_KEY"

def encode_image(image_path):
  with open(image_path, "rb") as image_file:
    return base64.b64encode(image_file.read()).decode('utf-8')

image_path = "مسار_إلى_صورتك.jpg"

base64_image = encode_image(image_path)

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {api_key}"
}

payload = {
  "model": "gpt-4-vision-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "ما الذي في هذه الصورة؟"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

print(response.json())

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

4. التعامل مع إدخالات الصور المتعددة

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

مثال على إدخال صور متعددة:

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-4-vision-preview",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "ما الفرق في هذه الصور؟"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "عنوان URL للصورة الأولى",
            }
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "عنوان URL للصورة الثانية",
            }
          }
        ]
      }
    ],
    "max_tokens": 300
  }'

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

5. تعيين مستوى تفصيل تحليل الصور

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

  • منخفض: اختيار مستوى التفاصيل منخفض سيعطل النموذج عالي الدقة. سيتلقى هذا النموذج نسخة منخفضة الدقة من الصورة بحجم 512 بكسل × 512 بكسل وسيستخدم ميزانية تتكون من 65 رمزًا لتمثيل الصورة. هذا مناسب للسيناريوهات التي لا تتطلب تفاصيل عالية، مما يساعد في تحقيق وقت استجابة أسرع واستهلاك أقل للرموز المدخلة.

  • مرتفع: يتيح مستوى التفاصيل العالي للنموذج رؤية صورة منخفضة الدقة أولاً، ثم إنشاء نسخة مفصلة مقسمة بشكل مفصل في شبكة 512 بكسل استنادًا إلى حجم الصورة المدخلة. يتم تمثيل كل قص مفصل بميزانية ممددة تحتوي على 129 رمزًا (أي 65 رمزًا لكل قصة افتراضية).

  • تلقائي: سيحدد مستوى التفاصيل التلقائي ما إذا كان سيستخدم مستوى التفاصيل "منخفض" أم "مرتفع" استنادًا إلى حجم الصورة المدخلة.

توضح الشفرة التالية كيفية ضبط مستوى التفصيل:

import base64
import requests

api_key = "مفتاح_API_KEY الخاص بك"

image_path = "المسار_إلى_صورتك.jpg"

base64_image = base64.b64encode(open(image_path, "rb").read()).decode('utf-8')

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {api_key}"
}

payload = {
  "model": "gpt-4-vision-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "ماذا في هذه الصورة؟"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}",
            "detail": "مرتفع"  # تعيين مستوى التفاصيل إلى مرتفع
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

print(response.json())

6. فهم قيود النموذج وإدارة الصور

6.1. قيود النموذج

على الرغم من الوظائف القوية لنموذج GPT-4 البصري، إلا أنه ليس بدون قيود، وفهم هذه القيود أمر حاسم لاستخدامه لفهم الصور. إليك نظرة عامة على بعض القيود المعروفة:

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

  • النصوص غير الإنجليزية: قد لا يؤدي النموذج بشكل جيد عند معالجة الصور التي تحتوي على نصوص من الألفباء غير اللاتيني، مثل اليابانية أو الكورية.

  • التحديد المكاني الفضائي: أداء النموذج غير مثلى في المهام التي تتطلب ارتباطات دقيقة للمواقع الفضائية، مثل تحديد مواقع القطع على لوحة الشطرنج.

  • تفاصيل الصورة: قد يواجه النموذج صعوبة في فهم الرسوم البيانية أو النصوص مع تباينات الألوان والأنماط (على سبيل المثال، خطوط صلبة، خطوط متقطعة) في الصورة.

  • دوران الصورة: قد يفهم النموذج النصوص والصور المعوجة أو المقلوبة بشكل خاطئ.

6.2 إدارة الصور في الجلسات

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

additional_payload = {
  "model": "gpt-4-vision-preview",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "بناءً على هذه الصورة، ما الاقتراحات التي لديك؟"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}

new_response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=additional_payload)

print(new_response.json())

7. حساب التكلفة

كل صورة تستخدم الخيار تفاصيل: منخفضة تستهلك 85 رمزًا ثابتًا. بالنسبة للصور التي تستخدم الخيار تفاصيل: عالية، يتم تغيير حجم الصورة أولاً نسبيًا لتناسب حجم 2048 بكسل × 2048 بكسل، ثم يتم ضمان أن يكون الجانب الأقصر من الصورة 768 بكسل. بعد ذلك، يتم تقسيم الصورة إلى عدة مربعات بحجم 512 بكسل، حيث تستهلك كل مربع 170 رمزًا، ويتم إضافة 85 رمزًا إضافيًا إلى الإجمالي النهائي.

على سبيل المثال، إذا كانت لديك صورة ذات أبعاد 1024 بكسل × 1024 بكسل واخترت الخيار تفاصيل: عالية، فستكون تكلفة الرموز كالتالي:

  • أولاً، نظرًا لأن 1024 أقل من 2048، فإنه لا يوجد تكييف حجم أولي.
  • ثم، بالنظر إلى الجانب الأقصر الذي يبلغ 1024، يتم تغيير حجم الصورة إلى 768 بكسل × 768 بكسل.
  • تحتاج 4 مربعات بحجم 512 بكسل لتمثيل الصورة، لذا ستكون تكلفة الرموز النهائية 170 * 4 + 85 = 765.

لفهم مفصل لطريقة حساب التكلفة، يرجى الرجوع إلى وثائق نموذج GPT-4 Vision.

8. الأسئلة المتداولة

فيما يلي بعض الأسئلة الشائعة وإجاباتها التي قد يواجهها المستخدمون عند استخدام نموذج GPT-4 Vision:

س: هل يمكنني ضبط قدرات الصور لـ gpt-4؟

ج: حاليًا، لا ندعم ضبط قدرات الصور لـ gpt-4.

س: هل يمكنني استخدام gpt-4 لإنشاء الصور؟

ج: لا، يمكنك استخدام dall-e-3 لإنشاء الصور واستخدام gpt-4-vision-preview لفهم الصور.

س: ما هي أنواع رفع الملفات المدعومة؟

ج: ندعم حاليًا ملفات PNG (.png)، JPEG (.jpeg و .jpg)، WEBP (.webp)، وملفات الصور غير المتحركة GIF (.gif).