API PaLM: guia de início rápido do Chat com Java

Neste guia de início rápido, você aprenderá a usar o serviço de chat na API PaLM pela biblioteca de cliente Java.

Receber uma chave de API

Para começar, você precisa conseguir uma chave de API.

instalação do cliente da API

Estas instruções vão instalar o SDK do PaLM Java no repositório Maven local para que você possa adicioná-lo como uma dependência ao projeto do Gradle.

  1. Faça o download do arquivo google-cloud-ai-generativelanguage-v1-java.tar.gz.
  2. Extraia os arquivos e instale-os em 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
    

Como adicionar o SDK ao seu projeto

  1. Abra o arquivo de configuração do Gradle e verifique se mavenLocal() está listado em repositories:

    repositories {
        mavenCentral()
        // ...
    
        // Add the Maven Local repository
        mavenLocal()
    }
    
  2. Além disso, no arquivo de configuração do Gradle, adicione as bibliotecas necessárias ao bloco 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")
    }
    

Inicializar o cliente do serviço de discussão

Inicialize um DiscussServiceClient transmitindo sua chave de API (fornecida pela variável de ambiente API_KEY) como um cabeçalho para o TransportChannelProvider a ser usado pelo 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);

Criar um prompt de mensagem

Você precisa fornecer um MessagePrompt à API para que ela possa prever qual é a próxima mensagem na discussão.

(opcional) Crie alguns exemplos

Outra opção é fornecer alguns exemplos do que o modelo deve gerar. Isso inclui a entrada do usuário e a resposta que o modelo precisa 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();

Criar o comando

Transmita os exemplos para o MessagePrompt.Builder com o histórico de mensagens atual e, opcionalmente, o exemplo da etapa 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();

Gerar mensagens

Criar um GenerateMessageRequest.

Crie um GenerateMessageRequest transmitindo um nome de modelo e uma solicitação para o 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();

Enviar a solicitação

GenerateMessageResponse response = client.generateMessage(request);

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

System.out.println(returnedMessage);

Próximas etapas

Agora que você criou seu primeiro app Java usando a API PaLM, confira o recurso abaixo para saber mais sobre a API e os modelos de linguagem em geral.