PaLM API:使用 Java 進行嵌入活動的快速入門導覽課程

本快速入門導覽課程可協助您開始使用 PaLM API 的嵌入服務。您將使用嵌入服務產生文字嵌入,以在各種自然語言應用程式中使用。

取得 API 金鑰

如要開始使用,請取得 API 金鑰

什麼是嵌入?

嵌入是一種技術,用來以陣列中的浮點數清單來表示文字 (例如字詞、句子或整個段落)。關鍵概念是,意義相似的文字會有類似的嵌入。您可以運用兩者之間的關係,進行許多重要工作。

安裝 API 用戶端

這些操作說明會在本機 Maven 存放區中安裝 PaLM Java SDK,以便您將其新增為 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 程式中,將 API 金鑰做為標頭傳遞至 TransportChannelProvider,供 TextServiceSettings 使用,藉此初始化 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);