AI 网关设置
通过本分步设置指南,快速启动并运行您的 MLflow AI 网关。
安装
AI 网关需要 MLflow 及其额外的服务器功能依赖。[gateway] 附加组件包含 FastAPI、Uvicorn 以及其他服务组件。
bash
pip install 'mlflow[gateway]'
环境设置
将您的 API 密钥存储为环境变量,以确保其安全并与您的配置文件分开。网关在连接到提供商时会读取这些变量。
bash
# OpenAI
export OPENAI_API_KEY=sk-...
# Azure OpenAI
export AZURE_OPENAI_API_KEY=your-azure-key
export AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
# Anthropic
export ANTHROPIC_API_KEY=sk-ant-...
# AWS Bedrock
export AWS_ACCESS_KEY_ID=AKIA...
export AWS_SECRET_ACCESS_KEY=...
export AWS_REGION=us-east-1
# Cohere
export COHERE_API_KEY=...
基本服务器配置
网关使用 YAML 配置文件来定义端点。每个端点指定提供商、模型和身份验证详细信息。从简单的配置开始,然后根据需要进行扩展。
- 简单设置
- 多个端点
- 流量路由
yaml
endpoints:
- name: chat
endpoint_type: llm/v1/chat
model:
provider: openai
name: gpt-3.5-turbo
config:
openai_api_key: $OPENAI_API_KEY
yaml
endpoints:
- name: chat
endpoint_type: llm/v1/chat
model:
provider: openai
name: gpt-3.5-turbo
config:
openai_api_key: $OPENAI_API_KEY
- name: completions
endpoint_type: llm/v1/completions
model:
provider: openai
name: gpt-3.5-turbo-instruct
config:
openai_api_key: $OPENAI_API_KEY
- name: embeddings
endpoint_type: llm/v1/embeddings
model:
provider: openai
name: text-embedding-ada-002
config:
openai_api_key: $OPENAI_API_KEY
yaml
endpoints:
- name: chat1
endpoint_type: llm/v1/chat
model:
provider: openai
name: gpt-3.5-turbo
config:
openai_api_key: $OPENAI_API_KEY
- name: chat2
endpoint_type: llm/v1/chat
model:
provider: openai
name: gpt-4.1
config:
openai_api_key: $OPENAI_API_KEY
routes:
- name: chat-route
task_type: llm/v1/chat
destinations:
- name: chat1
traffic_percentage: 80
- name: chat2
traffic_percentage: 20
routing_strategy: TRAFFIC_SPLIT
启动网关服务器
MLflow CLI 提供了一个简单的命令来启动网关服务器。服务器将验证您的配置文件并为所有定义的提供商启动端点。
基本启动
这会在 localhost 端口 5000 上以默认设置启动服务器。
bash
mlflow gateway start --config-path config.yaml
服务器将默认在 https://:5000 上启动。
自定义配置
对于生产环境或特定的网络要求,请自定义主机、端口和工作进程。
bash
mlflow gateway start \
--config-path config.yaml \
--port 8080 \
--host 0.0.0.0 \
--workers 4
命令行选项
| 选项 | 描述 | 默认值 |
|---|---|---|
--config-path | YAML 配置文件路径 | 必需 |
--port | 服务器端口号 | 5000 |
--host | 绑定的主机地址 | 127.0.0.1 |
--workers | 工作进程数 | 1 |
验证
检查服务器状态
通过简单的 HTTP 健康检查,验证网关是否正在运行且健康。
bash
# Check if server is responding
curl https://:5000/health
查看 API 文档
网关使用 FastAPI 内置的 Swagger UI 自动生成交互式 API 文档。
text
https://:5000/docs
测试简单请求
向聊天端点发送测试请求,以验证您的端点配置是否正常工作。
bash
curl -X POST https://:5000/gateway/chat/invocations \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "Hello!"}]
}'
向 "chat-route" 路由发送测试请求,以验证您的路由配置是否正常工作。
bash
curl -X POST https://:5000/gateway/chat-route/invocations \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "Hello!"}]
}'
故障排除
常见问题
缺少 API 密钥
text
Error: Provider 'openai' requires 'openai_api_key' configuration
解决方案:在启动服务器之前,确保已设置环境变量。
端口冲突
text
Error: Port 5000 is already in use
解决方案:使用 --port 指定其他端口,或停止冲突的进程。
配置错误
text
Error: Invalid configuration file
解决方案:检查 YAML 语法和必需字段。配置将在启动服务器时进行验证。
验证
配置在启动服务器时会自动验证。任何错误都将显示有用的消息,以指导您修复问题。
后续步骤
您的网关运行后,请学习如何配置提供商和端点。