إنشاء النص

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

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

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

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

import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");

const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

const prompt = "Explain how AI works";

const result = await model.generateContent(prompt);
console.log(result.response.text());

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

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

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

import { GoogleGenerativeAI } from "@google/generative-ai";
import * as fs from 'node:fs';

const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

function fileToGenerativePart(path, mimeType) {
  return {
    inlineData: {
      data: Buffer.from(fs.readFileSync(path)).toString("base64"),
      mimeType,
    },
  };
}

const prompt = "Describe how this product might be manufactured.";
const imagePart = fileToGenerativePart("/path/to/image.png", "image/png");

const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());

إنشاء مصدر نصي

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

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

import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

const prompt = "Explain how AI works";

const result = await model.generateContentStream(prompt);

for await (const chunk of result.stream) {
  const chunkText = chunk.text();
  process.stdout.write(chunkText);
}

إنشاء محادثة

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

يعرض مثال الرمز البرمجي التالي عملية تنفيذ أساسية للمحادثة:

import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
  history: [
    {
      role: "user",
      parts: [{ text: "Hello" }],
    },
    {
      role: "model",
      parts: [{ text: "Great to meet you. What would you like to know?" }],
    },
  ],
});

let result = await chat.sendMessage("I have 2 dogs in my house.");
console.log(result.response.text());
let result2 = await chat.sendMessage("How many paws are in my house?");
console.log(result2.response.text());

يمكنك أيضًا استخدام ميزة البث مع المحادثة، كما هو موضّح في المثال التالي:

import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

const chat = model.startChat({
  history: [
    {
      role: "user",
      parts: [{ text: "Hello" }],
    },
    {
      role: "model",
      parts: [{ text: "Great to meet you. What would you like to know?" }],
    },
  ],
});

let result = await chat.sendMessageStream("I have 2 dogs in my house.");
for await (const chunk of result.stream) {
  const chunkText = chunk.text();
  process.stdout.write(chunkText);
}
let result2 = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result2.stream) {
  const chunkText = chunk.text();
  process.stdout.write(chunkText);
}

ضبط إعدادات إنشاء النصوص

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

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

import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");

const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });

const result = await model.generateContent({
    contents: [
        {
          role: 'user',
          parts: [
            {
              text: "Explain how AI works",
            }
          ],
        }
    ],
    generationConfig: {
      maxOutputTokens: 1000,
      temperature: 0.1,
    }
});

console.log(result.response.text());

إضافة تعليمات النظام

تتيح لك تعليمات النظام توجيه سلوك النموذج استنادًا إلى احتياجاتك وحالات الاستخدام المحدّدة.

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

يمكنك ضبط تعليمات النظام عند بدء تشغيل النموذج:

// Set the system instruction during model initialization
const model = genAI.getGenerativeModel({
  model: "gemini-1.5-flash",
  systemInstruction: "You are a cat. Your name is Neko.",
});

بعد ذلك، يمكنك إرسال الطلبات إلى النموذج كالمعتاد.

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

بعد أن استكشافت أساسيات Gemini API، ننصحك بالمحاولة التالية:

  • فهم الرؤية: تعرَّف على كيفية استخدام ميزة فهم الرؤية المضمّنة في Gemini لمعالجة الصور والفيديوهات.
  • فهم الصوت: تعرَّف على كيفية استخدام ميزة فهم الصوت المضمّنة في Gemini لمعالجة الملفات الصوتية.