决策模型
决策模型不生成文本,而是针对输入回答结构化的问题。每个问题属于以下三类之一:用概率回答的是/否判断、在若干命名选项中做出选择,或在有序刻度上打分。答案以概率和置信度的形式返回,应用可以据此设定阈值、做路由或记录日志。
AISIX 在两个端点上提供决策模型,分别对应目前使用的两种请求格式:
| 端点 | 请求格式 | 问题类型 |
|---|---|---|
POST /v1/systemone | TypeSafe 的 System One 格式:model、state,以及按问题名称为键的 questions 对象。答案以相同的名称为键,usage 上报 input_tokens 和 output_tokens。 | noul(是/否)、choice、score |
POST /v1/decisions | OpenAI 的 Decisions 格式:model、input,以及 questions 数组。answers 是按问题顺序排列的数组,其中可能包含 refusal;usage 上报 input_tokens、output_tokens、total_tokens 及其明细。 | predicate(是/否)、choice、score |
任一端点都可以使用任一受支持的上游。当调用方的格式与上游不同时,AISIX 会转换请求和答案,详见格式转换。
两个端点都不支持流式。它们与其他代理端点使用相同的调用方 API Key、模型别名、访问控制、限流和预算,唯一的例外是安全护栏不会在这两个端点上运行。
支持的上游
模型所用服务提供方密钥的 provider 字段决定由哪个上游处理请求,以及上游使用哪种 格式:
服务提供方密钥的 provider | 上游 | 格式 | 上游 URL |
|---|---|---|---|
typesafe | TypeSafe | System One | {api_base}/v1/systemone,api_base 默认为 https://api.typesafe.ai |
azure | Microsoft Foundry | System One | {资源根地址}/providers/microsoft/v1/systemone |
openrouter | OpenRouter | System One | {api_base}/systemone |
openai | OpenAI | Decisions | {api_base}/decisions,api_base 默认为 https://api.openai.com/v1 |
如果目标的服务提供方密钥使用其他 provider 值,请求会被拒绝并返回 400,错误信息会写出模型及其 provider 值,例如 model `my-model` uses provider `anthropic`; /v1/decisions requires a typesafe, azure, openai, or openrouter provider。
模型的 model_name 是 AISIX 作为 model 发送给上游的模型 ID:
| 上游 | model_name 示例 |
|---|---|
| TypeSafe | jev-latest |
| Microsoft Foundry | 你的 Foundry 资源中承载 Microsoft-Decision-1 的部署名称 |
| OpenAI | gpt-6-luna |
| OpenRouter | typesafe/jev-1.13 |
TypeSafe
创建一个 provider 为 typesafe 的服务提供方密钥,密钥值为你的 TypeSafe API Key。AISIX 会将其作为 Bearer Token 发送。api_base 为可选字段:留空时使用 https://api.typesafe.ai,也可以设置为其他 TypeSafe 端点的主机地址。AISIX 会在主机地址后追加 /v1/systemone,已经以 /v1 或 /v1/systemone 结尾的值也可以接受。
typesafe 服务提供方密钥既可以用于决策模型,也可以用作 TypeSafe jev 语义路由器的分类器凭据。AISIX Enterprise 和 AISIX Cloud 均不允许向量嵌入模型使用它。
Microsoft Foundry
使用 provider 为 azure 的服务提供方密钥,并将其 api_base 设置为承载 Microsoft-Decision-1 部署的 Foundry 资源端点,例如 https://acme-foundry.services.ai.azure.com。也可以粘贴项目端点(…/api/projects/<project>),或以 /openai/v1、/openai、/models、/v1 结尾的端点;AISIX 会先把它们还原为资源根地址,再追加 /providers/microsoft/v1/systemone。没有设置 api_base 的 Foundry 密钥会被拒绝并返回 400。
将模型的 model_name 设置为部署名称。认证方式与 Azure OpenAI 相同:资源 API Key 通过 api-key 请求头发送;Entra ID 客户端凭据会先换取 Token,再以 Authorization: Bearer <token> 发送。
OpenAI
使用 provider 为 openai 的服务提供方密钥。api_base 默认为 https://api.openai.com/v1,AISIX 调用 {api_base}/decisions。将 model_name 设置为支持 Decisions API 的模型,例如 gpt-6-luna。
OpenRouter
使用 provider 为 openrouter、api_base 为 https://openrouter.ai/api/v1 的服务提供方密钥,配置方式见 OpenRouter 指南。AISIX 调用 {api_base}/systemone。将 model_name 设置为 OpenRouter 的 System One 端点支持的模型,例如 typesafe/jev-1.13。
配置决策模型
决策模型就是一个普通的直接模型,只是它的服务提供方密钥使用上述四种 provider 值之一。下面的示例创建一个使用 TypeSafe 的模型。
AISIX Enterprise 或 AISIX Cloud
导出控制面连接信息和你的 TypeSafe API Key:
# AISIX_CP 是 Admin API 基础 URL;包含 /api,并省略末尾斜杠。
# 本地 AISIX Enterprise 快速入门使用 http://localhost:8080/api。
export AISIX_CP="YOUR_AISIX_CONTROL_PLANE_API_URL"
export AISIX_TOKEN="YOUR_ADMIN_TOKEN"
export ENV_ID="YOUR_ENVIRONMENT_ID"
export TYPESAFE_API_KEY="YOUR_TYPESAFE_API_KEY"
创建服务提供方密钥,并允许它在该环境中使用:
TYPESAFE_KEY_ID=$(curl -sS -X POST "$AISIX_CP/provider_keys" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "typesafe",
"provider": "typesafe",
"api_key": "'"$TYPESAFE_API_KEY"'",
"allowed_environments": ["'"$ENV_ID"'"]
}' | jq -r '.provider_key.id')
在该密钥上创建一个直接模型:
curl -sS -X POST "$AISIX_CP/environments/$ENV_ID/models" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "jev",
"model_name": "jev-latest",
"provider_key_id": "'"$TYPESAFE_KEY_ID"'"
}'
在控制台中,先在 Provider Keys 页面创建 provider 为 typesafe 的密钥,再在 Models 页面创建直接模型并选择该密钥。表单会建议使用 jev-latest 作为上游模型 ID。
将该模型加入调用方 API Key 的允许模型列表,然后为它定价。
开源 AISIX 网关
在资源文件中添加服务提供方密钥和模型:
provider_keys:
- display_name: typesafe
provider: typesafe
api_key: ${TYPESAFE_API_KEY}
models:
- display_name: jev
provider: typesafe
model_name: jev-latest
provider_key: typesafe
将 jev 加入调用方 API Key 的 allowed_models,然后校验并重新加载完整的资源文件。
模型类型
决策端点支持以下模型类型:
- 直接模型,其服务提供方密钥的
provider为typesafe、azure、openai或openrouter。 - 路由模型,会像其他单次请求端点一样在目标之间故障转移,详见路由与故障转移。每个目标都必须是使用上述四种
provider值之一的决策模型;使用其他provider值的目标会直接以400结束请求,而不会转移到下一个目标。 - 通配符别名,与其他请求一样解析为直接模型。
合议模型、语义路由器和向量嵌入模型会被拒绝并返回 400,例如 model `my-ensemble` is a `ensemble` model; /v1/systemone serves direct and routing models only。