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.
- Scarica il file google-cloud-ai-generativelanguage-v1-java.tar.gz.
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
Apri il file di configurazione Gradle e assicurati che
mavenLocal()
sia elencato inrepositories
:repositories { mavenCentral() // ... // Add the Maven Local repository mavenLocal() }
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.
- Per scoprire di più sulle tecniche di prompt, consulta l'argomento Introduzione agli LLM.