限制模型访问
通过虚拟密钥限制模型
使用 models 参数设置允许的型号
curl 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{"models": ["gpt-3.5-turbo", "gpt-4"]}'
信息
此密钥只能向 models 中为 gpt-3.5-turbo 或 gpt-4 的型号发出请求
通过以下方式验证是否已正确设置
- 允许访问
- 禁止访问
curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"model": "gpt-4",
"messages": [
{"role": "user", "content": "Hello"}
]
}'
信息
由于生成的密钥的 models 中没有 gpt-4o,因此预计此操作会失败
curl -i https://:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "Hello"}
]
}'
API 参考
通过 team_id 限制模型
litellm-dev 只能访问 azure-gpt-3.5
1. 通过 /team/new 创建团队
curl --location 'https://:4000/team/new' \
--header 'Authorization: Bearer <your-master-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
"team_alias": "litellm-dev",
"models": ["azure-gpt-3.5"]
}'
# returns {...,"team_id": "my-unique-id"}
2. 为团队创建密钥
curl --location 'https://:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data-raw '{"team_id": "my-unique-id"}'
3. 测试它
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-qo992IjKOC2CHKZGRoJIGA' \
--data '{
"model": "BEDROCK_GROUP",
"messages": [
{
"role": "user",
"content": "hi"
}
]
}'
{"error":{"message":"Invalid model for team litellm-dev: BEDROCK_GROUP. Valid models for team are: ['azure-gpt-3.5']\n\n\nTraceback (most recent call last):\n File \"/Users/ishaanjaffer/Github/litellm/litellm/proxy/proxy_server.py\", line 2298, in chat_completion\n _is_valid_team_configs(\n File \"/Users/ishaanjaffer/Github/litellm/litellm/proxy/utils.py\", line 1296, in _is_valid_team_configs\n raise Exception(\nException: Invalid model for team litellm-dev: BEDROCK_GROUP. Valid models for team are: ['azure-gpt-3.5']\n\n","type":"None","param":"None","code":500}}%
API 参考
查看可用备用模型
使用 /v1/models 端点来发现给定模型的可用备用模型。 这有助于您了解在主模型不可用或受限制时可用的备份模型。
扩展点
include_metadata 参数充当未来扩展其他模型元数据的扩展点。 虽然目前专注于备用模型,但这种方法将扩展到包括其他模型元数据,例如定价信息、功能、速率限制等。
基本用法
获取所有可用模型
curl -X GET 'https://:4000/v1/models' \
-H 'Authorization: Bearer <your-api-key>'
包含元数据获取备用模型
包含元数据以查看备用模型信息
curl -X GET 'https://:4000/v1/models?include_metadata=true' \
-H 'Authorization: Bearer <your-api-key>'
获取特定备用类型
您可以指定想要查看的备用类型
- 通用备用
- 上下文窗口备用
- 内容策略回退
curl -X GET 'https://:4000/v1/models?include_metadata=true&fallback_type=general' \
-H 'Authorization: Bearer <your-api-key>'
通用备用是能够处理相同类型请求的替代模型。
curl -X GET 'https://:4000/v1/models?include_metadata=true&fallback_type=context_window' \
-H 'Authorization: Bearer <your-api-key>'
上下文窗口备用是具有更大上下文窗口的模型,可以在主模型的上下文限制超出时处理请求。
curl -X GET 'https://:4000/v1/models?include_metadata=true&fallback_type=content_policy' \
-H 'Authorization: Bearer <your-api-key>'
内容策略备用是可以在主模型由于安全策略而拒绝内容时处理请求的模型。
示例响应
当指定 include_metadata=true 时,响应包括备用信息
{
"data": [
{
"id": "gpt-4",
"object": "model",
"created": 1677610602,
"owned_by": "openai",
"fallbacks": {
"general": ["gpt-3.5-turbo", "claude-3-sonnet"],
"context_window": ["gpt-4-turbo", "claude-3-opus"],
"content_policy": ["claude-3-haiku"]
}
}
]
}
用例
- 高可用性:识别备份模型以确保服务连续性
- 成本优化:在主模型昂贵时找到更便宜的替代方案
- 内容过滤:发现具有不同内容策略的模型
- 上下文长度:找到可以处理更大输入的模型
- 负载均衡:在多个兼容模型之间分配请求
API 参数
| 参数 | 类型 | 描述 |
|---|---|---|
include_metadata | 布尔值 | 包含其他模型元数据,包括备用模型 |
fallback_type | string | 按类型过滤备用:general、context_window 或 content_policy |
高级:模型访问组
对于高级用例,请使用 模型访问组 来动态分组多个模型并管理访问,而无需重新启动代理。