API PaLM: guida rapida all'uso di Chat con Java

Questa guida rapida ti consente di iniziare a utilizzare il servizio di chat nell'API PaLM tramite la libreria client Java.

Ottenere una chiave API

Per iniziare, devi ottenere una chiave API.

Installazione del client API

In queste istruzioni l'SDK PaLM Java verrà installato nel tuo repository Maven locale in modo che tu possa aggiungerlo come dipendenza al progetto Gradle.

  1. Scarica il file google-cloud-ai-generativelanguage-v1-java.tar.gz.
  2. Estrai i file e installali in 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
    

Aggiunta dell'SDK al progetto

  1. Apri il file di configurazione Gradle e assicurati che mavenLocal() sia elencato in repositories:

    repositories {
        mavenCentral()
        // ...
    
        // Add the Maven Local repository
        mavenLocal()
    }
    
  2. Inoltre, nel tuo file di configurazione Gradle, aggiungi le librerie necessarie al blocco 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")
    }
    

Inizializzare il client di servizio Dispute

Inizializza un DiscussServiceClient passando la chiave API (fornita tramite la variabile di ambiente API_KEY) come intestazione a TransportChannelProvider, che dovrà essere utilizzata da 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 un prompt di messaggio

Devi fornire un MessagePrompt all'API in modo che possa prevedere qual è il messaggio successivo nella discussione.

(Facoltativo) Crea alcuni esempi

Facoltativamente, puoi fornire alcuni esempi di ciò che dovrebbe generare il modello. Sono inclusi sia l'input dell'utente sia la risposta che il modello deve emulare.

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

Passa gli esempi a MessagePrompt.Builder insieme alla cronologia dei messaggi attuale e, facoltativamente, all'esempio del passaggio precedente.

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

Genera messaggi

Crea un GenerateMessageRequest

Crea un GenerateMessageRequest passando il nome e il prompt di un modello 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();

Invia la richiesta

GenerateMessageResponse response = client.generateMessage(request);

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

System.out.println(returnedMessage);

Passaggi successivi

Ora che hai creato la tua prima app Java utilizzando l'API PaLM, dai un'occhiata alla risorsa di seguito per saperne di più sull'API e sui modelli linguistici in generale.