AI Providers let you connect LLMs for use in the Playground and Online Evaluation.
Once configured, providers appear in two places:

Opik supports integration with various AI providers, including:
If you would like us to support additional LLM providers, please let us know by opening an issue on GitHub.
Below are instructions for obtaining API keys and other required information for each supported provider:
Azure OpenAI provides enterprise-grade access to OpenAI models through Microsoft Azure. To use Azure OpenAI with Opik:
Get your Azure OpenAI endpoint URL
https://your-company.openai.azure.com)Construct the complete API URL
/openai/v1 to the end of your endpoint URLhttps://your-company.openai.azure.com/openai/v1Configure in Opik
https://your-company.openai.azure.com/openai/v1gpt-4o)Once saved, you can use your Azure OpenAI models directly from Online Scores and the Playground.
gcloud CLIThe file
opik-key.jsoncontains your credentials. Open it in a text editor and copy the entire contents.
Step 1: Create the Custom Role
OpikopikCustom IAM role for OpikAlphaaiplatform.endpoints.predictresourcemanager.projects.getStep 2: Create the Service Account
Opik Service Accountopik-saService account for Opik roleStep 3: Assign the Role to the Service Account
opik-sa@<my-project>.iam.gserviceaccount.comStep 4: Create and Download the Key
opik-sa accountOpen the downloaded JSON file, and copy its entire content to be used in the next step.
Vertex AIus-central1)opik-key.json file hereAmazon Bedrock provides access to foundation models from leading AI companies like AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI, and Amazon through AWS. Opik connects to Bedrock using the OpenAI Chat Completions API. Only models that support this API format will work with the Opik Playground. Check the supported models documentation to verify compatibility before configuring.
Before configuring Bedrock in Opik, ensure you have:
You can request access to models in the AWS Bedrock console. Not all models are available in all regions — check the model availability documentation to verify availability in your chosen region.
us.anthropic.claude-3-5-sonnet-20241022-v2:0,us.meta.llama3-2-3b-instruct-v1:0)Bedrock endpoints follow this pattern: https://bedrock-runtime.<region>.amazonaws.com/openai/v1
Examples by Region:
https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1https://bedrock-runtime.eu-west-1.amazonaws.com/openai/v1https://bedrock-runtime.eu-central-1.amazonaws.com/openai/v1https://bedrock-runtime.ap-northeast-1.amazonaws.com/openai/v1https://bedrock-runtime.ap-southeast-1.amazonaws.com/openai/v1You can configure multiple Bedrock providers for different AWS regions or accounts. Each instance appears separately in the provider dropdown, making it easy to switch between configurations in the Playground and Online Evaluation.
Opik connects to Ollama using the OpenAI-compatible API, so you can use Ollama models for all LLM operations.
URL must end with /v1. The base URL you enter in Opik must end with /v1 (e.g., http://localhost:11434/v1). Opik uses this to call the OpenAI-compatible chat completions endpoint on your Ollama instance.
Self-hosted deployments: The Ollama provider is enabled by default. To disable it, set the environment variable TOGGLE_OLLAMA_PROVIDER_ENABLED=false on the Opik backend service.
/v1 (e.g., http://localhost:11434/v1)You can configure multiple Ollama instances with different provider names and URLs.
Use this option to add any other OpenAI API-compliant provider such as vLLM, etc. You can configure multiple custom providers, each with their own unique name, URL, and models.

http://host.docker.internal:8000/v1If you’re running Opik locally, you would need to use http://host.docker.internal:<PORT>/v1 for Mac and Windows or http://172.17.0.1:<PORT>/v1 for Linux, and not http://localhost.
Some custom providers may require additional HTTP headers beyond the API key for authentication or routing purposes. You can configure these headers using the “Custom headers” section:
X-Custom-Auth, X-Request-ID)Common use cases for custom headers:
Custom headers are sent with every request to your custom provider endpoint. Ensure header values are kept secure and not exposed in logs or error messages.
Some gateways require specific query parameters on every request. For example, Azure OpenAI often requires an api-version parameter.
You can use the “Query parameters” section to define these key-value pairs, and Opik will automatically append them to every outgoing request.
api-version)2024-08-01-preview)Parameters are automatically URL-encoded and appended with ? or & as appropriate. Leave this section empty for providers that don’t require extra query parameters.
Most OpenAI-compatible providers expect an Authorization: Bearer <key> header — Opik sends this automatically. Some gateways instead expect the key in a differently named header (such as api-key or a tenant-specific name), sometimes without any Authorization header at all.
{name}: <key> in addition to the Authorization: Bearer <key> header. Most gateways ignore the extra Authorization header, so this alone is often enough.Authorization: Bearer. When on, Opik sends only the custom header configured above.{model}When a gateway expects the model or deployment name in the URL path rather than in the request body, you can write the URL once using {model} as a placeholder. This avoids creating one provider entry per model:
At request time Opik substitutes {model} with the name of whichever model the end-user picked from the Models list. The Models field then contains all supported names (e.g. gpt-4o, gpt-4o-mini, llama-3.1-70b), and the playground / Online Evaluation dropdown shows each one as a selectable model routed to its own upstream path.
If your URL does not contain {model}, the substitution step is skipped and the URL is used verbatim — existing configurations are unaffected.
The model name is interpolated raw (no URL encoding) so it lands as a literal path segment, matching what most gateways expect. Use model names containing only alphanumeric characters and hyphens. Values containing / (e.g. HuggingFace-style mistralai/Mistral-7B-Instruct-v0.3) will split into extra path segments and Opik will emit a warning in the backend logs at request time.
Many enterprise customers front Azure OpenAI with Azure API Management (APIM). APIM typically requires:
/openai/deployments/{deployment}/chat/completions), or an organization-specific variant such as /za/deployments/{deployment}/chat/completions.api-version query parameter.api-key header (or a tenant-specific header name) instead of Authorization: Bearer.Configure it as follows:
azure-apim-prod).https://my-gateway.azure-api.net/openai/deployments/{model}.gpt-4o, gpt-4o-mini-ZA. These will be substituted into {model} at request time.api-version with the value required by your gateway (e.g. 2024-08-01-preview).api-key (or your tenant-specific header name).Authorization: Bearer. Most policies ignore the extra header, so leave it off unless you’ve confirmed it’s rejected.The plaintext API key is encrypted at rest using the same mechanism used for every other provider — the new auth header name and query parameters are stored as non-sensitive configuration metadata alongside the existing key slot.
Once you’ve configured multiple custom providers, you can:
Each custom provider appears as a separate option in the provider dropdown, making it easy to work with multiple self-hosted or custom LLM deployments.
API keys are encrypted and stored securely. Only the name and provider type are visible after configuration.