Krótkie wprowadzenie do interfejsu Gemini API

Z tego krótkiego wprowadzenia dowiesz się, jak rozpocząć korzystanie z interfejsu Gemini API przy użyciu wybranego pakietu SDK.

Wymagania wstępne

Python

Zobacz w Google AI Uruchom w Google Colab Wyświetl notatnik w GitHub

Aby wykonać to krótkie wprowadzenie lokalnie, sprawdź, czy Twoje środowisko programistyczne spełnia te wymagania:

  • Python 3.9 lub nowszy
  • Instalacja pakietu jupyter do uruchamiania notatnika.

Go

W tym krótkim wprowadzeniu zakładamy, że umiesz tworzyć aplikacje w języku Go.

Aby skorzystać z tego krótkiego wprowadzenia, sprawdź, czy Twoje środowisko programistyczne spełnia następujące wymagania:

  • Go 1.20+

Node.js

W tym krótkim wprowadzeniu zakładamy, że umiesz tworzyć aplikacje przy użyciu Node.js.

Aby skorzystać z tego krótkiego wprowadzenia, sprawdź, czy Twoje środowisko programistyczne spełnia następujące wymagania:

  • Node.js w wersji 18 lub nowszej
  • npm

Web

W tym krótkim wprowadzeniu zakładamy, że umiesz tworzyć aplikacje internetowe przy użyciu JavaScriptu. Ten przewodnik jest niezależny od platformy.

Aby skorzystać z tego krótkiego wprowadzenia, sprawdź, czy Twoje środowisko programistyczne spełnia następujące wymagania:

  • (Opcjonalnie) Node.js
  • Nowoczesna przeglądarka

Rzutki (zrzuty)

W tym krótkim wprowadzeniu zakładamy, że umiesz tworzyć aplikacje za pomocą Dart.

Aby skorzystać z tego krótkiego wprowadzenia, sprawdź, czy Twoje środowisko programistyczne spełnia następujące wymagania:

  • Dart 3.2.0 lub nowszy

Swift

W tym krótkim wprowadzeniu zakładamy, że umiesz używać Xcode do tworzenia aplikacji w języku Swift.

Aby skorzystać z tego krótkiego wprowadzenia, sprawdź, czy Twoje środowisko programistyczne i aplikacja Swift spełniają te wymagania:

  • Xcode 15.0 lub nowsza
  • Aplikacja Swift musi być kierowana na system iOS w wersji 15 lub nowszej albo macOS w wersji 12 lub nowszej.

Android

W tym krótkim wprowadzeniu zakładamy, że umiesz tworzyć aplikacje na Androida za pomocą Android Studio.

Aby skorzystać z tego krótkiego wprowadzenia, sprawdź, czy Twoje środowisko programistyczne i aplikacja na Androida spełniają te wymagania:

  • Android Studio (najnowsza wersja)
  • Aplikacja na Androida musi być kierowana na interfejs API na poziomie 21 lub wyższym.

Konfigurowanie klucza interfejsu API

Aby korzystać z interfejsu Gemini API, potrzebujesz klucza interfejsu API. Jeśli nie masz jeszcze klucza, utwórz go w Google AI Studio.

Uzyskiwanie klucza interfejsu API

Następnie skonfiguruj klucz.

Python

Zdecydowanie zalecamy, aby nie sprawdzać klucza interfejsu API w systemie kontroli wersji. W tym krótkim wprowadzeniu zakładamy, że użytkownik uzyskuje dostęp do klucza interfejsu API w postaci zmiennej środowiskowej.

Przypisz klucz interfejsu API do zmiennej środowiskowej:

export API_KEY=<YOUR_API_KEY>

Go

Zdecydowanie zalecamy, aby nie sprawdzać klucza interfejsu API w systemie kontroli wersji. W tym krótkim wprowadzeniu zakładamy, że użytkownik uzyskuje dostęp do klucza interfejsu API w postaci zmiennej środowiskowej.

Przypisz klucz interfejsu API do zmiennej środowiskowej:

export API_KEY=<YOUR_API_KEY>

Node.js

Zdecydowanie zalecamy, aby nie sprawdzać klucza interfejsu API w systemie kontroli wersji. W tym krótkim wprowadzeniu zakładamy, że użytkownik uzyskuje dostęp do klucza interfejsu API w postaci zmiennej środowiskowej.

Przypisz klucz interfejsu API do zmiennej środowiskowej:

export API_KEY=<YOUR_API_KEY>

Web

Zdecydowanie zalecamy, aby nie sprawdzać klucza interfejsu API w systemie kontroli wersji. Zamiast tego przekaż klucz interfejsu API do aplikacji bezpośrednio przed zainicjowaniem modelu.

W tym krótkim wprowadzeniu zakładamy, że używasz klucza interfejsu API w postaci stałej globalnej.

Rzutki (zrzuty)

Zdecydowanie zalecamy, aby nie sprawdzać klucza interfejsu API w systemie kontroli wersji. W tym krótkim wprowadzeniu zakładamy, że używasz klucza interfejsu API jako zmiennej środowiskowej procesu. Jeśli tworzysz aplikację Flutter, możesz użyć String.fromEnvironment i przekazać --dart-define=API_KEY=$API_KEY do flutter build lub flutter run, aby przeprowadzić kompilację z kluczem interfejsu API, ponieważ środowisko procesu będzie inne podczas uruchamiania aplikacji.

Swift

Zdecydowanie zalecamy, aby nie sprawdzać klucza interfejsu API w systemie kontroli wersji. Możesz też zapisać ją w pliku GenerativeAI-Info.plist, a potem odczytać klucz interfejsu API z pliku .plist. Pamiętaj, aby umieścić ten plik .plist w folderze głównym aplikacji i wykluczyć go z kontroli wersji.

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

Zdecydowanie zalecamy, aby nie sprawdzać klucza interfejsu API w systemie kontroli wersji. Zamiast tego zapisz go w pliku local.properties, który znajduje się w katalogu głównym projektu, ale jest wykluczony z kontroli wersji, a następnie użyj wtyczki do obsługi obiektów tajnych w Gradle na Androida, aby odczytać swój klucz interfejsu API jako zmienną konfiguracji kompilacji.

Kotlin:

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

Jeśli chcesz zobaczyć implementację wtyczki Secrets Gradle, przejrzyj przykładową aplikację dla tego pakietu SDK lub skorzystaj z najnowszej wersji przedpremierowej Android Studio Iguana, która zawiera szablon Gemini API Starter (zawierający na początek plik local.properties).

Zainstaluj pakiet SDK

Python

Pakiet SDK Pythona dla interfejsu Gemini API znajduje się w pakiecie google-generativeai. Zainstaluj zależność za pomocą narzędzia pip:

pip install -q -U google-generativeai

Go

Aby użyć interfejsu Gemini API we własnej aplikacji, musisz get pakiet SDK Go w katalogu modułów:

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

Node.js

Aby używać interfejsu Gemini API we własnej aplikacji, musisz zainstalować pakiet GoogleGenerativeAI dla Node.js:

npm install @google/generative-ai

Web

Aby używać interfejsu Gemini API we własnej aplikacji internetowej, zaimportuj @google/generative-ai:

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

Rzutki (zrzuty)

Aby użyć interfejsu Gemini API we własnej aplikacji, musisz add pakiet google_generative_ai dla aplikacji Dart lub Flutter:

Rzutki:

dart pub add google_generative_ai

Skrzydełko:

flutter pub add google_generative_ai

Swift

Aby używać interfejsu Gemini API we własnej aplikacji Swift, dodaj do niej pakiet GoogleGenerativeAI:

  1. W Xcode kliknij prawym przyciskiem myszy projekt w nawigatorze projektów.

  2. Wybierz Dodaj pakiety z menu kontekstowego.

  3. W oknie Dodaj pakiety wklej adres URL pakietu na pasku wyszukiwania: none https://github.com/google/generative-ai-swift

  4. Kliknij Dodaj pakiet. Xcode doda teraz pakiet GoogleGenerativeAI do projektu.

Android

  1. W pliku konfiguracji Gradle modułu (na poziomie aplikacji) (np. <project>/<app-module>/build.gradle.kts) dodaj zależność pakietu SDK AI od Google na Androida:

    Kotlin:

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

    Java:

    W przypadku Javy musisz dodać 2 dodatkowe biblioteki.

    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. Zsynchronizuj projekt na Androida z plikami Gradle.

Inicjowanie modelu generatywnego

Python

Zanim zaczniesz wywoływać interfejs API, musisz zaimportować i zainicjować model generatywny.

import google.generativeai as genai

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

Go

Zanim zaczniesz wywoływać interfejs API, musisz zaimportować i zainicjować model generatywny.

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

Zanim zaczniesz wywoływać interfejs API, musisz zaimportować i zainicjować model generatywny.

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

// ...

Web

Zanim zaczniesz wywoływać interfejs API, musisz zaimportować i zainicjować model generatywny.

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

Rzutki (zrzuty)

Zanim zaczniesz wywoływać interfejs API, musisz zaimportować i zainicjować model generatywny.

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

Zanim zaczniesz wywoływać interfejs API, musisz zainicjować model generatywny.

  1. Zaimportuj moduł GoogleAI:

    import GoogleGenerativeAI
    
  2. Zainicjuj model generatywny:

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

Zanim zaczniesz wywołania interfejsu API, musisz zainicjować obiekt 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:

W przypadku Javy musisz też zainicjować obiekt 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);

Generowanie tekstu

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

Web

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

Rzutki (zrzuty)

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:

Pamiętaj, że generateContent() to funkcja zawieszania, która musi być wywoływana z zakresu Coroutine. Jeśli nie znasz aplikacji Coroutine, przeczytaj artykuł na temat Kotlin Coroutines na Androidzie.

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

Java:

Pamiętaj, że generateContent() zwraca ListenableFuture. Jeśli nie znasz tego interfejsu API, zapoznaj się z dokumentacją Androida na temat używania interfejsu 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);

Co dalej

Więcej informacji o korzystaniu z interfejsu Gemini API znajdziesz w samouczku dotyczący wybranego języka.

Aby wypróbować interfejs Gemini API, możesz też używać poleceń curl:

Jeśli nie masz doświadczenia z modelami generatywnej AI, zanim zaczniesz krótkie wprowadzenie, zapoznaj się z przewodnikiem po koncepcjach i omówieniem interfejsu Gemini API.