API de PaLM: Guía de inicio rápido de Chat con Java

En esta guía de inicio rápido, aprenderás a usar el servicio de chat en la API de PaLM mediante la biblioteca cliente de Java.

Obtén una clave de API

Para comenzar, deberás obtener una clave de API.

Instala el cliente de la API

Con estas instrucciones, se instalará el SDK de PaLM para Java en tu repositorio local de Maven para que puedas agregarlo como una dependencia a tu proyecto de Gradle.

  1. Descarga el archivo google-cloud-ai-generativelanguage-v1-java.tar.gz.
  2. Extrae los archivos y, luego, instálalos en mavenLocal:

    # Extract the files
    tar -xzvf google-cloud-ai-generativelanguage-v1-java.tar.gz
    cd google-cloud-ai-generativelanguage-v1-java
    
    # Install to mavenLocal
    ./gradlew publishToMavenLocal
    

Agrega el SDK a tu proyecto

  1. Abre tu archivo de configuración de Gradle y asegúrate de que mavenLocal() aparezca en repositories:

    repositories {
        mavenCentral()
        // ...
    
        // Add the Maven Local repository
        mavenLocal()
    }
    
  2. Además, en el archivo de configuración de Gradle, agrega las bibliotecas necesarias al bloque dependencies:

    dependencies {
        // ...
    
        // Add these dependencies to use Generative AI
        implementation("com.google.cloud:gapic-google-cloud-ai-generativelanguage-v1-java:0.0.0-SNAPSHOT")
        implementation("io.grpc:grpc-okhttp:1.53.0")
    }
    

Inicializa el cliente de servicios de Discuss

Para inicializar un DiscussServiceClient, pasa tu clave de API (proporcionada a través de la variable de entorno API_KEY) como un encabezado a TransportChannelProvider que usará DiscussServiceSettings:

import com.google.ai.generativelanguage.v1.DiscussServiceClient;
import com.google.ai.generativelanguage.v1.DiscussServiceSettings;
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
import com.google.api.gax.rpc.FixedHeaderProvider;


HashMap<String, String> headers = new HashMap<>();
headers.put("x-goog-api-key", System.getEnv("API_KEY"));

InstantiatingGrpcChannelProvider provider = InstantiatingGrpcChannelProvider.newBuilder()
    .setHeaderProvider(FixedHeaderProvider.create(headers))
    .build();

DiscussServiceSettings settings = DiscussServiceSettings.newBuilder()
    .setTransportChannelProvider(provider)
    .setCredentialsProvider(FixedCredentialsProvider.create(null))
    .build();

DiscussServiceClient client = DiscussServiceClient.create(settings);

Crea una instrucción de mensaje

Debes proporcionar un MessagePrompt a la API para que pueda predecir cuál es el siguiente mensaje de la discusión.

Crea algunos ejemplos (opcional)

De manera opcional, puedes proporcionar algunos ejemplos de lo que debería generar el modelo. Esto incluye tanto la entrada del usuario como la respuesta que el modelo debe emular.

import com.google.ai.generativelanguage.v1.Example;
import com.google.ai.generativelanguage.v1.Message;


Message input = Message.newBuilder()
    .setContent("What is the capital of California?")
    .build();

Message response = Message.newBuilder()
    .setContent("If the capital of California is what you seek, Sacramento is where you ought to peek.")
    .build();

Example californiaExample = Example.newBuilder()
    .setInput(input)
    .setOutput(response)
    .build();

Crea la instrucción

Pasa los ejemplos a MessagePrompt.Builder junto con el historial de mensajes actual y, de forma opcional, el ejemplo del paso anterior.

import com.google.ai.generativelanguage.v1.Message;
import com.google.ai.generativelanguage.v1.MessagePrompt;

Message geminiMessage = Message.newBuilder()
    .setAuthor("0")
    .setContent("How tall is the Eiffel Tower?")
    .build();

MessagePrompt messagePrompt = MessagePrompt.newBuilder()
    .addMessages(geminiMessage) // required
    .setContext("Respond to all questions with a rhyming poem.") // optional
    .addExamples(californiaExample) // use addAllExamples() to add a list of examples
    .build();

Generar mensajes

Crear un elemento GenerateMessageRequest

Para crear un GenerateMessageRequest, pasa un nombre de modelo y un mensaje a GenerateMessageRequest.Builder:

GenerateMessageRequest request = GenerateMessageRequest.newBuilder()
    .setModel("models/chat-bison-001") // Required, which model to use to generate the result
    .setPrompt(messagePrompt) // Required
    .setTemperature(0.5f) // Optional, controls the randomness of the output
    .setCandidateCount(1) // Optional, the number of generated messages to return
    .build();

Envía la solicitud

GenerateMessageResponse response = client.generateMessage(request);

Message returnedMessage = response.getCandidatesList().get(0);

System.out.println(returnedMessage);

Próximos pasos

Ahora que creaste tu primera app de Java con la API de PaLM, consulta el siguiente recurso para obtener más información sobre la API y los modelos de lenguaje en general.