跳到主要内容

Google Vertex AI

入门

要开始使用,请按照 Vertex AI Gemini 集成教程入门 部分中概述的步骤创建 Google Cloud Platform 账户并建立一个可以访问 Vertex AI API 的新项目。

添加依赖

将以下依赖项添加到您项目的 pom.xml 中:

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-vertex-ai</artifactId>
<version>1.0.0-beta3</version>
</dependency>

或项目的 build.gradle 中:

implementation 'dev.langchain4j:langchain4j-vertex-ai:1.0.0-beta3'

尝试示例代码:

使用 Vertex AI 嵌入模型的示例

PROJECT_ID 字段表示您在创建新 Google Cloud 项目时设置的变量。

import dev.langchain4j.data.embedding.Embedding;
import dev.langchain4j.model.embedding.EmbeddingModel;
import dev.langchain4j.model.output.Response;
import dev.langchain4j.model.vertexai.VertexAiEmbeddingModel;

public class VertexAiEmbeddingModelExample {

private static final String PROJECT_ID = "YOUR-PROJECT-ID";
private static final String MODEL_NAME = "textembedding-gecko@latest";

public static void main(String[] args) {

EmbeddingModel embeddingModel = VertexAiEmbeddingModel.builder()
.project(PROJECT_ID)
.location("us-central1")
.endpoint("us-central1-aiplatform.googleapis.com:443")
.publisher("google")
.modelName(MODEL_NAME)
.build();

Response<Embedding> response = embeddingModel.embed("你好,你好吗?");

Embedding embedding = response.content();

int dimension = embedding.dimension(); // 768
float[] vector = embedding.vector(); // [-0.06050122, -0.046411075, ...

System.out.println(dimension);
System.out.println(embedding.vectorAsList());
}
}

可用的嵌入模型

英语模型多语言模型多模态嵌入
textembedding-gecko@001textembedding-gecko-multilingual@001multimodalembedding
textembedding-gecko@003text-multilingual-embedding-002
text-embedding-004

多语言模型支持的语言列表

带有 @latest 后缀的模型名称引用模型的最新版本。

默认情况下,大多数嵌入模型输出 768 维向量嵌入(除了接受可配置较低维度的"套娃"模型)。 API 每个段接受最多 2,048 个输入令牌进行嵌入。 您最多可以发送 250 个文本段。 当您同时请求嵌入超过 250 个段时,VertexAiEmbeddingModel 类会自动透明地将请求分批处理。 嵌入 API 每次调用限制总共 20,000 个令牌(所有段)。当达到该限制时,VertexAiEmbeddingModel 将再次批处理请求以避免达到该限制。

配置嵌入模型

EmbeddingModel embeddingModel = VertexAiEmbeddingModel.builder()
.project(PROJECT_ID)
.location("us-central1")
.endpoint("us-central1-aiplatform.googleapis.com:443") // 可选
.publisher("google")
.modelName(MODEL_NAME)
.maxRetries(3) // 默认为 3
.maxSegmentsPerBatch(250) // 每批最多 250 个段
.maxTokensPerBatch(2048) // 每个段最多 2048 个令牌
.taskType() // 请参阅下面不同的任务类型
.titleMetadataKey() // 对于 RETRIEVAL_DOCUMENT 任务,您可以为文本段指定标题
// 以识别其文档来源
.autoTruncate(false) // 默认为 false:截断长度超过 2,048 个输入令牌的段
.outputDimensionality(512) // 对于支持不同输出向量维度的模型
.build();

嵌入任务类型

嵌入模型可用于不同的用例。 要获得更好的嵌入值,您可以在以下任务中指定一个_任务_:

  • RETRIEVAL_QUERY
  • RETRIEVAL_DOCUMENT
  • SEMANTIC_SIMILARITY
  • CLASSIFICATION
  • CLUSTERING
  • QUESTION_ANSWERING
  • FACT_VERIFICATION
  • CODE_RETRIEVAL_QUERY

查看支持的模型列表。

参考

Google Codelab 关于 Vertex AI 嵌入模型

可用的稳定嵌入模型

最新嵌入模型版本