PaLM API:透過 Java 使用即時通訊快速入門導覽課程

本快速入門導覽課程可協助您透過 Java 用戶端程式庫,開始使用 PaLM API 中的即時通訊服務。

取得 API 金鑰

如要開始使用,請取得 API 金鑰

安裝 API 用戶端

這些操作說明會在本機 Maven 存放區中安裝 PaLM Java SDK,以便您將其新增為 Gradle 專案的依附元件。

  1. 下載 google-cloud-ai-generativelanguage-v1-java.tar.gz 檔案。
  2. 解壓縮檔案,並在 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
    

在專案中新增 SDK

  1. 開啟 Gradle 設定檔,並確認 mavenLocal() 列於 repositories 下方:

    repositories {
        mavenCentral()
        // ...
    
        // Add the Maven Local repository
        mavenLocal()
    }
    
  2. 此外,請在 Gradle 設定檔中將必要的程式庫新增至 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")
    }
    

初始化討論服務用戶端

將 API 金鑰 (透過 API_KEY 環境變數提供) 做為標頭傳遞至 TransportChannelProvider,藉此初始化 DiscussServiceClient,供 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);

建立訊息提示

您必須為 API 提供 MessagePrompt,才能預測討論中的下一則訊息。

(選用) 建立範例

您可以視需要提供一些範例,說明模型應產生的內容。這包括使用者輸入內容,以及模型應模擬的回應。

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

建立提示

將範例和目前訊息記錄傳遞到 MessagePrompt.Builder,並視需要傳遞上一步的範例。

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

產生訊息

建立 GenerateMessageRequest

將模型名稱和提示傳遞至 GenerateMessageRequest.Builder,以建立 GenerateMessageRequest

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

傳送要求

GenerateMessageResponse response = client.generateMessage(request);

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

System.out.println(returnedMessage);

後續步驟

現在您已使用 PaLM API 建立第一個 Java 應用程式,請參閱下方資源,進一步瞭解 API 和語言模型的一般概念。

  • 如要進一步瞭解提示技巧,請參閱「LLM 簡介」主題。