البدء السريع لواجهة برمجة تطبيقات Gemini

يشرح لك دليل البدء السريع هذا كيفية بدء استخدام Gemini API باستخدام حزمة تطوير البرامج (SDK) التي تختارها.

المتطلبات الأساسية

Python

الاطّلاع على تكنولوجيات الذكاء الاصطناعي من Google التشغيل في Google Colab عرض دفتر ملاحظات على GitHub

لإكمال عملية البدء السريع هذه محليًا، تأكد من أن بيئة التطوير تفي بالمتطلبات التالية:

  • Python 3.9 أو إصدار أحدث
  • تثبيت jupyter لتشغيل دفتر الملاحظات.

البدء

يفترض البدء السريع هذا أنك على دراية بإنشاء التطبيقات باستخدام Go.

لإكمال البدء السريع هذا، تأكد من أن بيئة التطوير تفي بالمتطلبات التالية:

  • إصدار 1.20 أو أكثر

Node.js

يفترض البدء السريع هذا أنك على دراية بإنشاء التطبيقات باستخدام Node.js.

لإكمال البدء السريع هذا، تأكد من أن بيئة التطوير تفي بالمتطلبات التالية:

  • Node.js v18 أو إصدار أحدث
  • npm

الويب

يفترض البدء السريع هذا أنك على دراية باستخدام JavaScript لتطوير تطبيقات الويب. هذا الدليل مستقل عن إطار العمل.

لإكمال البدء السريع هذا، تأكد من أن بيئة التطوير تفي بالمتطلبات التالية:

  • (اختياري) Node.js
  • متصفح ويب حديث

Dart (Flutter)

تفترض نقطة البدء السريع هذه أنّك على دراية بإنشاء التطبيقات باستخدام Dart.

لإكمال البدء السريع هذا، تأكد من أن بيئة التطوير تفي بالمتطلبات التالية:

  • Dart 3.2.0+

Swift

يفترض البدء السريع هذا أنك على دراية باستخدام Xcode لتطوير تطبيقات Swift.

لإكمال دليل البدء السريع هذا، تأكد من أن بيئة التطوير وتطبيق Swift يلبيان المتطلبات التالية:

  • Xcode 15.0 أو إصدار أحدث
  • يجب أن يستهدف تطبيق Swift نظام التشغيل iOS 15 أو الإصدارات الأحدث أو macOS 12 أو الإصدارات الأحدث.

Android

يفترض البدء السريع هذا أنك على دراية باستخدام استوديو Android لتطوير تطبيقات Android.

لإكمال عملية البدء السريع هذه، يُرجى التأكّد من أنّ بيئة التطوير وتطبيق Android يستوفيان المتطلّبات التالية:

  • استوديو Android (أحدث إصدار)
  • يجب أن يستهدف تطبيق Android المستوى 21 أو أعلى لواجهة برمجة التطبيقات.

إعداد مفتاح واجهة برمجة التطبيقات

لاستخدام Gemini API، يجب استخدام مفتاح واجهة برمجة التطبيقات. إذا لم يسبق لك إنشاء مفتاح، أنشئ مفتاحًا في Google AI Studio

الحصول على مفتاح واجهة برمجة التطبيقات

بعد ذلك، عليك ضبط المفتاح.

Python

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

تعيين مفتاح واجهة برمجة التطبيقات لمتغير بيئة:

export API_KEY=<YOUR_API_KEY>

البدء

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

تعيين مفتاح واجهة برمجة التطبيقات لمتغير بيئة:

export API_KEY=<YOUR_API_KEY>

Node.js

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

تعيين مفتاح واجهة برمجة التطبيقات لمتغير بيئة:

export API_KEY=<YOUR_API_KEY>

الويب

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

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

Dart (Flutter)

ننصحك بشدة بعدم التحقق من مفتاح واجهة برمجة التطبيقات في نظام التحكم في الإصدار. يفترض البدء السريع هذا أنك تصل إلى مفتاح واجهة API الخاص بك باعتباره متغير بيئة عملية. إذا كنت تطوِّر تطبيق Flutter، يمكنك استخدام String.fromEnvironment وتمرير --dart-define=API_KEY=$API_KEY إلى flutter build أو flutter run للدمج مع مفتاح واجهة برمجة التطبيقات لأنّ بيئة العملية ستكون مختلفة عند تشغيل التطبيق.

Swift

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

enum APIKey {
   // Fetch the API key from `GenerativeAI-Info.plist`
   static var `default`: String {
      guard let filePath = Bundle.main.path(forResource: "GenerativeAI-Info", ofType: "plist")
      else {
         fatalError("Couldn't find file 'GenerativeAI-Info.plist'.")
      }
      let plist = NSDictionary(contentsOfFile: filePath)
      guard let value = plist?.object(forKey: "API_KEY") as? String else {
         fatalError("Couldn't find key 'API_KEY' in 'GenerativeAI-Info.plist'.")
      }
      if value.starts(with: "_") {
         fatalError(
           "Follow the instructions at https://ai.google.dev/tutorials/setup to get an API key."
         )
      }
      return value
   }
}

Android

ننصحك بشدة بعدم التحقق من مفتاح واجهة برمجة التطبيقات في نظام التحكم في الإصدار. بدلاً من ذلك، عليك تخزينها في ملف local.properties (الموجود في الدليل الجذري لمشروعك، ولكن تم استبعاده من عنصر التحكّم في الإصدار)، ثم استخدام المكوِّن الإضافي Secret Gradle المتوافق مع Android للاطّلاع على مفتاح واجهة برمجة التطبيقات باعتباره أحد متغيّر إعدادات الإصدار.

لغة البرمجة Kotlin:

// Access your API key as a Build Configuration variable
val apiKey = BuildConfig.apiKey

جافا:

// Access your API key as a Build Configuration variable
String apiKey = BuildConfig.apiKey;

إذا أردت الاطّلاع على عملية تنفيذ المكوّن الإضافي Secret Gradle، يمكنك مراجعة نموذج التطبيق الخاص بحزمة تطوير البرامج (SDK) هذه، أو استخدام أحدث معاينة لأداة Android Studio Iguana التي تتضمّن نموذج Gemini API Starter (يتضمّن ملف local.properties لبدء الاستخدام).

تثبيت حزمة تطوير البرامج (SDK)

Python

تمّ تضمين حزمة Python SDK لـ Gemini API في الحزمة google-generativeai. تثبيت التبعية باستخدام pip:

pip install -q -U google-generativeai

البدء

لاستخدام واجهة Gemini API في تطبيقك، عليك get حزمة Go SDK في دليل الوحدة:

go get github.com/google/generative-ai-go

Node.js

لاستخدام واجهة Gemini API في تطبيقك الخاص، عليك تثبيت حزمة GoogleGenerativeAI لنظام Node.js:

npm install @google/generative-ai

الويب

لاستخدام واجهة برمجة تطبيقات Gemini في تطبيق الويب الخاص بك، عليك استيراد @google/generative-ai:

<script type="importmap">
   {
     "imports": {
       "@google/generative-ai": "https://esm.run/@google/generative-ai"
     }
   }
</script>

Dart (Flutter)

لاستخدام Gemini API في تطبيقك الخاص، عليك add حزمة google_generative_ai في تطبيق Dart أو Flutter:

الأسهم:

dart pub add google_generative_ai

Flutter:

flutter pub add google_generative_ai

Swift

لاستخدام واجهة برمجة تطبيقات Gemini في تطبيق Swift، أضِف حزمة GoogleGenerativeAI إلى تطبيقك:

  1. في Xcode، انقر بزر الماوس الأيمن على مشروعك في أداة التنقل في المشروع.

  2. انقر على إضافة حِزم من قائمة السياق.

  3. في مربّع الحوار Add Package (إضافة حزم)، الصِق عنوان URL للحزمة في شريط البحث: none https://github.com/google/generative-ai-swift

  4. انقر على إضافة حزمة. ستضيف Xcode الآن حزمة GoogleGenerativeAI إلى مشروعك.

Android

  1. في ملف إعداد Gradle للوحدة (على مستوى التطبيق) (مثل <project>/<app-module>/build.gradle.kts)، أضِف الاعتمادية لحزمة تطوير البرامج (SDK) للذكاء الاصطناعي من Google لنظام التشغيل Android:

    لغة البرمجة Kotlin:

    dependencies {
    
       // add the dependency for the Google AI client SDK for Android
       implementation("com.google.ai.client.generativeai:generativeai:0.3.0")
    }
    

    جافا:

    بالنسبة إلى Java، تحتاج إلى إضافة مكتبتين إضافيتين.

    dependencies {
    
        // add the dependency for the Google AI client SDK for Android
        implementation("com.google.ai.client.generativeai:generativeai:0.3.0")
    
        // Required for one-shot operations (to use `ListenableFuture` from Guava Android)
        implementation("com.google.guava:guava:31.0.1-android")
    
        // Required for streaming operations (to use `Publisher` from Reactive Streams)
        implementation("org.reactivestreams:reactive-streams:1.0.4")
    }
    
  2. يمكنك مزامنة مشروع Android مع ملفات Gradle.

إعداد النموذج التوليدي

Python

قبل أن تتمكن من إجراء أي طلبات بيانات من واجهة برمجة التطبيقات، عليك استيراد النموذج التوليدي وإعداده.

import google.generativeai as genai

genai.configure(api_key=os.environ["API_KEY"])
model = genai.GenerativeModel('gemini-pro')

البدء

قبل أن تتمكن من إجراء أي طلبات بيانات من واجهة برمجة التطبيقات، عليك استيراد النموذج التوليدي وإعداده.

import "github.com/google/generative-ai-go/genai"
import "google.golang.org/api/option"

ctx := context.Background()
// Access your API key as an environment variable (see "Set up your API key" above)
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
    log.Fatal(err)
}
defer client.Close()

// For text-only input, use the gemini-pro model
model := client.GenerativeModel("gemini-pro")

Node.js

قبل أن تتمكن من إجراء أي طلبات بيانات من واجهة برمجة التطبيقات، عليك استيراد النموذج التوليدي وإعداده.

const { GoogleGenerativeAI } = require("@google/generative-ai");

// Access your API key as an environment variable (see "Set up your API key" above)
const genAI = new GoogleGenerativeAI(process.env.API_KEY);

// ...

// For text-only input, use the gemini-pro model
const model = genAI.getGenerativeModel({ model: "gemini-pro"});

// ...

الويب

قبل أن تتمكن من إجراء أي طلبات بيانات من واجهة برمجة التطبيقات، عليك استيراد النموذج التوليدي وإعداده.

<html>
<body>
   <!-- ... Your HTML and CSS -->
   <!-- Import @google/generative-ai, as shown above. -->
   <script type="module">
      import { GoogleGenerativeAI } from "@google/generative-ai";

      // Fetch your API_KEY
      const API_KEY = "...";

      // Access your API key (see "Set up your API key" above)
      const genAI = new GoogleGenerativeAI(API_KEY);

      // ...

      // For text-only input, use the gemini-pro model
      const model = genAI.getGenerativeModel({ model: "gemini-pro"});

      // ...
   </script>
</body>
</html>

Dart (Flutter)

قبل أن تتمكن من إجراء أي طلبات بيانات من واجهة برمجة التطبيقات، عليك استيراد النموذج التوليدي وإعداده.

import 'package:google_generative_ai/google_generative_ai.dart';

// Access your API key as an environment variable (see "Set up your API key" above)
final apiKey = Platform.environment['API_KEY'];
if (apiKey == null) {
  print('No \$API_KEY environment variable');
  exit(1);
}

// For text-only input, use the gemini-pro model
final model = GenerativeModel(model: 'gemini-pro', apiKey: apiKey);

Swift

قبل أن تتمكن من إجراء أي طلبات بيانات من واجهة برمجة التطبيقات، عليك تهيئة النموذج التوليدي.

  1. استورِد وحدة "GoogleAI":

    import GoogleGenerativeAI
    
  2. إعداد النموذج التوليدي:

    // For text-only input, use the gemini-pro model
    // Access your API key from your on-demand resource .plist file (see "Set up your API key" above)
    let model = GenerativeModel(name: "gemini-pro", apiKey: APIKey.default)
    

Android

لكي تتمكّن من إجراء أي طلبات بيانات من واجهة برمجة التطبيقات، عليك إعداد الكائن GenerativeModel:

لغة البرمجة Kotlin:

val generativeModel = GenerativeModel(
      // For text-only input, use the gemini-pro model
      modelName = "gemini-pro",
      // Access your API key as a Build Configuration variable (see "Set up your API key" above)
      apiKey = BuildConfig.apiKey
)

جافا:

بالنسبة إلى لغة Java، عليك أيضًا إعداد الكائن GenerativeModelFutures.

// For text-only input, use the gemini-pro model
GenerativeModel gm = new GenerativeModel(/* modelName */ "gemini-pro",
// Access your API key as a Build Configuration variable (see "Set up your API key" above)
      /* apiKey */ BuildConfig.apiKey);

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

إنشاء نص

Python

response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

البدء

resp, err := model.GenerateContent(ctx, genai.Text("Write a story about a magic backpack."))
if err != nil {
  log.Fatal(err)
}

Node.js

async function run() {
  const prompt = "Write a story about a magic backpack."

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

run();

الويب

async function run() {
  const prompt = "Write a story about a magic backpack."

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

run();

Dart (Flutter)

void main() async {
   // Access your API key as an environment variable (see "Set up your API key" above)
   final apiKey = Platform.environment['API_KEY'];
   if (apiKey == null) {
      print('No \$API_KEY environment variable');
      exit(1);
   }
   // For text-only input, use the gemini-pro model
   final model = GenerativeModel(model: 'gemini-pro', apiKey: apiKey);
   final content = [Content.text('Write a story about a magic backpack.')];
   final response = await model.generateContent(content);
   print(response.text);
}

Swift

let prompt = "Write a story about a magic backpack."
let response = try await model.generateContent(prompt)
if let text = response.text {
  print(text)
}

Android

لغة البرمجة Kotlin:

تجدر الإشارة إلى أن generateContent() هي دالة تعليق ويجب استدعاؤها من نطاق الكوروتين. إذا لم تكن معتادًا على استخدام الكوروتينات (الكوروتينات)، يمكنك قراءة كوروتيني كوتلين على Android.

val prompt = "Write a story about a magic backpack."
val response = generativeModel.generateContent(prompt)
print(response.text)

جافا:

تجدر الإشارة إلى أنّ generateContent() تعرض خطأ ListenableFuture. إذا لم تكن معتادًا على استخدام واجهة برمجة التطبيقات هذه، يمكنك الاطّلاع على مستندات Android حول استخدام ListenableFuture.

Content content = new Content.Builder()
      .addText("Write a story about a magic backpack.")
      .build();

Executor executor = // ...

ListenableFuture<GenerateContentResponse> response = model.generateContent(content);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
      @Override
      public void onSuccess(GenerateContentResponse result) {
         String resultText = result.getText();
         System.out.println(resultText);
      }

      @Override
      public void onFailure(Throwable t) {
         t.printStackTrace();
      }
}, executor);

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

لمزيد من المعلومات حول استخدام واجهة Gemini API، يمكنك الاطّلاع على الدليل التوجيهي للّغة التي تختارها.

يمكنك أيضًا استخدام طلبات curl لتجربة Gemini API:

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