更新时间:2025-08-22 GMT+08:00
分享

配置模型服务

搜索大模型插件通过模型服务将AI能力集成到Elasticsearch集群中,实现语义向量搜索、语义排序等高级功能。其核心流程是基于业务需求(如语义搜索、智能推荐)定义模型类型(Embedding/Rerank等),并绑定对应的AI服务地址,确保上层应用能通过向量索引正确调用服务接口。

典型应用场景:
  • 语义搜索:依赖Embedding模型服务,将文本转换为向量,实现相似性检索。
  • 智能推荐:组合使用Embedding模型服务(生成用户/物品向量)和Rerank模型服务,优化推荐结果排序。

前提条件

确认Elasticsearch集群已启用搜索大模型插件,操作指导请参见开启搜索大模型插件

支持的模型服务

搜索大模型插件支持接入多种模型服务,具体支持的模型服务清单如表1 支持的模型服务所示。

表1 支持的模型服务

模型服务

模型类型

模型服务的功能介绍

Embedding模型服务

semantic_vector

搜索语义向量化模型,提供将文本转换为向量的功能。

Rerank模型服务

reorder

搜索精排模型,提供对语义查询结果进行精排的功能。

获取独享版集群的访问地址

配置模型服务时,会用到搜索大模型的endpoint,即独享版集群的访问地址。
  1. 登录云搜索服务管理控制台
  2. 在左侧导航栏,选择“集群管理 > Elasticsearch”
  3. 在集群列表,单击目标集群名称,进入集群详情页。
  4. 选择“依赖服务管理”页签,进入依赖服务列表。
  5. 在依赖服务列表,选择目标服务,单击操作列的“查看详情”跳转到独享版集群的基本信息页面。
  6. 获取“内网访问IPv4地址”即独享版集群的访问地址,后续配置模型服务需要使用。
    图1 获取集群访问地址

登录Kibana

登录Kibana进入命令执行页面。Elasticsearch集群支持多种客户端访问,本文仅以CSS服务集成的Kibana为例介绍配置指导。

  1. 登录云搜索服务管理控制台
  2. 在左侧导航栏,选择“集群管理 > Elasticsearch”
  3. 在集群列表,选择目标集群,单击操作列的“Kibana”,登录Kibana。
  4. 在Kibana左侧导航栏选择“Dev Tools”,进入操作页面。

配置模型服务

当模型创建完成后,根据业务需要配置模型服务。下面介绍了各类模型服务的配置指导。

管理模型服务

搜索大模型插件深度集成Kibana命令行界面(CLI),支持对模型服务进行更新、监控、扩缩容等全生命周期管理。如表4所示,可以通过标准CLI命令执行更新(update)、删除(delete)等核心操作管理模型服务。

表4 模型服务管理的核心操作

操作类型

API命令

请求示例

响应示例

更新模型服务

POST  _inference/model_service/{service_name}/update

更新Embedding模型服务:

POST  _inference/model_service/pangu_vector/update
{
  "description": "搜索大模型-语义向量化模型更新",
  "service_config": {
    "semantic_vector": {
      "service_urls": ["http://{endpoint}/app/search/v1/vector"],
      "timeout_ms": 60000
    }
  }
}

返回更新后的模型服务信息:

{
  "service_name" : "pangu_vector",
  "service_type" : "remote",
  "description" : "搜索大模型-语义向量化模型更新",
  "create_time" : 1747966388508,
  "service_config" : {
    "semantic_vector" : {
      "embedding_type" : "query2doc",
      "service_urls" : [
"http://{endpoint}/app/search/v1/vector"],
      "method" : "POST",
      "timeout_ms" : 60000,
      "max_conn" : 200,
      "security" : false,
      "dimension" : "768",
      "algorithm" : "GRAPH",
      "metric" : "inner_product"
    }
  }
}

检查模型服务连通性

GET _inference/model_service/{service_name}/check

检查Embedding模型服务的连通性:

GET _inference/model_service/pangu_vector/check
{
  "acknowledged" : true
}

查看模型服务

  • 查看全部模型服务的配置信息
    GET _inference/model_service
  • 查看单个模型服务的配置信息
    GET _inference/model_service/{service_name}

查看Embedding模型服务的配置信息:

GET _inference/model_service/pangu_vector

返回模型服务信息:

{
  "count" : 1,
  "model_service_configs" : [
    {
      "service_name" : "pangu_vector",
      "service_type" : "remote",
      "description" : "搜索大模型-语义向量化模型",
      "create_time" : 1747966388508,
      "service_config" : {
        "semantic_vector" : {
          "embedding_type" : "query2doc",
          "service_urls" : ["http://{endpoint}/app/search/v1/vector"],
          "method" : "POST",
          "timeout_ms" : 60000,
          "max_conn" : 200,
          "security" : false,
          "dimension" : "768",
          "algorithm" : "GRAPH",
          "metric" : "inner_product"
        }
      }
    }
  ]
}

删除模型服务配置(删除后,索引将无法使用该模型服务)

DELETE _inference/model_service/{service_name}

删除Embedding模型服务配置:

DELETE _inference/model_service/pangu_vector
{
  "acknowledged" : true
}

设置模型服务的数量上限(最多支持创建几个模型服务)

PUT _cluster/settings
{
  "transient": {
    "pg_search.inference.max_inference_model_service": 100  //最大值是1000,最小值是1,默认值是100。
  } 
}

设置模型服务的数量上限为10:

PUT _cluster/settings
{
  "transient": {
    "pg_search.inference.max_inference_model_service": 10
  } 
}
{
  "acknowledged" : true,
  "persistent" : { },
  "transient" : {
    "pg_search" : {
      "inference" : {
        "max_inference_model_service" : "10"
      }
    }
  }
}

相关文档