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 密钥作为标头传递给 TextServiceSettings 要使用的 TransportChannelProvider,从而初始化 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);