本快速入门将引导您通过 Java 客户端库开始使用 PaLM API 中的聊天服务。
获取 API 密钥
首先,您需要获取 API 密钥。
安装 API 客户端
按照这些说明将 PaLM Java SDK 安装到您的本地 Maven 制品库中,以便您可以将其作为依赖项添加到 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") }
初始化 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 简介主题。