إنشاء نص باستخدام Gemini API

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

  • الكتابة الإبداعية
  • وصف مواد عرض الوسائط أو تفسيرها
  • إكمال النص
  • تلخيص النص الحر
  • الترجمة بين اللغات
  • روبوتات الدردشة
  • حالات الاستخدام الجديدة الخاصة بك

يشرح لك هذا الدليل كيفية إنشاء نص باستخدام generateContent و streamGenerateContent واجهات برمجة التطبيقات وحزمة تطوير البرامج (SDK) من جهة الخادم التي تختارها ينصب التركيز على إخراج النص من إدخال النص فقط وإدخال النصوص والصور. مزيد من المعلومات حول الطلبات المتعدّدة الوسائط باستخدام ملفات الفيديو والصوت، يمكنك الاطلاع على عرض الطلب باستخدام ملفات الوسائط:

قبل البدء: عليك إعداد مشروعك ومفتاح واجهة برمجة التطبيقات.

قبل طلب Gemini API، عليك إعداد مشروعك وإعداده. مفتاح واجهة برمجة التطبيقات الخاص بك.

إنشاء نص من إدخال نص فقط

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

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

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

إنشاء نص من إدخال النص والصورة

تتيح واجهة Gemini API استخدام إدخالات متعددة الوسائط تجمع بين النص وملفات الوسائط. يوضّح المثال التالي كيفية إنشاء نص من إدخال النصوص والصور:

import PIL.Image

model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)

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

إنشاء ساحة مشاركات نصية

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

يوضح المثال التالي كيفية تنفيذ البث باستخدام streamGenerateContent من أجل إنشاء نص من طلب إدخال نصي فقط.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

إنشاء محادثة تفاعلية

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

يوضّح مثال الرمز التالي طريقة تنفيذ أساسية للمحادثات:

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)

إعداد ميزة إنشاء النص

تتضمن كل طلب ترسله إلى النموذج المَعلمات التي التحكم في الطريقة التي ينتج بها النموذج الاستجابات. يمكنك استخدام GenerationConfig إلى تهيئة هذه المعلمات. إذا لم تقم بضبط المعاملات، فسيبدأ النموذج يستخدم الخيارات الافتراضية، والتي قد تختلف حسب النموذج.

يوضح المثال التالي كيفية ضبط العديد من الخيارات المتاحة.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Tell me a story about a magic backpack.",
    generation_config=genai.types.GenerationConfig(
        # Only one candidate for now.
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)

print(response.text)

تحدّد الدالة candidateCount عدد الردود التي تم إنشاؤها لعرضها. في الوقت الحالي، يمكن ضبط هذه القيمة على 1 فقط. في حال ترك هذه السياسة بدون ضبط، سيتم ضبط القيمة التلقائية على 1.

تحدّد الدالة stopSequences مجموعة تسلسلات الأحرف (بحد أقصى 5) التي إيقاف إنشاء الإخراج إذا تم تحديده، ستتوقف واجهة برمجة التطبيقات عند الظهور الأول. من stop_sequence. ولن يتمّ تضمين تسلسل التوقّف كجزء من الاستجابة.

تحدّد maxOutputTokens الحد الأقصى لعدد الرموز المميّزة التي يمكن تضمينها في عنصر محفّز لعرض الإعلان.

يتحكّم temperature في التوزيع العشوائي للناتج. استخدِم قيمًا أعلى للحصول على المزيد وردود إبداعية، وقيمًا أقل للحصول على ردود أكثر حتمية. القيم تتراوح بين [0.0 و2.0].

يمكنك أيضًا إعداد مكالمات فردية مع "generateContent":

response = model.generate_content(
    'Write a story about a magic backpack.',
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

يشير ذلك المصطلح إلى أي قيم محدَّدة في قيم إلغاء الاستدعاء الفردية في الدالة الإنشائية للنموذج.

الخطوات التالية

يوضح هذا الدليل كيفية استخدام generateContent و streamGenerateContent لإنشاء مخرجات نصية من الإدخالات النصية فقط والإدخالات النصية والصور معرفة المزيد حول إنشاء النصوص باستخدام Gemini API، اطّلِع على المراجع التالية:

  • عرض الطلب مع ملفات الوسائط: تتيح واجهة Gemini API أيضًا إرسال الطلبات باستخدام بيانات النصوص والصور والصوت والفيديوهات. المعروف باسم المطالبة متعددة الوسائط.
  • تعليمات النظام: النظام توجيه سلوك النموذج بناءً على احتياجاتهم وحالات الاستخدام الخاصة بهم.
  • إرشادات حول الأمان: يستخدم الذكاء الاصطناعي التوليدي أحيانًا مخرجات غير متوقعة، مثل المخرجات غير الدقيقة، أو متحيزة أو مسيئة. تعد مرحلة ما بعد المعالجة والتقييم البشري ضروريين الحد من مخاطر الضرر الناجم عن هذه المخرجات.