111 lines
2.7 KiB
YAML
111 lines
2.7 KiB
YAML
apiVersion: gateway.networking.k8s.io/v1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: model-catalog
|
|
namespace: agentgateway-system
|
|
spec:
|
|
parentRefs:
|
|
- name: agentgateway-proxy
|
|
rules:
|
|
- matches:
|
|
- method: GET
|
|
path:
|
|
type: Exact
|
|
value: /v1/models
|
|
backendRefs:
|
|
- name: model-catalog
|
|
port: 8080
|
|
---
|
|
apiVersion: gateway.networking.k8s.io/v1
|
|
kind: HTTPRoute
|
|
metadata:
|
|
name: models
|
|
namespace: agentgateway-system
|
|
spec:
|
|
parentRefs:
|
|
- name: agentgateway-proxy
|
|
rules:
|
|
- matches:
|
|
- method: POST
|
|
path:
|
|
type: Exact
|
|
value: /v1/chat/completions
|
|
headers:
|
|
- name: x-model
|
|
type: RegularExpression
|
|
value: ^vertex_ai_flex/.+
|
|
filters:
|
|
- type: RequestHeaderModifier
|
|
requestHeaderModifier:
|
|
set:
|
|
- name: X-Vertex-AI-LLM-Request-Type
|
|
value: shared
|
|
- name: X-Vertex-AI-LLM-Shared-Request-Type
|
|
value: flex
|
|
backendRefs:
|
|
- group: agentgateway.dev
|
|
kind: AgentgatewayBackend
|
|
name: vertex-ai
|
|
- matches:
|
|
- method: POST
|
|
path:
|
|
type: PathPrefix
|
|
value: /v1
|
|
headers:
|
|
- name: x-model
|
|
type: RegularExpression
|
|
value: ^vertex_ai/.+
|
|
backendRefs:
|
|
- group: agentgateway.dev
|
|
kind: AgentgatewayBackend
|
|
name: vertex-ai
|
|
- matches:
|
|
- method: POST
|
|
path:
|
|
type: PathPrefix
|
|
value: /v1
|
|
headers:
|
|
- name: x-model
|
|
type: RegularExpression
|
|
value: ^novita/.+
|
|
backendRefs:
|
|
- group: agentgateway.dev
|
|
kind: AgentgatewayBackend
|
|
name: novita
|
|
---
|
|
apiVersion: agentgateway.dev/v1alpha1
|
|
kind: AgentgatewayPolicy
|
|
metadata:
|
|
name: extract-model
|
|
namespace: agentgateway-system
|
|
spec:
|
|
targetRefs:
|
|
- group: gateway.networking.k8s.io
|
|
kind: Gateway
|
|
name: agentgateway-proxy
|
|
traffic:
|
|
phase: PreRouting
|
|
transformation:
|
|
conditional:
|
|
- condition: request.method == "POST"
|
|
policy:
|
|
request:
|
|
set:
|
|
- name: x-model
|
|
value: json(request.body).model
|
|
---
|
|
apiVersion: agentgateway.dev/v1alpha1
|
|
kind: AgentgatewayPolicy
|
|
metadata:
|
|
name: strip-provider-prefix
|
|
namespace: agentgateway-system
|
|
spec:
|
|
targetRefs:
|
|
- group: gateway.networking.k8s.io
|
|
kind: HTTPRoute
|
|
name: models
|
|
backend:
|
|
ai:
|
|
transformations:
|
|
- field: model
|
|
expression: llmRequest.model.stripPrefix("vertex_ai_flex/").stripPrefix("vertex_ai/").stripPrefix("novita/")
|