Together AI
本指南将 AISIX AI 网关连接到 Together AI。调用方可以通过网关的 OpenAI 兼容 API 访问 Together 托管的开源模型,凭证、模型允许列表、限流和用量核算由 AISIX 管理。
Together AI 提供 OpenAI 兼容 API,因此使用 openai 适配器并搭配 Together 的 api_base。
前提条件
以下示例使用自托管 AISIX 网关。配置上游前,请准备以下内容:
- 一个运行中的 AISIX 网关,Admin API 和代理 API 可用。命令使用快速开始监听地址,如有需要请替换。
- 网关
config.yaml中的 Admin Key。 - 来自 Together 控制台的 Together API Key。
配置 Together 上游
为 Together 支持的 Chat Completions 路由创建服务提供方密钥、模型别名和调用方 API Key。
创建服务提供方密钥
创建用于存储 Together 凭证和 API 根地址的服务提供方密钥:
# 请替换为实际值
export AISIX_ADMIN_KEY="YOUR_ADMIN_KEY"
export TOGETHER_API_KEY="YOUR_PROVIDER_API_KEY"
curl -sS -X POST "http://127.0.0.1:3001/admin/v1/provider_keys" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "together-prod",
"provider": "together",
"adapter": "openai",
"secret": "'"${TOGETHER_API_KEY}"'",
"api_base": "https://api.together.xyz/v1"
}'
❶ provider 为 together。
❷ adapter 为 openai,因为 Together 接受 OpenAI Chat Completions 请求。
❸ secret 存储 Together API Key,遵循服务提供方凭证中的凭证处理行为。
❹ api_base 必填,且已包含 /v1 路径。AISIX 会在其后追加 /chat/completions。
复制返回的服务提供方密钥 ID。
创建模型
Together 的模型目录经常变化。创建模型别名前,请在 Together 模型列表中查找准确的 <publisher>/<model> ID。
创建调用方将在请求中发送的模型别名:
# 请替换为 实际值
export PROVIDER_KEY_ID="YOUR_PROVIDER_KEY_ID"
curl -sS -X POST "http://127.0.0.1:3001/admin/v1/models" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "together-gptoss-prod",
"provider": "together",
"model_name": "openai/gpt-oss-120b",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}'
❶ display_name 是调用方在 model 中发送的别名。
❷ model_name 是 <publisher>/<model> 形式的 Together 模型 ID。gpt-4o 这样的扁平 OpenAI 风格名称会让 Together 返回 404。模型目 录会发生变化,请在 Together AI 模型列表中查找准确标识。
❸ provider_key_id 将别名关联到 Together 服务提供方密钥。
创建调用方 API Key
选择应用发送给 AISIX 的调用方 API Key,然后为 Admin 资源计算哈希:
# 请替换为实际值
export AISIX_API_KEY="YOUR_CALLER_API_KEY"
CALLER_KEY_HASH=$(printf '%s' "${AISIX_API_KEY}" | shasum -a 256 | awk '{print $1}')
创建允许访问该模型别名的调用方 API Key 资源:
curl -sS -X POST "http://127.0.0.1:3001/admin/v1/apikeys" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
-d '{
"key_hash": "'"${CALLER_KEY_HASH}"'",
"allowed_models": ["together-gptoss-prod"]
}'
allowed_models 必须与你创建的模型别名匹配。
验证服务提供方连接
通过 AISIX 代理发送 Chat Completions 请求:
curl -sS -X POST "http://127.0.0.1:3000/v1/chat/completions" \
-H "Authorization: Bearer ${AISIX_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"model": "together-gptoss-prod",
"messages": [
{
"role": "user",
"content": "Say hello from Together AI."
}
]
}'
网关会返回回显面向调用方别名 together-gptoss-prod 的 OpenAI 兼容响应。如果 AISIX 返回上游认证错误,请检查服务提供方密钥的 secret;如果返回上游路由错误,请检查 api_base 和 model_name 中的 <publisher>/<model> ID。
下一步
你现在已将 AISIX 连接到 Together AI,并验证了模型别名。接下来可继续阅读:
- 模型别名:为该别名添加路由、成本元数据和限流。
- 路由与故障转移:在 Together 与另一个服务提供方之间进行故障转移。
- 服务提供方兼容性覆盖:当上游 API 与适配器不一致时调整请求和响应格式。
- 服务提供方兼容性:逐端点支持规则。