إنشاء نص من طلبات متعددة الوسائط باستخدام Gemini API


عند طلب Gemini API من تطبيقك باستخدام حزمة تطوير برامج Vertex AI in Firebase SDK، يمكنك توجيه نموذج Gemini لإنشاء نص استنادًا إلى إدخال متعدد الوسائط. يمكن أن تتضمّن الطلبات المتعدّدة الوسائط وسائط متعددة (أو أنواعًا من الإدخال)، مثل النصوص والصور وملفات PDF والملفات النصية العادية والفيديوهات والمقاطع الصوتية.

في كل طلب متعدد الوسائط، يجب دائمًا تقديم ما يلي:

  • حجم الملف هو mimeType. اطّلِع على أنواع MIME المتوافقة لكل ملف إدخال.

  • الملف يمكنك تقديم الملف كبيانات مضمّنة (كما هو موضّح في هذه الصفحة) أو باستخدام عنوان URL أو معرّف الموارد المنتظم (URI).

لاختبار طلبات التفاعل المتعدّد وتحسينها، ننصحك باستخدام Vertex AI Studio.

قبل البدء

يُرجى إكمال دليل بدء استخدام حِزم تطوير البرامج (SDK) Vertex AI in Firebase إذا لم يسبق لك ذلك. تأكَّد من تنفيذ كلّ ما يلي:

  1. إعداد مشروع جديد أو حالي على Firebase، بما في ذلك استخدام خطة أسعار Blaze وتفعيل واجهات برمجة التطبيقات المطلوبة

  2. ربط تطبيقك بمنصّة Firebase، بما في ذلك تسجيل تطبيقك وإضافة إعدادات Firebase إلى تطبيقك

  3. أضِف حزمة تطوير البرامج (SDK) وابدأ إعداد خدمة Vertex AI والنموذج التوليدي في تطبيقك.

بعد ربط تطبيقك بمنصّة Firebase وإضافة حزمة تطوير البرامج (SDK) وإعداد خدمة Vertex AI والنموذج التوليدي، سيكون بإمكانك استدعاء Gemini API.

إنشاء نص من نص وصورة واحدة إنشاء نص من نص وصور متعدّدة إنشاء نص من نص وفيديو

نماذج ملفات الوسائط

إذا لم يكن لديك ملفات وسائط، يمكنك استخدام الملفات التالية المتاحة بشكل علني:

إنشاء نص من نص وصورة واحدة

تأكَّد من إكمال قسم قبل البدء في هذا الدليل قبل تجربة هذا العيّنة.

يمكنك الاتصال بخدمة Gemini API باستخدام طلبات متعددة الوسائط تتضمّن كلّ من النص وملف واحد (مثل صورة، كما هو موضّح في هذا المثال). لإجراء هذه المكالمات، عليك استخدام نموذج يتيح استخدام الوسائط في الطلبات (مثل Gemini 1.5 Flash).

احرص على مراجعة المتطلبات والاقتراحات المتعلّقة بملفات الإدخال.

اختَر ما إذا كنت تريد بث الردّ (generateContentStream) أو الانتظار لتلقّي الردّ إلى أن يتم إنشاء النتيجة بالكامل (generateContent).

البث

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

يوضّح هذا المثال كيفية استخدام رمز العميل generateContentStream() لبث النص الذي تم إنشاؤه من طلب طلب متعدد الوسائط يتضمّن نصًا وصورة واحدة:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")

guard let image = UIImage(systemName: "bicycle") else { fatalError() }

// Provide a text prompt to include with the image
let prompt = "What's in this picture?"

// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image, prompt)
for try await chunk in contentStream {
  if let text = chunk.text {
    print(text)
  }
}

بدون بث

بدلاً من ذلك، يمكنك الانتظار إلى أن تظهر النتيجة بالكامل بدلاً من بثها، ولا يتم عرض النتيجة إلا بعد أن يُكمل النموذج عملية الإنشاء بالكامل.

يوضّح هذا المثال كيفية استخدام رمز الوسائط المتعددة generateContent() لإنشاء نص من طلب طلب متعدّد الوسائط يتضمّن نصًا و صورة واحدة:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")

guard let image = UIImage(systemName: "bicycle") else { fatalError() }

// Provide a text prompt to include with the image
let prompt = "What's in this picture?"

// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image, prompt)
print(response.text ?? "No text in response.")

تعرَّف على كيفية اختيار نموذج Gemini وموقع جغرافي اختياريًا مناسبَين لحالة الاستخدام والتطبيق.

إنشاء نص من نص وصور متعددة

تأكَّد من إكمال قسم قبل البدء في هذا الدليل قبل تجربة هذا العيّنة.

يمكنك استدعاء Gemini API باستخدام طلبات متعددة الوسائط التي تتضمّن كلّ من النصوص والملفات المتعددة (مثل الصور، كما هو موضّح في هذا المثال). لإجراء هذه المكالمات، عليك استخدام نموذج يتيح استخدام الوسائط في الطلبات (مثل Gemini 1.5 Flash).

احرص على مراجعة المتطلبات والاقتراحات المتعلّقة بملفات الإدخال.

اختَر ما إذا كنت تريد بث الردّ (generateContentStream) أو الانتظار لتلقّي الردّ إلى أن يتم إنشاء النتيجة بالكامل (generateContent).

البث

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

يوضّح هذا المثال كيفية استخدام generateContentStream() لبث النص الذي تم إنشاؤه من طلب طلب متعدد الوسائط يتضمّن نصًا وصورًا متعددة:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")

guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }

// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"

// To stream generated text output, call generateContentStream and pass in the prompt
let contentStream = try model.generateContentStream(image1, image2, prompt)
for try await chunk in contentStream {
  if let text = chunk.text {
    print(text)
  }
}

بدون بث

بدلاً من ذلك، يمكنك الانتظار للحصول على النتيجة بالكامل بدلاً من بثها، ولا يتم عرض النتيجة إلا بعد أن يُكمل النموذج عملية الإنشاء بالكامل.

يوضّح هذا المثال كيفية استخدام generateContent() لإنشاء نص من طلب طلب متعدد الوسائط يتضمّن نصًا و صورًا متعددة:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")

guard let image1 = UIImage(systemName: "car") else { fatalError() }
guard let image2 = UIImage(systemName: "car.2") else { fatalError() }

// Provide a text prompt to include with the images
let prompt = "What's different between these pictures?"

// To generate text output, call generateContent and pass in the prompt
let response = try await model.generateContent(image1, image2, prompt)
print(response.text ?? "No text in response.")

تعرَّف على كيفية اختيار نموذج Gemini وموقع جغرافي اختياريًا مناسبَين لحالة الاستخدام والتطبيق.

إنشاء نص من نص وفيديو

تأكَّد من إكمال قسم قبل البدء في هذا الدليل قبل تجربة هذا العيّنة.

يمكنك الاتصال بـ Gemini API باستخدام طلبات متعددة الوسائط تتضمّن ملفّات نصية وملفات فيديو (كما هو موضّح في هذا المثال). لهذه المكالمات، عليك استخدام نموذج يتيح استخدام الوسائط في الطلبات (مثل Gemini 1.5 Flash).

احرص على مراجعة المتطلبات والاقتراحات المتعلّقة بملفات الإدخال.

اختَر ما إذا كنت تريد بث الردّ (generateContentStream) أو الانتظار لتلقّي الردّ إلى أن يتم إنشاء النتيجة بالكامل (generateContent).

البث

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

يوضّح هذا المثال كيفية استخدام generateContentStream() لبث نص تم إنشاؤه من طلب طلب متعدد الوسائط يتضمّن نصًا وفيديو واحدًا:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")

// Provide the video as `Data` with the appropriate MIME type
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")

// Provide a text prompt to include with the video
let prompt = "What is in the video?"

// To stream generated text output, call generateContentStream with the text and video
let contentStream = try model.generateContentStream(video, prompt)
for try await chunk in contentStream {
  if let text = chunk.text {
    print(text)
  }
}

بدون بث

بدلاً من ذلك، يمكنك الانتظار إلى أن تظهر النتيجة بالكامل بدلاً من بثها، ولا يتم عرض النتيجة إلا بعد أن يُكمل النموذج عملية الإنشاء بالكامل.

يوضّح هذا المثال كيفية استخدام generateContent() لإنشاء نص من طلب طلب متعدد الوسائط يتضمّن نصًا و فيديو واحدًا:

import FirebaseVertexAI

// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()

// Initialize the generative model with a model that supports your use case
// Gemini 1.5 models are versatile and can be used with all API capabilities
let model = vertex.generativeModel(modelName: "gemini-1.5-flash")

// Provide the video as `Data` with the appropriate MIME type.
let video = InlineDataPart(data: try Data(contentsOf: videoURL), mimeType: "video/mp4")

// Provide a text prompt to include with the video
let prompt = "What is in the video?"

// To generate text output, call generateContent with the text and video
let response = try await model.generateContent(video, prompt)
print(response.text ?? "No text in response.")

تعرَّف على كيفية اختيار نموذج Gemini وموقع جغرافي اختياريًا مناسبَين لحالة الاستخدام والتطبيق.

المتطلبات والاقتراحات المتعلّقة بملفات الإدخال

اطّلِع على ملفات الإدخال المتوافقة ومتطلبات Vertex AI Gemini API للتعرّف على ما يلي:

  • خيارات مختلفة لتقديم ملف في طلب
  • أنواع الملفات المتوافقة
  • أنواع MIME المتوافقة وكيفية تحديدها
  • المتطلبات وأفضل الممارسات المتعلّقة بالملفات والطلبات المتعدّدة الوسائط

ما هي الإجراءات الأخرى التي يمكنك اتّخاذها؟

  • تعرَّف على كيفية احتساب الرموز المميّزة قبل إرسال طلبات طويلة إلى النموذج.
  • إعداد Cloud Storage for Firebase حتى تتمكّن من تضمين ملفات كبيرة في طلباتك المتعدّدة الوسائط والحصول على حلّ أكثر تنظيمًا لتقديم الملفات في طلباتك يمكن أن تتضمّن الملفات صورًا وملفات PDF وفيديوهات وملفات صوتية.
  • ابدأ التفكير في الاستعداد للإصدار العلني، بما في ذلك إعداد Firebase App Check لحماية Gemini API من إساءة الاستخدام من قِبل العملاء غير المصرَّح لهم.

تجربة إمكانات أخرى في Gemini API

التعرّف على كيفية التحكّم في إنشاء المحتوى

يمكنك أيضًا تجربة الطلبات وإعدادات النماذج باستخدام Vertex AI Studio.

مزيد من المعلومات حول طُرز Gemini

اطّلِع على مزيد من المعلومات عن النماذج المتاحة لحالات الاستخدام المختلفة واطلاعك على الحصص والأسعار.


تقديم ملاحظات حول تجربتك مع Vertex AI in Firebase