在ACS中使用AI网关实现自建DeepSeek联网搜索

更新时间:2025-03-17 05:36:58

阿里云开源的AI网关Higress通过集成搜索引擎的实时结果,增强AI模型的回答准确性和时效性。基于Higress构建的MSE云原生网关,为大量企业客户提供了全托管、免运维的高可用网关服务。本文介绍如何基于MSE云原生网关实现ACS集群中自建DeepSeek推理服务的联网搜索能力。

背景介绍

Higress是一款阿里云开源的AI网关,支持国内外主流模型供应商和基于vLLM/ollama等自建的DeepSeek模型,同时支持KubernetesIngress APIGateway API标准。

Higress提供了大量AI插件,可以一站式增强自建DeepSeek的能力,例如:

  • 支持对接夸克/Google/Bing/ElasticSearch等多种搜索引擎来源,实现联网搜索能力。Higress通过集成搜索引擎的实时结果,增强AI模型的回答准确性和时效性。插件会自动将搜索结果注入到提示模板中,并根据配置决定是否在最终回答中添加引用来源。

  • 支持基于Token的限流防护能力,避免自建模型被突发流量打挂,导致长时间不可服务。

  • 支持基于阿里云内容安全服务对大模型输入输出内容进行安全对齐,同时支持数据脱敏功能。

  • 支持基于语义缓存,降低大模型资源开销,并提高响应速度。

前提条件

操作步骤

步骤一:创建Ingress资源

  1. 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 
  2. 则在相同命名空间下,可以创建如下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等搜索引擎。

  1. 登录MSE网关管理控制台

  2. 在左侧导航栏选择云原生网关 > 网关列表

  3. 网关列表页面,单击已经关联ACS的目标网关名称,然后在左侧导航栏,选择路由管理

  4. 路由管理页面,选择服务标签,并点击创建服务按钮,如下图所示。

    image

创建夸克搜索引擎对应的服务

夸克搜索引擎API需要API Key才可以使用,可以参考阿里云IQS服务进行申请。

按如下方式进行对应字段配置:

  1. 服务来源:DNS 域名

  2. 服务名称:quark

  3. 服务端口:443

  4. 域名列表:cloud-iqs.aliyuncs.com

  5. TLS 模型:单向 TLS

  6. 服务名称标识:cloud-iqs.aliyuncs.com

创建Google搜索引擎对应的服务

Google搜索引擎API需要API Key才可以使用,需要自行申请。

按如下方式进行对应字段配置:

  1. 服务来源:DNS 域名

  2. 服务名称:google

  3. 服务端口:443

  4. 域名列表:customsearch.googleapis.com

  5. TLS 模型:单向 TLS

  6. 服务名称标识:customsearch.googleapis.com

创建Bing搜索引擎对应的服务

Bing搜索引擎API需要API Key才可以使用,需要自行申请。

按如下方式进行对应字段配置:

  1. 服务来源:DNS 域名

  2. 服务名称:bing

  3. 服务端口:443

  4. 域名列表:api.bing.microsoft.com

  5. TLS 模型:单向 TLS

  6. 服务名称标识:api.bing.microsoft.com

步骤三:配置AI搜索增强插件

您可以在MSE云原生网关的控制台的插件市场中开启AI搜索增强插件:

  1. 网关列表页面,单击目标网关名称,然后在左侧导航栏,选择插件市场

  2. 插件市场页面,搜索框中输入“ai-search”,点击卡片进入。

    image

  3. ai-search插件页面,标签页选中插件配置,即可通过YAML方式进行配置,具体的配置字段说明可以点击插件文档标签页进行查看。

    image

    夸克配置
    其他搜索引擎配置
    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

步骤四:验证搜索效果

  1. 在网关实例的基本概览页面,可以看到网关的入口地址(NLB是域名,CLBIP)。

    image

  2. 获取入口地址后,可以直接使用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聊天工具对接的效果:

    image

  • 本页导读 (0)
  • 背景介绍
  • 前提条件
  • 操作步骤
  • 步骤一:创建Ingress资源
  • 步骤二:配置搜索引擎服务
  • 步骤三:配置AI搜索增强插件
  • 步骤四:验证搜索效果