Skip to main content

The model@@provider syntax

Moda uses a simple syntax to route requests to the right provider:
model-name@@provider
For example:
  • gpt-4o@@openai routes to OpenAI’s GPT-4o
  • claude-3-5-sonnet-20241022@@anthropic routes to Anthropic’s Claude
  • claude-3-opus@@bedrock routes to AWS Bedrock

Why this syntax?

This approach lets you:
  1. Switch providers easily - Change from OpenAI to Anthropic by updating one field
  2. Use the same model on different providers - Some Claude models are available on both Anthropic and Bedrock
  3. Keep your code simple - No need for provider-specific SDKs or configurations

Examples

OpenAI models

{"model": "gpt-4o@@openai"}
{"model": "gpt-4o-mini@@openai"}
{"model": "gpt-4-turbo@@openai"}
{"model": "gpt-3.5-turbo@@openai"}

Anthropic models

{"model": "claude-3-5-sonnet-20241022@@anthropic"}
{"model": "claude-3-opus-20240229@@anthropic"}
{"model": "claude-3-sonnet-20240229@@anthropic"}
{"model": "claude-3-haiku-20240307@@anthropic"}

AWS Bedrock models

{"model": "claude-3-opus@@bedrock"}
{"model": "claude-3-sonnet@@bedrock"}
{"model": "claude-3-haiku@@bedrock"}

Switching providers

To change from one provider to another, just update the model field:
{
  "model": "gpt-4o@@openai",
  "messages": [
    {"role": "user", "content": "Hello!"}
  ]
}
The rest of your request stays the same.

Error handling

If you specify an invalid model or provider, Moda returns an error:
{
  "error": {
    "message": "Unknown provider: invalid-provider",
    "type": "invalid_request_error"
  }
}
Check the Supported Providers page for the full list of valid options.