本快速入門導覽課程可協助您透過 Java 用戶端程式庫,開始使用 PaLM API 中的即時通訊服務。
取得 API 金鑰
如要開始使用,請取得 API 金鑰。
安裝 API 用戶端
這些操作說明會在本機 Maven 存放區中安裝 PaLM Java SDK,以便您將其新增為 Gradle 專案的依附元件。
- 下載 google-cloud-ai-generativelanguage-v1-java.tar.gz 檔案。
解壓縮檔案,並在
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
開啟 Gradle 設定檔,並確認
mavenLocal()
列於repositories
下方:repositories { mavenCentral() // ... // Add the Maven Local repository mavenLocal() }
此外,請在 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 簡介」主題。