PaLM API: краткое руководство по чату с Java

Это краткое руководство поможет вам начать использовать службу чата в PaLM API через клиентскую библиотеку Java.

Получить ключ 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")
    }

Инициализация клиента службы обсуждения

Инициализируйте DiscussServiceClient , передав свой API-ключ (предоставленный через переменную среды API_KEY ) в качестве заголовка в TransportChannelProvider , который будет использоваться 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 , передав имя модели и запрос 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();

Отправить запрос

GenerateMessageResponse response = client.generateMessage(request);

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

System.out.println(returnedMessage);

Следующие шаги

Теперь, когда вы создали свое первое приложение Java с использованием API PaLM, посетите ресурс ниже, чтобы узнать больше об API и языковых моделях в целом.