Skip to main content

AI Gateway Setup

Get your MLflow AI Gateway up and running quickly with this step-by-step setup guide.

Installation​

The AI Gateway requires MLflow with additional dependencies for server functionality. The [gateway] extra includes FastAPI, Uvicorn, and other serving components:

pip install 'mlflow[gateway]'

Environment Setup​

Store your API keys as environment variables to keep them secure and separate from your configuration files. The gateway reads these variables when connecting to providers:

# 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=...

Basic Server Configuration​

The gateway uses a YAML configuration file to define endpoints. Each endpoint specifies a provider, model, and authentication details. Start with a simple configuration and expand as needed:

endpoints:
- name: chat
endpoint_type: llm/v1/chat
model:
provider: openai
name: gpt-3.5-turbo
config:
openai_api_key: $OPENAI_API_KEY

Starting the Gateway Server​

The MLflow CLI provides a simple command to start the gateway server. The server will validate your configuration file and start endpoints for all defined providers.

Basic Start​

This starts the server with default settings on localhost port 5000:

mlflow gateway start --config-path config.yaml

The server will start on http://localhost:5000 by default.

Custom Configuration​

For production or specific networking requirements, customize the host, port, and worker processes:

mlflow gateway start \
--config-path config.yaml \
--port 8080 \
--host 0.0.0.0 \
--workers 4

Command Line Options​

OptionDescriptionDefault
--config-pathPath to YAML configuration fileRequired
--portPort number for the server5000
--hostHost address to bind to127.0.0.1
--workersNumber of worker processes1

Verification​

Check Server Status​

Verify the gateway is running and healthy with a simple HTTP health check:

# Check if server is responding
curl http://localhost:5000/health

View API Documentation​

The gateway automatically generates interactive API documentation using FastAPI's built-in Swagger UI:

http://localhost:5000/docs

Test a Simple Request​

Send a test request to verify your endpoint configuration is working correctly:

curl -X POST http://localhost:5000/gateway/chat/invocations \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "Hello!"}]
}'

Troubleshooting​

Common Issues​

Missing API Keys:

Error: Provider 'openai' requires 'openai_api_key' configuration

Solution: Ensure environment variables are set before starting the server.

Port Conflicts:

Error: Port 5000 is already in use

Solution: Use a different port with --port or stop the conflicting process.

Configuration Errors:

Error: Invalid configuration file

Solution: Check YAML syntax and required fields. Configuration is validated when starting the server.

Validation​

Configuration is automatically validated when starting the server. Any errors will be displayed with helpful messages to guide you in fixing the issues.

Next Steps​

Once your gateway is running, learn how to configure providers and endpoints: