从0到1搭建混合AI网关:Envoy AI Gateway多模型管理实践

【免费下载链接】ai-gateway Envoy AI Gateway is an open source project for using Envoy Gateway to handle request traffic from application clients to Generative AI services. 【免费下载链接】ai-gateway 项目地址: https://gitcode.com/gh_mirrors/aiga/ai-gateway

Envoy AI Gateway是一个开源项目,利用Envoy Gateway处理从应用客户端到生成式AI服务的请求流量。本指南将帮助新手用户快速搭建支持多模型管理的混合AI网关,实现高效的AI服务流量控制与模型管理。

为什么选择Envoy AI Gateway?

在现代AI应用开发中,企业往往需要集成多种AI模型和服务,包括开源模型、云服务商API以及自托管模型。Envoy AI Gateway提供了统一的入口来管理这些多样化的AI资源,带来以下核心优势:

  • 统一API接口:无论后端是OpenAI、AWS Bedrock还是自托管模型,都可以通过标准化的API进行访问
  • 灵活的流量管理:支持基于模型名称、请求内容和负载情况的智能路由
  • 企业级安全:提供认证、授权和数据保护功能
  • 可观测性:集成监控和追踪功能,全面掌握AI服务性能

Envoy AI Gateway控制平面架构 Envoy AI Gateway控制平面架构展示了用户资源如何通过AI网关控制器和Envoy网关控制器进行处理和转换

快速安装指南

准备工作

在开始前,请确保您的环境满足以下要求:

  • Kubernetes集群(v1.24+)
  • Helm 3.8+
  • kubectl命令行工具

安装步骤

步骤1:安装AI Gateway CRDs

首先安装自定义资源定义(CRDs),它们是AI Gateway的核心组件:

helm upgrade -i aieg-crd oci://docker.io/envoyproxy/ai-gateway-crds-helm \
    --version v0.5.0 \
    --namespace envoy-ai-gateway-system \
    --create-namespace
步骤2:安装AI Gateway控制器

接下来安装AI Gateway控制器和相关组件:

helm upgrade -i aieg oci://docker.io/envoyproxy/ai-gateway-helm \
    --version v0.5.0 \
    --namespace envoy-ai-gateway-system \
    --create-namespace

kubectl wait --timeout=2m -n envoy-ai-gateway-system deployment/ai-gateway-controller --for=condition=Available
步骤3:验证安装

检查所有组件是否正常运行:

kubectl get pods -n envoy-ai-gateway-system

所有pod应处于Running状态,表示安装成功。

多模型管理核心概念

Envoy AI Gateway采用层次化资源模型来管理多模型环境,主要包括以下核心资源:

Envoy AI Gateway资源模型 Envoy AI Gateway资源模型展示了不同角色如何与系统交互

  • Gateway:集群管理员配置的入口点,定义监听端点和TLS设置
  • HTTPRoute:应用开发者配置的路由规则,定义如何将请求路由到后端服务
  • InferencePool:推理平台所有者管理的模型池,聚合多个模型实例
  • InferenceModel:推理工作负载所有者部署的具体模型实例

这种结构允许不同角色的用户在不相互干扰的情况下管理系统的不同方面,实现了职责分离和精细化控制。

配置多模型路由

部署基础配置

首先部署一个包含测试后端的基础配置:

kubectl apply -f https://raw.githubusercontent.com/envoyproxy/ai-gateway/v0.5.0/examples/basic/basic.yaml

等待网关pod就绪:

kubectl wait pods --timeout=2m \
  -l gateway.envoyproxy.io/owning-gateway-name=envoy-ai-gateway-basic \
  -n envoy-gateway-system \
  --for=condition=Ready

配置访问地址

根据您的环境设置网关URL:

# 如果有外部IP
export GATEWAY_URL=$(kubectl get gateway/envoy-ai-gateway-basic -o jsonpath='{.status.addresses[0].value}')

# 或者使用端口转发
export GATEWAY_URL="http://localhost:8080"
kubectl port-forward -n envoy-gateway-system svc/eg-envoy-ai-gateway 8080:80 &

测试多模型请求

Envoy AI Gateway支持多种AI服务API,包括聊天、补全、嵌入和重排序:

聊天补全请求
curl -H "Content-Type: application/json" \
  -d '{
        "model": "some-cool-self-hosted-model",
        "messages": [
            {
                "role": "system",
                "content": "Hi."
            }
        ]
    }' \
  $GATEWAY_URL/v1/chat/completions
嵌入请求
curl -H "Content-Type: application/json" \
  -d '{
        "model": "some-cool-self-hosted-model",
        "input": "Hello, world!"
    }' \
  $GATEWAY_URL/v1/embeddings

数据平面工作流程

了解请求如何在Envoy AI Gateway中流动,有助于更好地配置和优化多模型管理:

Envoy AI Gateway请求流程 Envoy AI Gateway请求流程展示了客户端请求如何通过Kubernetes网关路由到适当的推理池和模型

请求处理流程包括以下关键步骤:

  1. 客户端发送请求到AI Gateway
  2. 网关根据模型名称选择合适的推理池
  3. 基于负载情况选择最优模型实例
  4. 将请求路由到选定的模型服务器
  5. 返回处理结果给客户端

这种流程确保了请求能够被智能地路由到最合适的模型实例,优化性能和资源利用率。

连接真实AI服务

基础配置使用的是模拟后端,要连接真实的AI服务,您需要创建相应的AI服务后端配置。例如,连接OpenAI服务:

apiVersion: api.aigateway.io/v1alpha1
kind: AIServiceBackend
metadata:
  name: openai-backend
spec:
  type: OpenAI
  openAI:
    endpoint: https://api.openai.com/v1
    auth:
      apiKey:
        name: openai-api-key
        key: api-key

完整的提供商配置指南可以在site/docs/getting-started/connect-providers中找到,支持的提供商包括:

  • OpenAI
  • AWS Bedrock
  • Azure OpenAI
  • Google Vertex AI
  • Anthropic
  • Cohere

高级多模型管理策略

流量拆分与A/B测试

Envoy AI Gateway支持基于权重的流量拆分,非常适合模型A/B测试:

apiVersion: api.aigateway.io/v1alpha1
kind: AIGatewayRoute
metadata:
  name: model-split-route
spec:
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /v1/chat/completions
    backendRefs:
    - name: model-v1
      weight: 90
    - name: model-v2
      weight: 10

基于内容的路由

您可以根据请求内容路由到不同的模型:

apiVersion: api.aigateway.io/v1alpha1
kind: AIGatewayRoute
metadata:
  name: content-based-route
spec:
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /v1/chat/completions
      body:
        json:
          path: "$.model"
          value: "gpt-4"
    backendRefs:
    - name: gpt-4-backend
  - matches:
    - path:
        type: PathPrefix
        value: /v1/chat/completions
      body:
        json:
          path: "$.model"
          value: "claude-3"
    backendRefs:
    - name: claude-3-backend

监控与可观测性

Envoy AI Gateway提供了丰富的监控指标和追踪能力,帮助您了解多模型部署的性能:

apiVersion: api.aigateway.io/v1alpha1
kind: GatewayConfig
metadata:
  name: observability-config
spec:
  telemetry:
    metrics:
      enabled: true
      prometheus:
        port: 9090
    tracing:
      enabled: true
      openTelemetry:
        endpoint: http://otel-collector:4317

通过Prometheus和Grafana,您可以监控关键指标如:

  • 请求延迟和吞吐量
  • 模型响应时间
  • 错误率
  • 令牌使用情况

总结与后续步骤

通过本文,您已经了解如何使用Envoy AI Gateway搭建混合AI网关并管理多个AI模型。关键收获包括:

  • 安装和配置Envoy AI Gateway的基本步骤
  • 理解多模型管理的核心概念和资源模型
  • 配置路由规则实现多模型访问
  • 连接真实AI服务提供商
  • 实施高级路由策略和监控

后续您可以探索更多高级功能:

Envoy AI Gateway为管理复杂的AI基础设施提供了强大而灵活的解决方案,无论是小型项目还是企业级部署,都能从中受益。开始您的混合AI网关之旅,统一管理您的AI资源吧!

【免费下载链接】ai-gateway Envoy AI Gateway is an open source project for using Envoy Gateway to handle request traffic from application clients to Generative AI services. 【免费下载链接】ai-gateway 项目地址: https://gitcode.com/gh_mirrors/aiga/ai-gateway

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐