PaLM API: Java を使用した Embeddings クイックスタート

このクイックスタートでは、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
    
  3. Gradle 構成ファイルを開き、mavenLocal()repositories の下にリストされていることを確認します。

    repositories {
        mavenCentral()
        // ...
    
        // Add the Maven Local repository
        mavenLocal()
    }
    
  4. また、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")
    }
    

テキスト サービス クライアントを初期化する

Java プログラムで、TextServiceSettings で使用する TransportChannelProvider に API キーをヘッダーとして渡して TextServiceClient を初期化します。

HashMap<String, String> headers = new HashMap<>();
headers.put("x-goog-api-key", "API_KEY");

TransportChannelProvider provider = InstantiatingGrpcChannelProvider.newBuilder()
    .setHeaderProvider(FixedHeaderProvider.create(headers))
    .build();

TextServiceSettings settings = TextServiceSettings.newBuilder()
    .setTransportChannelProvider(provider)
    .setCredentialsProvider(FixedCredentialsProvider.create(null))
    .build();

TextServiceClient client = TextServiceClient.create(settings);

エンベディングを生成する

このセクションでは、embedText メソッドを使用してテキストのエンベディングを生成する方法について説明します。

embedText メソッドを使用するには、モデルの名前と埋め込むテキストを渡します。浮動小数点値のリストが表示されます。

EmbedTextRequest request = EmbedTextRequest.newBuilder()
    .setModel("models/embedding-gecko-001") // Required, which model to use to generate the result
    .setText("What do squirrels eat?") // Required
    .build();

EmbedTextResponse response = client.embedText(request);

List<Float> embedding = response.getEmbedding().getValueList();

System.out.println(embedding);