跳转到内容

AI 网关

Nantian Gateway 可以在数据面中处理 AI 流量,让应用通过一个 Kubernetes Gateway 完成路由,同时由平台统一管理 provider、凭证、token 配额和可观测性。

AI Gateway 功能围绕两个 Kubernetes 资源构建:

资源用途
AIService定义一个 AI provider/模型目标,包括 provider 格式、模型名称、认证、超时、重试和可观测性设置。
TokenPolicy将 token 和请求限制附加到本地 Gateway API 目标上,例如 HTTPRoute

运行时包含 OpenAI、Anthropic 和 Ollama 格式处理、token 统计、速率限制、prompt 和 PII 处理、语义缓存、回退、A/B 测试、成本追踪和多租户上下文等模块。在稳定的 CRD 字段显式暴露你希望配置的行为之前,请将这些视为运行时模块。

AI Gateway 提供以下能力,每项均可通过 CRD 配置:

根据复杂度分类、请求属性或 header 选择,将请求路由到不同的 LLM 模型。了解更多

利用嵌入向量相似度,对语义相近的 prompt 缓存 LLM 响应,减少重复的 API 调用和成本。了解更多

在请求到达模型之前,检测并拦截 prompt 注入攻击和可疑的关键词模式。了解更多

过滤 prompt 和模型响应中的暴力、仇恨、自残、剥削和非法内容。了解更多

检测并遮蔽 prompt 和响应中的个人身份信息,如电子邮件地址、电话号码和凭证。了解更多

通过加权选择在模型变体之间分流,对比各 provider 的性能、成本和质量。了解更多

按顺序配置备用模型,当主模型失败或超时时,请求自动级联到回退 provider。了解更多

按模型、租户和路由监控 token 用量和预估成本,用于计费和预算分析。了解更多

将多个 API key 映射到租户,每个租户拥有独立的模型白名单、速率限制和用量配额。了解更多

对 AI 路由实施每分钟和每小时的 token 速率限制,支持可配置的突发倍数和拒绝策略。了解更多

将 trace、generation 和 score 发送到 Langfuse,用于 LLM 可观测性和模型性能调试。了解更多

实验性功能开始,确保所需 CRD 已安装:

Terminal window
kubectl get crd aiservices.gateway.nantian.dev
kubectl get crd tokenpolicies.gateway.nantian.dev

使用 Helm 时,启用 AI Gateway 的最小配置如下:

featureMode: experimental
controlplane:
config:
features:
enableAiGateway: true

AIService 描述 provider 和模型目标。Provider 可以使用 OpenAI、Anthropic 或 Ollama 等格式,取决于你路由到的后端。

apiVersion: gateway.nantian.dev/v1alpha1
kind: AIService
metadata:
name: openai-gpt4o
namespace: nantian-demo
spec:
provider: openai
format: openai
model: gpt-4o
auth:
type: bearer
secret: openai-api-key
key: token
header: Authorization
timeout: 60s
retry:
maxRetries: 2
backoff: 500ms

控制面将资源转换为运行时配置,并分发到各数据面实例。请将 provider 凭证保存在 Kubernetes Secret 中,避免在路由清单中嵌入 token。

AI 流量通常需要基于 token 的限制,而不仅仅是基于请求的限制。TokenPolicy 可以将限制附加到路由上:

apiVersion: gateway.nantian.dev/v1alpha1
kind: TokenPolicy
metadata:
name: ai-route-quota
namespace: nantian-demo
spec:
targetRefs:
- group: gateway.networking.k8s.io
kind: HTTPRoute
name: ai-route
tokensPerMinute: 100000
tokensPerHour: 5000000
requestsPerMinute: 1000
scope: route
burst: 1.5
onLimit: reject

请求限制用于流量整形,token 限制用于成本控制。设置清晰的 onLimit 行为,让调用方获得可预测的失败模式。

AIService 可以携带 Langfuse 和 OpenTelemetry 设置。Nantian Gateway 不内置这些后端,需要将字段指向你自己部署的系统。

apiVersion: gateway.nantian.dev/v1alpha1
kind: AIService
metadata:
name: observed-openai
namespace: nantian-demo
spec:
provider: openai
format: openai
model: gpt-4o
observability:
langfuse:
host: https://langfuse.example.com
publicKey: langfuse-public
secretKey: langfuse-secret
otel:
endpoint: http://otel-collector.observability.svc:4317
serviceName: nantian-ai-gateway

将 AI 特定的遥测数据与标准的指标故障排查工作流结合使用。

  • 仅在能够容忍 API 变更的集群中启用实验性模式。
  • 在应用清单之前安装并验证 AIServiceTokenPolicy CRD。
  • 将 provider 凭证存储在 Kubernetes Secret 中。
  • 初始的请求和 token 限制应设置为 fail-closed 模式。
  • 上线后监控控制面和数据面的日志。
  • 在路由生产 AI 流量之前,确认指标和 trace 正常工作。