Higress AI网关

简介

  • Higress 是基于阿里内部的Envoy Gateway实践沉淀、一款云原生 API 网关,内核基于 Istio 和 Envoy,核心功能基于 Go 语言开发。
  • 插件支持丰富,可以用 Go/Rust/JS 等编写 Wasm 插件,提供了数十个现成的通用插件,以及开箱即用的控制台(Demo点这里,admin/admin321)。
  • Higress 在阿里内部为解决 Tengine reload 对长连接业务有损,以及 gRPC/Dubbo 负载均衡能力不足而诞生。
  • 阿里云基于 Higress 构建了云原生 API 网关产品,为大量企业客户提供 99.99% 的网关高可用保障服务能力。
  • Higress 基于 AI 网关能力,支撑了通义千问 APP、百炼大模型 API、机器学习 PAI 平台等 AI 业务。同时服务国内头部的 AIGC 企业(如零一万物),以及 AI 产品(如 FastGPT)。

总结: Higress很好很强大,集"流量网关 + 微服务网 + AI网关"大成于一身。

Istio 与 Envoy 是云原生架构中协同工作的核心组件,共同构成服务网格的基础设施。

Istio:由 Google、IBM 和 Lyft 联合开发,集成 Envoy 作为数据平面,提供全局的流量管理、安全与策略控制

Envoy:由 Lyft 开发的高性能 L4/L7 代理,以 Sidecar 形式部署在每个微服务 Pod 中,负责处理所有入站/出站流量。

AI网关

  • AI Gateway = AI Native API Gateway
  • AI 网关的本质依然是 API 网关,AI 原生的意义在于,在这样的 API 网关里,AI 是一等公民。API 研发,API 供应,API 消费,以及 API 观测都基于 AI 场景下的需求,演进出全新的能力。
  • 这是传统 API 网关的功能范畴,AI 场景下仍然有其通用价值:

在 AI 场景下,基于 Higress 可以将 API 网关的功能范畴进一步扩展:

核心优势

  • 生产等级

脱胎于阿里巴巴多年生产验证的内部产品,支持每秒请求量达数十万级的大规模场景。

彻底摆脱 <font style="color:rgb(53, 56, 65);">Nginx reload 引起的流量抖动</font>,配置变更毫秒级生效且业务无感。对 AI 业务等长连接场景特别友好。

  • 便于扩展

提供丰富的官方插件库,涵盖 AI、流量管理、安全防护等常用功能,满足90%以上的业务场景需求。

主打 Wasm 插件扩展,通过沙箱隔离确保内存安全,支持多种编程语言,允许插件版本独立升级,实现流量无损热更新网关逻辑。

  • 安全易用

基于 Ingress API 和 Gateway API 标准,提供开箱即用的 UI 控制台,WAF 防护插件、IP/Cookie CC 防护插件开箱即用。

支持对接 Let’s Encrypt 自动签发和续签免费证书,并且可以脱离 K8s 部署,一行 Docker 命令即可启动,方便个人开发者使用。

  • 流式处理

支持真正的完全流式处理请求/响应 Body,Wasm 插件很方便地自定义处理 SSE (Server-Sent Events)等流式协议的报文。

在 AI 业务等大带宽场景下,可以显著降低内存开销。

使用场景

  • AI 网关

Higress 能够用统一的协议对接国内外所有 LLM 模型厂商,同时具备丰富的 AI 可观测、多模型负载均衡/fallback、AI token 流控、AI 缓存等能力:

  • Kubernetes Ingress 网关:

Higress 可以作为 K8s 集群的 Ingress 入口网关, 并且兼容了大量 K8s Nginx Ingress 的注解,可以从 K8s Nginx Ingress 快速平滑迁移到 Higress。

支持 Gateway API 标准,支持用户从 Ingress API 平滑迁移到 Gateway API。

相比 ingress-nginx,资源开销大幅下降,路由变更生效速度有十倍提升:

  • 微服务网关:

Higress 可以作为微服务网关, 能够对接多种类型的注册中心发现服务配置路由,例如 Nacos, ZooKeeper, Consul, Eureka 等。

并且深度集成了 Dubbo, Nacos, Sentinel 等微服务技术栈,基于 Envoy C++ 网关内核的出色性能,相比传统 Java 类微服务网关,可以显著降低资源使用率,减少成本。

  • 安全防护网关:

Higress 可以作为安全防护网关, 提供 WAF 的能力,并且支持多种认证鉴权策略,例如 key-auth, hmac-auth, jwt-auth, basic-auth, oidc 等。

实战

Higress AI网关部署

安装Higress AI网关

curl -sS https://higress.cn/ai-gateway/install.sh | bash

# Docker部署,端口映射使用了127.0.0.1(localhost),这导致:外部网络请求(通过服务器 IP)无法到达容器服务、仅localhost或127.0.0.1的本地访问有效
# 修改端口绑定为全网可访问(0.0.0.0)
higress-ai-install.sh | bash

安装脚本: 参考本文绑定的资源

部署完成后,会出现以下界面:

服务介绍

默认8001端口是对应制台服务:

默认端口8080、8443是对应Higress-Gateway网关服务,一个是HTTP协议、一个是HTTPS协议:

安装Naocs 3.0

主要是用于测试Higress-Gateway发现服务,并进行服务的负载。

docker run --name nacos-standalone-derby \
    -e MODE=standalone \
    -e NACOS_AUTH_TOKEN=P1hsP69jy0FSQmk3UYVfETjN508BBWVn/hhw2fp9ZYVV \
    -e NACOS_AUTH_IDENTITY_KEY=xkw \
    -e NACOS_AUTH_IDENTITY_VALUE=P1hsP69jy0FSQmk3UYVfETjN508BBWVn/hhw2fp9ZYVV \
    -p 8081:8080 \
    -p 8848:8848 \
    -p 9848:9848 \
    -d nacos/nacos-server:latest

Nacos管理后台:http://127.0.0.1:8081/ nacos/nacos

AI网关

AI路由配置

在AI服务提供者管理界面,可以配置已集成供应商的 API-KEY。当前已集成的供应商有阿里云、DeepSeek、Azure OpenAI、OpenAI、豆包等。

每个AI服务提供商都可以单独配置令牌降级策略,当某一认证令牌返回异常响应的数量超出阈值,Higress 将暂停使用该令牌发起请求,直至后续健康检测请求连续收到一定数量的正常响应。

AI路由管理界面,支持配置不同路由的域名、模型匹配方式、降级配置、请求消费者等。也可以通过策略,配置不同认证鉴权方式、限流策略等,也支持如 RAG、Prompt 模板、语义缓存等功能。

调试

脚本1 - 非流式
curl 'http://127.0.0.1:8080/v1/chat/completions'       -H 'Content-Type: application/json'       -d '{
         "model": "qwen-vl-max-latest",
         "messages": [
           {
             "role": "user",
              "content": "Hello! Who are you?"
           }
          ]
       }'
  • 脚本1执行结果:
{
    "id": "ff096ae1-3dea-918c-860e-c0cc09bc1c15",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": [
                    {
                        "text": "Hello! I am a large language model created by Alibaba Cloud. My name is Qwen. I am trained to assist with a wide range of tasks, from answering questions and providing information to engaging in conversations and generating text. How can I assist you today?"
                    }
                ]
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "created": 1751450904,
    "model": "qwen-vl-max-latest",
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 14,
        "completion_tokens": 53,
        "total_tokens": 67
    }
}
脚本2 - 流式

通过参数"stream": true指定是否流式返回数据。

curl 'http://127.0.0.1:8080/v1/chat/completions'       -H 'Content-Type: application/json'       -d '{
         "model": "doubao-1-5-lite-32k-250115",
         "messages": [
           {
             "role": "user",
              "content": "你是谁?请自我介绍一下"
           }
          ],
          "stream": true
       }'
  • 结果:
data: {"choices":[{"delta":{"content":"我","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"是","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"豆","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"包","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"呀","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":",","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"能","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"陪","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"你","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"谈","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"天","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"说","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"地","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"、","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"解答","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"各种","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"问题","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"、","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"分享","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"知识","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"和","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"见解","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":",","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"不管","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"是","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"生活","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"琐事","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"、","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"学习","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"难题","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"还是","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"奇","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"闻","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"轶事","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":",","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"都","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"可以","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"来找","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"我","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"交流","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"探讨","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"呢","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"。","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":" ","role":"assistant"},"index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[{"delta":{"content":"","role":"assistant"},"finish_reason":"stop","index":0}],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","service_tier":"default","object":"chat.completion.chunk","usage":null}

data: {"choices":[],"created":1751618650,"id":"0217516186498164acc56c4058eb7465dea371eda81f2e8a80ca9","model":"doubao-1-5-lite-32k-250115","object":"chat.completion.chunk","usage":{"completion_tokens":44,"prompt_tokens":14,"total_tokens":58,"prompt_tokens_details":{"cached_tokens":0},"completion_tokens_details":{"reasoning_tokens":0}}}

data: [DONE]

AI网关调度流程

画板

实操:国外模型走代理国内模型直连

AI服务提供者-创建代理商、千问、火山 AI服务提供者

咱们用的LLM代理商兼容OpenAI,符合openai/v1协议,如下是创建"代理商AI服务提供者":

同理创建千问、火山 AI服务提供者:

AI路由管理-创建代理商、千问、火山AI路由

配置基本信息、模型匹配规则及目标AI服务,如下是创建"代理商AI路由":

降级配置,如果遇到4xx、5xx错误,用指定模型兜底:

同理创建千问、火山的AI路由:

调试
脚本1 - 调用Gemini大模型:
curl 'http://127.0.0.1:8080/v1/chat/completions'       -H 'Content-Type: application/json'       -d '{
         "model": "gemini-2.0-flash-exp",
         "messages": [
           {
             "role": "user",
              "content": "Hello! Who are you?"
           }
          ]
       }'
  • 脚本执行结果:
{
    "id": "chatcmpl-20250704160608835364572VtsNKTIH",
    "model": "gemini-2.0-flash-exp",
    "object": "chat.completion",
    "created": 1751616369,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "I am a large language model, trained by Google."
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 6,
        "completion_tokens": 11,
        "total_tokens": 17,
        "prompt_tokens_details": {
            "cached_tokens": 0,
            "text_tokens": 6,
            "audio_tokens": 0,
            "image_tokens": 0
        },
        "completion_tokens_details": {
            "text_tokens": 0,
            "audio_tokens": 0,
            "reasoning_tokens": 0
        },
        "input_tokens": 0,
        "output_tokens": 0,
        "input_tokens_details": null
    }
}
脚本2 - 调用千问大模型
curl 'http://127.0.0.1:8080/v1/chat/completions'       -H 'Content-Type: application/json'       -d '{
          "model": "qwen-vl-max-latest",
         "messages": [
           {
             "role": "user",
              "content": "讲一个笑话,使用郭德纲的风格"
           }
          ]
       }'
  • 脚本执行结果:
{
    "id": "9bcd99da-fe2d-9b5d-9e47-09186600cbd2",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": [
                    {
                        "text": "郭德纲的相声风格幽默风趣,常常通过夸张、调侃和生活化的语言来逗乐观众。下面是一个模仿郭德纲风格的笑话:\n\n---\n\n说有一回啊,我跟一朋友出去吃饭,这哥们儿点菜那叫一个讲究,左挑右选,最后指着菜单上一道菜说:“来一份这个!”服务员一看,愣了:“先生,这道菜我们这儿没有。”我朋友当时就急了:“什么?你们这儿连这都没有?”服务员赶紧解释:“不是,这道菜是我们店的特色菜,但是今天卖完了。”我朋友一听,更急了:“那你们还印在菜单上干嘛?这不是误导消费者嘛!”服务员无奈地说:“这是我们新上的菜,刚印上菜单,没想到这么受欢迎,一下子就卖完了。”\n\n我朋友一听,气得拍桌子:“那你们就不能提前多准备点吗?”服务员苦笑道:“先生,您有所不知,这道菜用的是野生蘑菇,每天早上现采的,数量有限,卖完就没了。”我朋友一听,眼睛一亮:“那行,明天早上你带我去山上采蘑菇,我亲自去采,保证够吃!”服务员一听,差点没晕过去:“先生,那山可是国家级自然保护区,不让随便进的啊!”\n\n我朋友一听,更来劲了:“那你们怎么进去的?”服务员小声说:“我们有特别许可。”我朋友立刻站起身:“那行,你给我也办个特别许可,明天咱们一起去!”服务员连连摆手:“先生,这可不行,这事儿得领导批准。”我朋友一拍胸脯:“没问题,你去找你们领导,我去找我们领导,咱们领导对领导,看谁厉害!”\n\n结果呢,第二天我朋友还真去了,不过不是去采蘑菇,而是去给那位服务员送了一大堆补品,说是感谢他前一天的热情服务。你说这事儿闹的,本来想吃个饭,结果成了送礼了。\n\n---\n\n这个笑话模仿了郭德纲相声中的幽默风格,通过夸张的情节和人物对话,制造了一些出人意料的笑点。希望你喜欢!"
                    }
                ]
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "created": 1751616701,
    "model": "qwen-vl-max-latest",
    "object": "chat.completion",
    "usage": {
        "prompt_tokens": 18,
        "completion_tokens": 450,
        "total_tokens": 468
    }
}
脚本3 - 调用豆包大模型
curl 'http://127.0.0.1:8080/v1/chat/completions'       -H 'Content-Type: application/json'       -d '{
          "model": "doubao-1-5-thinking-pro-250415",
         "messages": [
           {
             "role": "user",
              "content": "# 任务\n你是一位资深教师,精通小初高全学科的教学。请根据以下要求完成试题解答:\n1. 提供**简洁准确**的答案和解析,内容严格符合课标范围\n2. 使用中文回答,涉及数学公式时转为LaTeX格式(例:$x^2$)\n3. 保持教学语言通俗易懂,避免专业术语堆砌。\n\n# 待解答试题\n【题干】\n29. 19世纪末20世纪初,实业救国、立宪救国、革命救国教育救国等各种社会思潮不断兴起,先进的中国人不懈探索。下列表述不符合史实的是()\nA. 实业救国——荣氏兄弟创办大生纱厂\nB. 立宪救国——谭嗣同慷慨就义\nC. 教育救国——蔡元培改革北京大学\nD. 革命救国——孙中山创办同盟会"
           }
          ]
       }'
  • 脚本执行结果:
{
    "choices": [
        {
            "finish_reason": "stop",
            "index": 0,
            "logprobs": null,
            "message": {
                "content": "\n\n**答案:A**\n\n**解析:**  \n逐一分析选项:  \n- **A项**:大生纱厂是张謇(而非荣氏兄弟)于1895年创办的著名民族企业,是“实业救国”的典型代表。荣氏兄弟(荣宗敬、荣德生)主要创办了福新面粉公司、申新纱厂等企业,因此A项不符合史实。  \n- **B项**:戊戌变法(1898年)是近代中国首次尝试通过君主立宪制救国的政治运动,谭嗣同作为“戊戌六君子”之一,因变法失败慷慨就义,与“立宪救国”直接相关,符合史实。  \n- **C项**:蔡元培任北京大学校长期间(1916年后),提出“思想自由,兼容并包”的办学方针,推动北大成为新文化运动中心,是“教育救国”的典型实践,符合史实。  \n- **D项**:孙中山于1905年创办中国同盟会,这是近代第一个全国性资产阶级革命政党,以“驱除鞑虏,恢复中华,创立民国,平均地权”为纲领,属于“革命救国”的核心行动,符合史实。  \n\n综上,不符合史实的是A项。",
                "reasoning_content": "好的,我现在需要解决这道历史题,题目是找出不符合史实的选项。首先,我需要回忆每个选项对应的史实是否正确。\n\n首先看选项A:“实业救国——荣氏兄弟创办大生纱厂”。这里可能有问题,因为大生纱厂是张謇创办的,而荣氏兄弟(荣宗敬、荣德生)是近代著名的民族资本家,他们主要创办的是面粉厂和纱厂,比如福新面粉公司、申新纱厂等。所以A选项的错误可能在于把张謇的大生纱厂安到了荣氏兄弟头上。\n\n选项B:“立宪救国——谭嗣同慷慨就义”。立宪救国主要是指主张通过君主立宪来救国,比如戊戌变法中的康有为、梁启超。而谭嗣同是戊戌六君子之一,戊戌变法失败后被杀害,慷慨就义。但戊戌变法确实属于立宪救国的尝试,所以B是否正确呢?需要再确认。不过可能这里的问题在于谭嗣同牺牲是在1898年,而立宪救国的高潮可能是在20世纪初的清末立宪运动,但戊戌变法本身也是立宪的尝试,所以B是否正确?\n\n选项C:“教育救国——蔡元培改革北京大学”。蔡元培在1916年任北大校长后,提出“思想自由,兼容并包”的办学方针,改革北大,这确实是教育救国的体现,所以C正确。\n\n选项D:“革命救国——孙中山创办同盟会”。同盟会是1905年孙中山创办的第一个全国性的资产阶级革命政党,主张通过革命推翻清朝,建立共和,属于革命救国,所以D正确。\n\n回到A选项,大生纱厂是张謇创办的,荣氏兄弟创办的是其他企业,比如申新纱厂等,所以A选项错误。而B选项中,谭嗣同属于戊戌变法,戊戌变法是立宪救国的尝试,所以B是否正确?谭嗣同的牺牲是戊戌变法失败的结果,所以B的表述是否符合史实?题目问的是“不符合史实的”,所以需要确定哪个选项错误。\n\n再仔细看选项B中的“立宪救国——谭嗣同慷慨就义”。立宪救国的核心是通过君主立宪来改革,而谭嗣同确实参与了戊戌变法(百日维新),这是一次自上而下的改良运动,试图建立君主立宪制,所以谭嗣同的牺牲与立宪救国有关。所以B的表述是符合史实的吗?\n\n而A选项中,荣氏兄弟创办的是福新、申新等企业,而大生纱厂是张謇的,所以A错误。因此正确选项是A。\n",
                "role": "assistant"
            }
        }
    ],
    "created": 1751617368,
    "id": "0217516172755894acc56c4058eb7465dea371eda81f2e8d4fcbe",
    "model": "doubao-1-5-thinking-pro-250415",
    "service_tier": "default",
    "object": "chat.completion",
    "usage": {
        "completion_tokens": 849,
        "prompt_tokens": 199,
        "total_tokens": 1048,
        "prompt_tokens_details": {
            "cached_tokens": 0
        },
        "completion_tokens_details": {
            "reasoning_tokens": 577
        }
    }
}

微服务网关

服务来源配置

服务来源支持:Nacos、Zookeeper、Eureka等可做为注册中心的主流组件。

配置Nacos 3.x来源:

Nacos 3.x上注册的服务:

路由配置

基本参数配置:

目标服务配置:

higress-gateway会把服务来源的服务拉取过来。

配置路由策略- Rewrite重写Path:

调试

qai-api部署了两个节点,请求会均匀的负载到两个节点上。

AI质检-请求AI质检

curl 'http://127.0.0.1:8080/qaiapi/ai-check/request'       -H 'Content-Type: application/json'       -d '{
          "questionId": "2520065290526720",
          "checkCodes": ["WRONG_WORDS","ANS_EXP_UNMATCH","CALC_DATA_ERROR","TRANS_ERROR","ANS_EXP_CONFLICT_STEM","STEM_KNOWLEDGE_ERROR"],
          "source": "QBM"
       }'

AI质检-查询AI质检结果

curl 'http://127.0.0.1:8080/qaiapi/ai-check/result?requestId=e7b8b794386f4d12862b48c1ac12ce6c'

网关调度流程

画板

总结

Higress网关功能强大,本次分享的重点是Higress AI网关及微服网关,起到抛砖引玉的作用,介绍了Higress基本理论、安装和使用,并结合实战操作,演示了Higress如何作为AI网关和业务网关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构窝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值