Ejemplo asíncrono para generar contenido con el modelo de IA multimodal

En la muestra de código, se indica cómo usar los modelos de IA generativa con la función asíncrona.

Muestra de código

Go

Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Go.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

import (
	"context"
	"fmt"
	"io"

	"google.golang.org/genai"
)

// generateWithTextAsyncStream shows how to stream a text generation response.
func generateWithTextAsyncStream(w io.Writer) error {
	ctx := context.Background()

	client, err := genai.NewClient(ctx, &genai.ClientConfig{
		HTTPOptions: genai.HTTPOptions{APIVersion: "v1"},
	})
	if err != nil {
		return fmt.Errorf("failed to create genai client: %w", err)
	}

	modelName := "gemini-2.5-flash"

	contents := []*genai.Content{
		{
			Role: "user",
			Parts: []*genai.Part{
				{Text: "Compose a song about the adventures of a time-traveling squirrel."},
			},
		},
	}

	for resp, err := range client.Models.GenerateContentStream(ctx, modelName, contents, &genai.GenerateContentConfig{
		ResponseModalities: []string{"TEXT"}}) {
		if err != nil {
			return fmt.Errorf("failed to generate content: %w", err)
		}

		chunk := resp.Text()

		fmt.Fprintln(w, chunk)
	}

	// Example output (streamed piece by piece):
	// (Verse 1)
	// Pip was a squirrel, a regular chap,
	//Burying acorns, enjoying a nap.
	//One sunny morning, beneath the old pine,
	//He dug up a thing, incredibly fine.
	//A tiny contraption, with gears and a gleam,
	//It pulsed with a power, a
	// time-traveling dream.
	//He nudged it with curiosity, twitching his nose,
	//And *poof!* went the world, as everyone knows...
	//
	//(Chorus)
	//Oh, Pip the squirrel, with his bushy brown tail,
	//Through the time stream he'd often sail!
	// ...

	return nil
}

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Java.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


import com.google.genai.Client;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import java.util.concurrent.CompletableFuture;

public class TextGenerationAsyncWithText {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    generateContent(modelId);
  }

  // Generates text asynchronously with text input
  public static String generateContent(String modelId) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      CompletableFuture<GenerateContentResponse> asyncResponse =
          client.async.models.generateContent(
              modelId, "Compose a song about the adventures of a time-traveling squirrel.", null);

      String response = asyncResponse.join().text();
      System.out.print(response);
      // Example response:
      // (Verse 1)
      // In an oak tree, so leafy and green,
      // Lived Squeaky the squirrel, a critter unseen.
      // Just burying nuts, a routine so grand,
      // ...

      return response;
    }
  }
}

Node.js

Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Node.js.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

const {GoogleGenAI} = require('@google/genai');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateText(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const response = await client.models.generateContent({
    model: 'gemini-2.5-flash',
    contents:
      'Compose a song about the adventures of a time-traveling squirrel.',
    config: {
      responseMimeType: 'text/plain',
    },
  });

  console.log(response.text);

  // Example response:
  // (Verse 1)
  // Sammy the nugget, a furry little friend
  // Had a knack for adventure, beyond all comprehend

  return response.text;
}

Python

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Python.

Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

from google import genai
from google.genai.types import GenerateContentConfig, HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))
model_id = "gemini-2.5-flash"

response = await client.aio.models.generate_content(
    model=model_id,
    contents="Compose a song about the adventures of a time-traveling squirrel.",
    config=GenerateContentConfig(
        response_modalities=["TEXT"],
    ),
)

print(response.text)
# Example response:
# (Verse 1)
# Sammy the squirrel, a furry little friend
# Had a knack for adventure, beyond all comprehend

¿Qué sigue?

Para buscar y filtrar muestras de código para otros productos Google Cloud , consulta el Google Cloud navegador de muestras.