配置模型服务
搜索大模型插件通过模型服务将AI能力集成到Elasticsearch集群中,实现语义向量搜索、语义排序等高级功能。其核心流程是基于业务需求(如语义搜索、智能推荐)定义模型类型(Embedding/Rerank等),并绑定对应的AI服务地址,确保上层应用能通过向量索引正确调用服务接口。
- 语义搜索:依赖Embedding模型服务,将文本转换为向量,实现相似性检索。
- 智能推荐:组合使用Embedding模型服务(生成用户/物品向量)和Rerank模型服务,优化推荐结果排序。
前提条件
确认Elasticsearch集群已启用搜索大模型插件,操作指导请参见开启搜索大模型插件。
支持的模型服务
搜索大模型插件支持接入多种模型服务,具体支持的模型服务清单如表1 支持的模型服务所示。
获取独享版集群的访问地址
- 登录云搜索服务管理控制台。
- 在左侧导航栏,选择“集群管理 > Elasticsearch”。
- 在集群列表,单击目标集群名称,进入集群详情页。
- 选择“依赖服务管理”页签,进入依赖服务列表。
- 在依赖服务列表,选择目标服务,单击操作列的“查看详情”跳转到独享版集群的基本信息页面。
- 获取“内网访问IPv4地址”即独享版集群的访问地址,后续配置模型服务需要使用。
图1 获取集群访问地址
登录Kibana
登录Kibana进入命令执行页面。Elasticsearch集群支持多种客户端访问,本文仅以CSS服务集成的Kibana为例介绍配置指导。
- 登录云搜索服务管理控制台。
- 在左侧导航栏,选择“集群管理 > Elasticsearch”。
- 在集群列表,选择目标集群,单击操作列的“Kibana”,登录Kibana。
- 在Kibana左侧导航栏选择“Dev Tools”,进入操作页面。
配置模型服务
当模型创建完成后,根据业务需要配置模型服务。下面介绍了各类模型服务的配置指导。
管理模型服务
搜索大模型插件深度集成Kibana命令行界面(CLI),支持对模型服务进行更新、监控、扩缩容等全生命周期管理。如表4所示,可以通过标准CLI命令执行更新(update)、删除(delete)等核心操作管理模型服务。
操作类型 |
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 } |
查看模型服务 |
|
查看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" } } } } |