המדריך למתחילים של Gemini API

במדריך למתחילים נסביר איך להתחיל להשתמש ב-Gemini API באמצעות SDK לבחירתכם.

דרישות מוקדמות

Python

לצפייה ב-Google AI הפעלה ב-Google Colab הצגת ה-notebook ב-GitHub

כדי להשלים את המדריך למתחילים באופן מקומי, צריך לוודא שסביבת הפיתוח עומדת בדרישות הבאות:

  • Python 3.9 ואילך
  • התקנה של jupyter להפעלת ה-notebook.

Go

המדריך למתחילים מבוסס על ההנחה שאתם מכירים את בניית אפליקציות באמצעות Go.

על מנת להשלים את המדריך למתחילים, ודאו שסביבת הפיתוח עומדת בדרישות הבאות:

  • מעבר ל-1.20 ואילך

Node.js

המדריך למתחילים מבוסס על ההנחה שאתם מכירים את בניית אפליקציות עם Node.js.

על מנת להשלים את המדריך למתחילים, ודאו שסביבת הפיתוח עומדת בדרישות הבאות:

  • Node.js v18+
  • נשימות בדקה

אתרים

המדריך למתחילים מבוסס על ההנחה שאתם מכירים את השימוש ב-JavaScript כדי לפתח אפליקציות אינטרנט. המדריך הזה לא תלוי ב-framework.

על מנת להשלים את המדריך למתחילים, ודאו שסביבת הפיתוח עומדת בדרישות הבאות:

  • (אופציונלי) Node.js
  • דפדפן אינטרנט מודרני

קליעה למטרה (פלוטר)

המדריך למתחילים מבוסס על ההנחה שאתם מכירים את בניית אפליקציות עם Dut.

על מנת להשלים את המדריך למתחילים, ודאו שסביבת הפיתוח עומדת בדרישות הבאות:

  • Dart 3.2.0+

Swift

המדריך למתחילים מבוסס על ההנחה שאתם מכירים את השימוש ב-Xcode כדי לפתח אפליקציות של Swift.

על מנת להשלים את המדריך למתחילים, ודאו שסביבת הפיתוח ואפליקציית Swift עומדות בדרישות הבאות:

  • Xcode 15.0 ואילך
  • אפליקציית Swift צריכה לטרגט ל-iOS מגרסה 15 ואילך או ל-macOS מגרסה 12 ואילך.

Android

המדריך למתחילים מבוסס על ההנחה שאתם מכירים את השימוש ב-Android Studio כדי לפתח אפליקציות ל-Android.

על מנת להשלים את המדריך למתחילים, ודאו שסביבת הפיתוח והאפליקציה ל-Android עומדות בדרישות הבאות:

  • Android Studio (הגרסה האחרונה)
  • האפליקציה ל-Android חייבת לטרגט לרמת API 21 ומעלה.

הגדרת מפתח ה-API

כדי להשתמש ב-Gemini API, תצטרכו מפתח API. אם עדיין אין לכם מפתח, עליכם ליצור מפתח ב-Google AI Studio.

קבלת מפתח API

לאחר מכן מגדירים את המפתח.

Python

מומלץ מאוד לא לבדוק את מפתח ה-API במערכת בקרת הגרסאות. ההנחה במדריך למתחילים היא שאתם ניגשים למפתח ה-API בתור משתנה סביבה.

מקצים את מפתח ה-API למשתנה סביבה:

export API_KEY=<YOUR_API_KEY>

Go

מומלץ מאוד לא לבדוק את מפתח ה-API במערכת בקרת הגרסאות. ההנחה במדריך למתחילים היא שאתם ניגשים למפתח ה-API בתור משתנה סביבה.

מקצים את מפתח ה-API למשתנה סביבה:

export API_KEY=<YOUR_API_KEY>

Node.js

מומלץ מאוד לא לבדוק את מפתח ה-API במערכת בקרת הגרסאות. ההנחה במדריך למתחילים היא שאתם ניגשים למפתח ה-API בתור משתנה סביבה.

מקצים את מפתח ה-API למשתנה סביבה:

export API_KEY=<YOUR_API_KEY>

אתרים

מומלץ מאוד לא לבדוק את מפתח ה-API במערכת בקרת הגרסאות. במקום זאת, עליכם להעביר את מפתח ה-API לאפליקציה מיד לפני שמפעילים את המודל.

במדריך למתחילים נצא מנקודת הנחה שאתם ניגשים למפתח ה-API שלכם כקבוע גלובלי.

קליעה למטרה (פלוטר)

מומלץ מאוד לא לבדוק את מפתח ה-API במערכת בקרת הגרסאות. במדריך למתחילים הזה ההנחה היא שאתם ניגשים למפתח ה-API בתור משתנה סביבת תהליך. אם אתם מפתחים אפליקציה של Flutter, תוכלו להשתמש ב-String.fromEnvironment ולהעביר את --dart-define=API_KEY=$API_KEY ל-flutter build או ל-flutter run כדי להדר אותו עם מפתח ה-API, כי סביבת התהליך תהיה שונה כשמפעילים את האפליקציה.

Swift

מומלץ מאוד לא לבדוק את מפתח ה-API במערכת בקרת הגרסאות. אפשרות חלופית אחת היא לאחסן אותו בקובץ GenerativeAI-Info.plist, ולאחר מכן לקרוא את מפתח ה-API מהקובץ .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

מומלץ מאוד לא לבדוק את מפתח ה-API במערכת בקרת הגרסאות. במקום זאת, יש לאחסן אותו בקובץ local.properties (שנמצא בספריית הבסיס של הפרויקט, אבל לא נכלל בניהול הגרסאות), ואז להשתמש בפלאגין Secrets Gradle ל-Android כדי לקרוא את מפתח ה-API כמשתנה של Build Configuration.

קוטלין:

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

Java

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

כדי לראות את ההטמעה של הפלאגין Secrets 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

Go

כדי להשתמש ב-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 API באפליקציית האינטרנט שלך, צריך לייבא את @google/generative-ai:

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

קליעה למטרה (פלוטר)

כדי להשתמש ב-Gemini API באפליקציה שלכם, צריך add את חבילת google_generative_ai לאפליקציית Dart או Flutter:

קליעה למטרה:

dart pub add google_generative_ai

רופפים:

flutter pub add google_generative_ai

Swift

כדי להשתמש ב-Gemini API באפליקציית Swift משלכם, צריך להוסיף את החבילה GoogleGenerativeAI לאפליקציה:

  1. ב-Xcode, לוחצים לחיצה ימנית על הפרויקט בניווט הפרויקט.

  2. בוחרים באפשרות הוספת חבילות מתפריט ההקשר.

  3. בתיבת הדו-שיח Add Packages (הוספת חבילות), מדביקים את כתובת ה-URL של החבילה בסרגל החיפוש: none https://github.com/google/generative-ai-swift

  4. לוחצים על הוספת חבילה. עכשיו Xcode יוסיף את החבילה GoogleGenerativeAI לפרויקט.

Android

  1. בקובץ התצורה של Gradle (כמו <project>/<app-module>/build.gradle.kts) של המודול (ברמת האפליקציה), מוסיפים את התלות ב-Google AI SDK ל-Android:

    קוטלין:

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

    Java

    עבור 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

לפני שתוכלו לבצע קריאות ל-API, עליכם לייבא ולהפעיל את המודל הגנרטיבי.

import google.generativeai as genai

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

Go

לפני שתוכלו לבצע קריאות ל-API, עליכם לייבא ולהפעיל את המודל הגנרטיבי.

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

לפני שתוכלו לבצע קריאות ל-API, עליכם לייבא ולהפעיל את המודל הגנרטיבי.

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"});

// ...

אתרים

לפני שתוכלו לבצע קריאות ל-API, עליכם לייבא ולהפעיל את המודל הגנרטיבי.

<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>

קליעה למטרה (פלוטר)

לפני שתוכלו לבצע קריאות ל-API, עליכם לייבא ולהפעיל את המודל הגנרטיבי.

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

לפני שתוכלו לבצע קריאות ל-API, אתם צריכים לאתחל את המודל הגנרטיבי.

  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

לפני שתוכלו לבצע קריאות ל-API, עליכם לאתחל את האובייקט GenerativeModel:

קוטלין:

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

עבור 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)

Go

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();

קליעה למטרה (פלוטר)

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

קוטלין:

שימו לב ש-generateContent() היא פונקציית השעיה וצריך לקרוא לה בהיקף של Coroutine. אם לא התחלתם להשתמש ב-Coroutines, קראו את המאמר Kotlin Coroutines ב-Android.

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

Java

לתשומת ליבך, הפונקציה generateContent() מחזירה ListenableFuture. אם אתם לא מכירים את ה-API הזה, תוכלו לעיין במסמכי התיעוד של 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 לפני שמנסים את המדריך למתחילים.