跳到主要内容
版本:3.10.x

API7 网关 AI Agent Skill:plugin ai proxy

本页提供 plugin ai proxy 场景的 API7 企业版操作指南。请保留下方命令、字段、配置项和 API 路径的原样,并根据实际网关环境替换示例值。

Overview

The ai-proxy plugin turns API7 Enterprise Edition (API7 EE) into an AI gateway. It proxies requests in OpenAI-compatible format to LLM providers, handling authentication, endpoint routing, and response streaming. Clients send a standard chat-completion request; the plugin translates and forwards it to the configured provider.

When to Use

  • Proxy chat-completion or embedding requests to any supported LLM provider
  • Centralize API keys at the gateway instead of distributing to clients
  • Add observability (token counts, latency) to LLM calls
  • Combine with ai-prompt-template, ai-prompt-decorator, or content moderation plugins for a full AI gateway pipeline
  • Apply consistent AI proxy configurations directly on services or routes

Supported Providers

ProviderValueDefault Endpoint
OpenAIopenaihttps://api.openai.com/v1/chat/completions
DeepSeekdeepseekhttps://api.deepseek.com/chat/completions
Azure OpenAIazure-openaiCustom via override.endpoint
Anthropicanthropichttps://api.anthropic.com/v1/chat/completions
AIMLAPIaimlapihttps://api.aimlapi.com/v1/chat/completions
OpenRouteropenrouterhttps://openrouter.ai/api/v1/chat/completions
Geminigeminihttps://generativelanguage.googleapis.com/v1beta/openai/chat/completions
Vertex AIvertex-aihttps://aiplatform.googleapis.com
OpenAI-Compatibleopenai-compatibleCustom via override.endpoint

Plugin Configuration Reference

FieldTypeRequiredDefaultDescription
providerstringYesOne of the 9 supported providers
authobjectYesAuthentication config (see below)
optionsobjectNoModel and generation parameters
options.modelstringNoModel name (provider-specific)
options.temperaturenumberNoSampling temperature
options.top_pnumberNoNucleus sampling
options.max_tokensintegerNoMaximum tokens to generate
options.streambooleanNofalseEnable SSE streaming
overrideobjectNoOverride default endpoint
override.endpointstringNoFull URL for the provider API
provider_confobjectNoProvider-specific config (Vertex AI)
provider_conf.project_idstringNoGCP project ID (Vertex AI)
provider_conf.regionstringNoGCP region (Vertex AI)
loggingobjectNoLogging options
logging.summariesbooleanNofalseLog model, duration, tokens
logging.payloadsbooleanNofalseLog request/response bodies
timeoutintegerNo30000Request timeout (ms)
keepalivebooleanNotrueKeep connection alive
keepalive_timeoutintegerNo60000Keepalive timeout (ms)
keepalive_poolintegerNo30Keepalive pool size
ssl_verifybooleanNotrueVerify SSL certificate

Authentication by Provider

OpenAI / DeepSeek / Anthropic / AIMLAPI / OpenRouter

{
"auth": {
"header": {
"Authorization": "Bearer sk-your-api-key"
}
}
}

Azure OpenAI

{
"auth": {
"header": {
"api-key": "your-azure-key"
}
},
"override": {
"endpoint": "https://YOUR-RESOURCE.openai.azure.com/openai/deployments/gpt-4/chat/completions?api-version=2024-02-15-preview"
}
}

Vertex AI (GCP Service Account)

{
"auth": {
"gcp": {
"service_account_json": "{ ... }",
"max_ttl": 3600,
"expire_early_secs": 60
}
},
"provider_conf": {
"project_id": "your-project-id",
"region": "us-central1"
}
}

Step-by-Step: Route to OpenAI

1. Create a route with ai-proxy

All runtime resources like routes must be scoped to a gateway group using --gateway-group or -g.

a7 route create -g default -f - <<'EOF'
{
"id": "openai-chat",
"uri": "/v1/chat/completions",
"methods": ["POST"],
"plugins": {
"ai-proxy": {
"provider": "openai",
"auth": {
"header": {
"Authorization": "Bearer sk-your-openai-key"
}
},
"options": {
"model": "gpt-4",
"temperature": 0.7,
"max_tokens": 1024
}
}
}
}
EOF

2. Send a request

curl http://127.0.0.1:9080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is 1+1?"}
]
}'

Using Services

In API7 EE, configure ai-proxy directly on a service or route. Services are the preferred place for reusable upstream and plugin configuration.

a7 service create -g default -f - <<'EOF'
{
"id": "standard-ai-proxy",
"name": "Standard AI Proxy",
"plugins": {
"ai-proxy": {
"provider": "openai",
"auth": {
"header": {
"Authorization": "Bearer sk-global-key"
}
},
"options": {
"model": "gpt-4"
}
}
}
}
EOF

Common Patterns

Streaming responses

{
"plugins": {
"ai-proxy": {
"provider": "openai",
"auth": {
"header": {
"Authorization": "Bearer sk-your-key"
}
},
"options": {
"model": "gpt-4",
"stream": true
}
}
}
}

Model Routing with Multiple Routes

The plugin does not natively route by model. Use separate routes with vars matching on request body fields:

# Route requests for gpt-4 to OpenAI
a7 route create -g default -f - <<'EOF'
{
"id": "openai-gpt4",
"uri": "/v1/chat/completions",
"methods": ["POST"],
"vars": [["post_arg.model", "==", "gpt-4"]],
"plugins": {
"ai-proxy": {
"provider": "openai",
"auth": { "header": { "Authorization": "Bearer sk-openai-key" } },
"options": { "model": "gpt-4" }
}
}
}
EOF

Access Log Variables

VariableDescription
$request_typetraditional_http, ai_chat, or ai_stream
$llm_time_to_first_tokenTime to first token (ms)
$llm_modelActual model used by provider
$request_llm_modelModel requested by client
$llm_prompt_tokensPrompt token count
$llm_completion_tokensCompletion token count

Config Sync Example

Config sync is scoped by gateway group:

a7 config sync -f config.yaml --gateway-group default
version: "1"
routes:
- id: openai-chat
uri: /v1/chat/completions
methods:
- POST
plugins:
ai-proxy:
provider: openai
auth:
header:
Authorization: Bearer sk-your-openai-key
options:
model: gpt-4
max_tokens: 1024
temperature: 0.7

Troubleshooting

SymptomCauseFix
502 Bad GatewayWrong endpoint or provider valueVerify provider matches; check override.endpoint
401 from upstreamInvalid API keyCheck auth.header value
404 Not FoundMissing --gateway-groupEnsure all runtime commands include -g <group>
Azure 404Missing api-version in URLInclude ?api-version=YYYY-MM-DD-preview in override.endpoint

This page is generated from a7-plugin-ai-proxy/SKILL.md in the api7/a7 repository. Browse all skills on the AI Agent Skills page.