2026/5/21 12:11:42
网站建设
项目流程
上海网站建设找思创,数字化校园门户网站建设方案,网站建设 app开发,wordpress网址导航一、PostgresML 嵌入模型
Spring AI 支持 PostgresML 文本嵌入模型。
嵌入是文本的一种数值表示形式#xff0c;用于将单词和句子表示为向量#xff08;即数字数组#xff09;。通过使用距离度量比较数值向量的相似性#xff0c;嵌入可用于查找相似的文本片段#xff1b…一、PostgresML 嵌入模型Spring AI 支持 PostgresML 文本嵌入模型。嵌入是文本的一种数值表示形式用于将单词和句子表示为向量即数字数组。通过使用距离度量比较数值向量的相似性嵌入可用于查找相似的文本片段此外由于大多数算法无法直接使用文本嵌入也可用作其他机器学习模型的输入特征。PostgresML 内部可使用许多预训练的大型语言模型从文本生成嵌入。您可以在 Hugging Face 上浏览所有可用 模型以找到最适合的解决方案。二、添加仓库和 BOMSpring AI 的构件发布在 Maven Central 和 Spring Snapshot 仓库中。请参阅 构件仓库 部分将这些仓库添加到您的构建系统中。为便于依赖管理Spring AI 提供了 BOM物料清单以确保在整个项目中使用统一版本的 Spring AI。请参阅 依赖管理 部分将 Spring AI BOM 添加到您的构建系统中。三、自动配置Spring AI 的自动配置和启动器模块的构件名称发生了重大变化。更多信息请参阅升级说明。Spring AI 为 Azure PostgresML 嵌入模型提供了 Spring Boot 自动配置。要启用它请在项目的 Maven pom.xml 文件中添加以下依赖dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-starter-model-postgresml-embedding/artifactId/dependency或在您的 Gradle build.gradle 构建文件中添加dependencies{implementationorg.springframework.ai:spring-ai-starter-model-postgresml-embedding}请参阅 依赖管理 部分将 Spring AI BOM 添加到您的构建文件中。使用 spring.ai.postgresml.embedding.options.* 属性来配置您的 PostgresMlEmbeddingModel。嵌入属性现在通过前缀为 spring.ai.model.embedding 的顶级属性来配置嵌入自动配置的启用和禁用。启用spring.ai.model.embeddingpostgresml默认已启用禁用spring.ai.model.embeddingnone或任何与 postgresml 不匹配的值此项更改是为了支持配置多个模型。前缀 spring.ai.postgresml.embedding 是用于配置 PostgresML 嵌入的 EmbeddingModel 实现的属性前缀。所有以 spring.ai.postgresml.embedding.options 为前缀的属性都可以在运行时通过向 EmbeddingRequest 调用添加特定于请求的运行时选项来覆盖。四、运行时选项使用 PostgresMlEmbeddingOptions.java 来配置 PostgresMlEmbeddingModel 的选项例如要使用的模型等。在启动时您可以将 PostgresMlEmbeddingOptions 传递给 PostgresMlEmbeddingModel 构造函数以配置用于所有嵌入请求的默认选项。在运行时您可以在 EmbeddingRequest 中使用 PostgresMlEmbeddingOptions 来覆盖默认选项。例如为特定请求覆盖默认模型名称EmbeddingResponseembeddingResponseembeddingModel.call(newEmbeddingRequest(List.of(Hello World,World is big and salvation is near),PostgresMlEmbeddingOptions.builder().transformer(intfloat/e5-small).vectorType(VectorType.PG_ARRAY).kwargs(Map.of(device,gpu)).build()));五、示例控制器这将创建一个 EmbeddingModel 实现您可以将其注入到您的类中。以下是一个使用 EmbeddingModel 实现的简单 Controller 类示例。spring.ai.postgresml.embedding.options.transformerdistilbert-base-uncased spring.ai.postgresml.embedding.options.vectorTypePG_ARRAY spring.ai.postgresml.embedding.options.metadataModeEMBED spring.ai.postgresml.embedding.options.kwargs.devicecpuRestControllerpublicclassEmbeddingController{privatefinalEmbeddingModelembeddingModel;AutowiredpublicEmbeddingController(EmbeddingModelembeddingModel){this.embeddingModelembeddingModel;}GetMapping(/ai/embedding)publicMapembed(RequestParam(valuemessage,defaultValueTell me a joke)Stringmessage){EmbeddingResponseembeddingResponsethis.embeddingModel.embedForResponse(List.of(message));returnMap.of(embedding,embeddingResponse);}}六、手动配置如果不使用 Spring Boot 自动配置您可以手动创建 PostgresMlEmbeddingModel。为此请在项目的 Maven pom.xml 文件中添加 spring-ai-postgresml 依赖dependencygroupIdorg.springframework.ai/groupIdartifactIdspring-ai-postgresml/artifactId/dependency或在您的 Gradle build.gradle 构建文件中添加dependencies{implementationorg.springframework.ai:spring-ai-postgresml}请参阅 依赖管理 部分将 Spring AI BOM 添加到您的构建文件中。接下来创建一个 PostgresMlEmbeddingModel 实例并用它来计算两个输入文本的相似度varjdbcTemplatenewJdbcTemplate(dataSource);// 您的 postgresml 数据源PostgresMlEmbeddingModelembeddingModelnewPostgresMlEmbeddingModel(this.jdbcTemplate,PostgresMlEmbeddingOptions.builder().transformer(distilbert-base-uncased)// huggingface 转换器模型名称.vectorType(VectorType.PG_VECTOR)// PostgreSQL 中的向量类型.kwargs(Map.of(device,cpu))// 可选参数.metadataMode(MetadataMode.EMBED)// 文档元数据模式.build());embeddingModel.afterPropertiesSet();// 初始化 jdbc 模板和数据库EmbeddingResponseembeddingResponsethis.embeddingModel.embedForResponse(List.of(Hello World,World is big and salvation is near));手动创建时您必须在设置属性后、使用客户端之前调用 afterPropertiesSet()。将 PostgresMlEmbeddingModel 创建为 Bean 会更方便也更推荐。这样您就不必手动调用 afterPropertiesSet()BeanpublicEmbeddingModelembeddingModel(JdbcTemplatejdbcTemplate){returnnewPostgresMlEmbeddingModel(jdbcTemplate,PostgresMlEmbeddingOptions.builder().....build());}