PaLM API:适用于 Java 的 Chat 快速入门

本快速入门将引导您通过 Java 客户端库开始使用 PaLM API 中的聊天服务。

获取 API 密钥

首先,您需要获取 API 密钥

安装 API 客户端

按照这些说明将 PaLM Java SDK 安装到您的本地 Maven 制品库中,以便您可以将其作为依赖项添加到 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")
    }

初始化 Discuss 服务客户端

初始化 DiscussServiceClient,方法是将您的 API 密钥(通过 API_KEY 环境变量提供)作为标头传递给 DiscussServiceSettings 要使用的 TransportChannelProvider

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,可以选择将上一步中的示例传递给 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 简介主题。