このクイックスタートでは、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
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") }
テキスト サービス クライアントを初期化する
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);