阿里云开源的AI网关Higress通过集成搜索引擎的实时结果,增强AI模型的回答准确性和时效性。基于Higress构建的MSE云原生网关,为大量企业客户提供了全托管、免运维的高可用网关服务。本文介绍如何基于MSE云原生网关实现ACS集群中自建DeepSeek推理服务的联网搜索能力。
背景介绍
Higress是一款阿里云开源的AI网关,支持国内外主流模型供应商和基于vLLM/ollama等自建的DeepSeek模型,同时支持Kubernetes的Ingress API和Gateway API标准。
Higress提供了大量AI插件,可以一站式增强自建DeepSeek的能力,例如:
支持对接夸克/Google/Bing/ElasticSearch等多种搜索引擎来源,实现联网搜索能力。Higress通过集成搜索引擎的实时结果,增强AI模型的回答准确性和时效性。插件会自动将搜索结果注入到提示模板中,并根据配置决定是否在最终回答中添加引用来源。
支持基于Token的限流防护能力,避免自建模型被突发流量打挂,导致长时间不可服务。
支持基于阿里云内容安全服务对大模型输入输出内容进行安全对齐,同时支持数据脱敏功能。
支持基于语义缓存,降低大模型资源开销,并提高响应速度。
前提条件
已创建MSE云原生网关,网关类型为普通实例,支持插件市场功能。
已在ACS集群安装MSE Ingress Controller,由于ACS自动新建的MSE云原生网关为Serverless实例,需要手动选择使用已创建的普通实例。
已使用ACS GPU算力构建DeepSeek推理服务,例如使用以下三种方式中的一种:
操作步骤
步骤一:创建Ingress资源
Ingress配置和Service的配置密切相关,具体Service名称可在容器计算服务控制台,进入目标集群后选择 查询。以下为在ACS上部署DeepSeek所使用的Service配置示例:
apiVersion: v1 kind: Service metadata: name: deepseek-r1 spec: type: ClusterIP selector: app: deepseek-r1 ports: - protocol: TCP port: 8000 targetPort: 8000
则在相同命名空间下,可以创建如下Ingress配置:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: deepseek-r1 spec: ingressClassName: mse rules: - http: paths: - backend: service: name: deepseek-r1 port: number: 8000 path: /v1/chat/completions pathType: Exact
您可以通过Kubernetes官方文档查看更多Ingress字段配置说明。
步骤二:配置搜索引擎服务
在MSE云原生网关控制台创建各个搜索引擎API域名对应的服务,以配置Higress对接夸克、Google、Bing等搜索引擎。
登录MSE网关管理控制台。
在左侧导航栏选择云原生网关 > 网关列表。
在网关列表页面,单击已经关联ACS的目标网关名称,然后在左侧导航栏,选择路由管理。
在路由管理页面,选择服务标签,并点击创建服务按钮,如下图所示。
创建夸克搜索引擎对应的服务
夸克搜索引擎API需要API Key才可以使用,可以参考阿里云IQS服务进行申请。
按如下方式进行对应字段配置:
服务来源:DNS 域名
服务名称:quark
服务端口:443
域名列表:
cloud-iqs.aliyuncs.com
TLS 模型:单向 TLS
服务名称标识:
cloud-iqs.aliyuncs.com
创建Google搜索引擎对应的服务
Google搜索引擎API需要API Key才可以使用,需要自行申请。
按如下方式进行对应字段配置:
服务来源:DNS 域名
服务名称:google
服务端口:443
域名列表:
customsearch.googleapis.com
TLS 模型:单向 TLS
服务名称标识:
customsearch.googleapis.com
创建Bing搜索引擎对应的服务
Bing搜索引擎API需要API Key才可以使用,需要自行申请。
按如下方式进行对应字段配置:
服务来源:DNS 域名
服务名称:bing
服务端口:443
域名列表:
api.bing.microsoft.com
TLS 模型:单向 TLS
服务名称标识:
api.bing.microsoft.com
步骤三:配置AI搜索增强插件
您可以在MSE云原生网关的控制台的插件市场中开启AI搜索增强插件:
在网关列表页面,单击目标网关名称,然后在左侧导航栏,选择插件市场。
在插件市场页面,搜索框中输入“ai-search”,点击卡片进入。
在ai-search插件页面,标签页选中插件配置,即可通过YAML方式进行配置,具体的配置字段说明可以点击插件文档标签页进行查看。
夸克配置其他搜索引擎配置searchFrom: - apiKey: your-quark-api-key # <<< 替换成你自己的 quark api key servicePort: 443 type: quark serviceName: quark.dns needReference: true
searchFrom: - apiKey: your-quark-api-key # <<< 替换成你自己的 quark api key servicePort: 443 type: quark serviceName: quark.dns - apiKey: your-google-api-key # <<< 替换成你自己的 google api key cx: your-search-engine-id servicePort: 443 type: google serviceName: google.dns - apiKey: bing-key # <<< 替换成你自己的 bing api key servicePort: 443 type: bing serviceName: bing.dns # 设置为 true,则会在回答结果中标注引用来源 needReference: true
完成上述配置后,您可以将自建的DeepSeek模型接入联网搜索。然而此时所有用户请求将原封不动地发给搜索引擎,返回的搜索结果可能并不满足预期。您可以通过开启插件的搜索改写功能,从而获得两大额外附加能力:
搜索引擎优化:根据原始问题,智能生成一条或多条经过优化的搜索查询语句,以提高搜索引擎的响应质量和相关性。
查询需求识别:智能识别问题是否需要通过搜索引擎来回答,例如需求是翻译文档,系统将自动避免向搜索引擎发起请求,从而提升响应速度和准确性。
搜索改写的配置方式如下:
searchFrom: - apiKey: your-quark-api-key servicePort: 443 type: quark serviceName: quark.dns needReference: true # ↓ 下面是搜索改写配置 searchRewrite: # 这里复用了上面部署的 r1 模型,搜索重写更建议使用 deepseek-v3 等非推理模型 llmServiceName: deepseek-r1.default.svc.cluster.local llmServicePort: 8000 llmUrl: /v1/chat/completions llmModelName: deepseek-r1
步骤四:验证搜索效果
在网关实例的基本概览页面,可以看到网关的入口地址(NLB是域名,CLB是IP)。
获取入口地址后,可以直接使用
curl
命令进行测试:curl http://<入口地址>/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-r1", "messages": [ { "role": "user", "content": "Is it possible to train an LLM with small dataset and low cost?" } ], "max_tokens": 1024, "temperature": 0.7, "top_p": 0.9, "seed": 10 }'
以下是使用LobeChat聊天工具对接的效果:
- 本页导读 (0)
- 背景介绍
- 前提条件
- 操作步骤
- 步骤一:创建Ingress资源
- 步骤二:配置搜索引擎服务
- 步骤三:配置AI搜索增强插件
- 步骤四:验证搜索效果