Guia de início rápido da API Gemini

Este guia de início rápido mostra como começar a usar a API Gemini usando o SDK da sua escolha.

Pré-requisitos

Python

Ver no Google AI Executar no Google Colab Acessar o notebook no GitHub (em inglês)

Para concluir este guia de início rápido localmente, verifique se o ambiente de desenvolvimento atende aos seguintes requisitos:

  • Python 3.9 ou superior
  • Uma instalação de jupyter para executar o notebook.

Go

Para este guia de início rápido, você precisa estar familiarizado com a criação de aplicativos com Go.

Para concluir este guia de início rápido, verifique se o ambiente de desenvolvimento atende aos seguintes requisitos:

  • Go 1.20+

Node.js

Para este guia de início rápido, você precisa estar familiarizado com a criação de aplicativos com o Node.js.

Para concluir este guia de início rápido, verifique se o ambiente de desenvolvimento atende aos seguintes requisitos:

  • Node.js v18 ou mais recente
  • npm

Web

Neste guia de início rápido, você precisa estar familiarizado com o uso do JavaScript para desenvolver apps da Web. Este guia não depende do framework.

Para concluir este guia de início rápido, verifique se o ambiente de desenvolvimento atende aos seguintes requisitos:

  • Node.js (opcional)
  • Navegador da Web moderno

Dart (Flutter)

Para este guia de início rápido, você precisa estar familiarizado com a criação de aplicativos com o Dart.

Para concluir este guia de início rápido, verifique se o ambiente de desenvolvimento atende aos seguintes requisitos:

  • Dart 3.2.0 ou superior

Swift

Neste guia de início rápido, presumimos que você esteja familiarizado com o uso do Xcode para desenvolver apps Swift.

Para concluir este guia de início rápido, verifique se o ambiente de desenvolvimento e o app Swift atendem aos seguintes requisitos:

  • Xcode 15.0 ou mais recente
  • O app Swift precisa ser direcionado ao iOS 15 ou mais recente ou ao macOS 12 ou mais recente.

Android

Neste guia de início rápido, consideramos que você já sabe usar o Android Studio para desenvolver apps Android.

Para concluir este guia de início rápido, verifique se o ambiente de desenvolvimento e o app Android atendem aos seguintes requisitos:

  • Android Studio (versão mais recente)
  • Seu app Android precisa ser direcionado ao nível 21 da API ou mais recente.

Configurar sua chave de API

Para usar a API Gemini, você precisa de uma chave de API. Se você ainda não tiver uma, crie uma chave no Google AI Studio.

Gerar uma chave de API

Em seguida, configure a chave.

Python

Recomendamos que você não verifique uma chave de API no seu sistema de controle de versões. Neste guia de início rápido, presumimos que você esteja acessando sua chave de API como uma variável de ambiente.

Atribua sua chave de API a uma variável de ambiente:

export API_KEY=<YOUR_API_KEY>

Go

Recomendamos que você não verifique uma chave de API no seu sistema de controle de versões. Neste guia de início rápido, presumimos que você esteja acessando sua chave de API como uma variável de ambiente.

Atribua sua chave de API a uma variável de ambiente:

export API_KEY=<YOUR_API_KEY>

Node.js

Recomendamos que você não verifique uma chave de API no seu sistema de controle de versões. Neste guia de início rápido, presumimos que você esteja acessando sua chave de API como uma variável de ambiente.

Atribua sua chave de API a uma variável de ambiente:

export API_KEY=<YOUR_API_KEY>

Web

Recomendamos que você não verifique uma chave de API no seu sistema de controle de versões. Em vez disso, é necessário transmitir a chave de API para o app antes de inicializar o modelo.

Neste guia de início rápido, supomos que você esteja acessando sua chave de API como uma constante global.

Dart (Flutter)

Recomendamos que você não verifique uma chave de API no seu sistema de controle de versões. Neste guia de início rápido, presumimos que você esteja acessando sua chave de API como uma variável de ambiente de processo. Se você estiver desenvolvendo um app Flutter, use String.fromEnvironment e transmita --dart-define=API_KEY=$API_KEY para flutter build ou flutter run para fazer a compilação com a chave de API, já que o ambiente do processo será diferente ao executar o app.

Swift

Recomendamos que você não verifique uma chave de API no seu sistema de controle de versões. Uma alternativa é armazená-la em um arquivo GenerativeAI-Info.plist e, em seguida, ler a chave de API do arquivo .plist. Coloque esse arquivo .plist na pasta raiz do app e o exclua do controle de versões.

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

Recomendamos que você não verifique uma chave de API no seu sistema de controle de versões. Em vez disso, armazene-a em um arquivo local.properties (que está localizado no diretório raiz do projeto, mas excluído do controle de versões) e use o plug-in Secrets Gradle para Android (link em inglês) para ler sua chave de API como uma variável de configuração do build.

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;

Se você quiser conferir a implementação do plug-in Secrets Gradle, consulte o app de exemplo (link em inglês) para esse SDK ou use a prévia mais recente do Android Studio Iguana, que tem um modelo da Gemini API Starter (que inclui o arquivo local.properties para começar).

Instalar o SDK

Python

O SDK do Python para a API Gemini está incluído no pacote google-generativeai. Instale a dependência usando pip:

pip install -q -U google-generativeai

Go

Para usar a API Gemini no seu aplicativo, você precisa get o pacote do SDK do Go no diretório do módulo:

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

Node.js

Para usar a API Gemini no seu aplicativo, instale o pacote GoogleGenerativeAI para Node.js:

npm install @google/generative-ai

Web

Para usar a API Gemini no seu próprio app da Web, importe @google/generative-ai:

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

Dart (Flutter)

Para usar a API Gemini no seu próprio aplicativo, é necessário add o pacote google_generative_ai para seu app Dart ou Flutter:

Dart:

dart pub add google_generative_ai

Flutter:

flutter pub add google_generative_ai

Swift

Para usar a API Gemini no seu próprio app Swift, adicione o pacote GoogleGenerativeAI ao app:

  1. No Xcode, clique com o botão direito do mouse no seu projeto no navegador do projeto.

  2. Selecione Add Packages no menu de contexto.

  3. Na caixa de diálogo Add Packages, cole o URL do pacote na barra de pesquisa: none https://github.com/google/generative-ai-swift

  4. Clique em Add Package. O Xcode adicionará o pacote GoogleGenerativeAI ao projeto.

Android

  1. No arquivo de configuração Gradle do módulo (nível do app) (como <project>/<app-module>/build.gradle.kts), adicione a dependência do SDK da IA do Google para 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:

    Para Java, é preciso adicionar mais duas bibliotecas.

    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. Sincronize seu projeto do Android com os arquivos Gradle.

Inicializar o modelo generativo

Python

Antes de fazer qualquer chamada de API, é preciso importar e inicializar o modelo generativo.

import google.generativeai as genai

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

Go

Antes de fazer qualquer chamada de API, é preciso importar e inicializar o modelo generativo.

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

Antes de fazer qualquer chamada de API, é preciso importar e inicializar o modelo generativo.

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

Antes de fazer qualquer chamada de API, é preciso importar e inicializar o modelo generativo.

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

Antes de fazer qualquer chamada de API, é preciso importar e inicializar o modelo generativo.

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

Antes de fazer qualquer chamada de API, você precisa inicializar o modelo generativo.

  1. Importe o módulo GoogleAI:

    import GoogleGenerativeAI
    
  2. Inicialize o modelo generativo:

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

Antes de fazer qualquer chamada de API, você precisa inicializar o objeto 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:

Para Java, também é necessário inicializar o objeto 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);

Gerar texto

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

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:

Observe que generateContent() é uma função de suspensão e precisa ser chamado em um escopo de corrotina. Se você não conhece as corrotinas, leia Corrotinas do Kotlin no Android.

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

Java:

Observe que generateContent() retorna um ListenableFuture. Se você não conhece essa API, consulte a documentação do Android sobre Como usar um 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);

A seguir

Para saber mais sobre como trabalhar com a API Gemini, consulte o tutorial da linguagem de sua preferência.

Você também pode usar os comandos curl para testar a API Gemini:

Se você não tem experiência com modelos de IA generativa, consulte o guia de conceitos e a visão geral da API Generative antes de seguir este guia de início rápido.