PaLM API: 자바를 사용한 채팅 빠른 시작

이 빠른 시작에서는 자바 클라이언트 라이브러리를 통해 PaLM API의 채팅 서비스를 사용하는 방법을 알아봅니다.

API 키 가져오기

시작하려면 API 키를 가져와야 합니다.

API 클라이언트 설치

다음 안내를 따르면 PaLM 자바 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")
    }
    

토론 서비스 클라이언트 초기화

API 키 (API_KEY 환경 변수를 통해 제공됨)를 DiscussServiceSettings에서 사용할 TransportChannelProvider에 헤더로 전달하여 DiscussServiceClient를 초기화합니다.

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를 사용하여 첫 번째 자바 앱을 만들었으므로 아래 리소스를 확인하여 일반적인 API 및 언어 모델에 대해 자세히 알아보세요.

  • 프롬프팅 기술에 대한 자세한 내용은 LLM 소개 주제를 참조하세요.