AI 大模型网关
AI Model Gateway 在 OpenEdge 的鉴权、计费、日志、成本限制和连接账户体系后提供 OpenAI-compatible 模型接口。
支持的 Endpoint
所需 scope:
text
ai:invokehttp
POST /v1/apps/ai/:alias/chat
POST /v1/apps/ai/:alias/chat/stream
POST /v1/apps/ai/:alias/embeddingsBYOK 模式
当前 MVP 支持 BYOK,也就是用户自带模型供应商 API Key。API Key 可以直接配置在 AI 服务实例中,也可以先保存为 Connected Account,再由服务实例引用。
支持的连接账户 provider:
text
openai-compatible
openrouter
deepseek
custom-api-key服务配置
直接密钥模式会保存加密后的 provider key:
json
{
"provider": "openai-compatible",
"mode": "byok",
"base_url": "https://api.openai.com/v1",
"default_model": "gpt-4o-mini",
"api_key_encrypted": "enc:v1:...",
"max_tokens_per_request": 2048,
"max_cost_per_request": 0.05,
"log_requests": false
}连接账户模式只保存引用:
json
{
"provider": "openai-compatible",
"mode": "byok",
"connected_account_id": "conn_...",
"base_url": "https://openrouter.ai/api/v1",
"default_model": "anthropic/claude-sonnet",
"max_tokens_per_request": 4096,
"max_cost_per_request": 0.10
}Chat 示例
bash
curl -X POST https://api.open4x.com/v1/apps/ai/default/chat \
-H "X-API-Key: sk_xxx" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{ "role": "user", "content": "把这段文字总结成三点。" }
],
"max_tokens": 1000,
"max_cost": 0.05
}'响应体保持上游 OpenAI-compatible 格式。账务信息通过响应头返回:
http
X-OpenEdge-Estimated-Cost: 0.0005
X-OpenEdge-Final-Cost: 0.0005
X-OpenEdge-Total-Tokens: 400Streaming
bash
curl -N -X POST https://api.open4x.com/v1/apps/ai/default/chat/stream \
-H "X-API-Key: sk_xxx" \
-H "Content-Type: application/json" \
-d '{
"messages": [{ "role": "user", "content": "写一段发布说明。" }],
"stream": true
}'OpenEdge 会转发供应商 SSE 流,并在流结束后结算 token 用量。如果上游没有返回 usage,则按预扣估算费用结算。
Embeddings
bash
curl -X POST https://api.open4x.com/v1/apps/ai/default/embeddings \
-H "X-API-Key: sk_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": ["第一段文本", "第二段文本"],
"max_cost": 0.02
}'计费
BYOK 模式下平台收取网关服务费:
text
final_cost = request_fee + total_tokens / 1,000,000 * token_gateway_fee网关会在调用前检查余额,记录 estimated cost 和 final cost,并在最终成本低于预扣费用时退款。
安全
- Provider API Key 使用
CONFIG_ENCRYPTION_KEY加密。 - 控制台不会返回明文 provider key。
base_url必须是 HTTPS,并通过 SSRF 防护。- 默认日志只保存 provider、model、token usage、status、cost 和 latency,不保存 prompt 或完整 response。