site/docs/providers/litellm.md
LiteLLM provides access to 400+ LLMs through a unified OpenAI-compatible interface.
You can use LiteLLM with promptfoo in three ways:
The LiteLLM provider supports chat, completion, and embedding models.
providers:
- id: litellm:<model name>
# or explicitly:
- id: litellm:chat:<model name>
Example:
providers:
- id: litellm:gpt-5-mini
# or
- id: litellm:chat:gpt-5-mini
providers:
- id: litellm:completion:<model name>
providers:
- id: litellm:embedding:<model name>
Example:
providers:
- id: litellm:embedding:text-embedding-3-large
If you're running a LiteLLM proxy server:
providers:
- id: litellm:gpt-5-mini # Uses LITELLM_API_KEY env var
config:
apiBaseUrl: http://localhost:4000
# apiKey: "{{ env.LITELLM_API_KEY }}" # optional, auto-detected
Since LiteLLM uses the OpenAI format, you can use the OpenAI provider:
providers:
- id: openai:chat:gpt-5-mini # Uses LITELLM_API_KEY env var
config:
apiBaseUrl: http://localhost:4000
# apiKey: "{{ env.LITELLM_API_KEY }}" # optional, auto-detected
providers:
- id: litellm:gpt-5.1-mini # Uses OPENAI_API_KEY env var
config:
# apiKey: "{{ env.OPENAI_API_KEY }}" # optional, auto-detected
temperature: 0.7
max_tokens: 1000
All LiteLLM parameters are supported:
providers:
- id: litellm:claude-4-sonnet # Uses ANTHROPIC_API_KEY env var
config:
# apiKey: "{{ env.ANTHROPIC_API_KEY }}" # optional, auto-detected
temperature: 0.7
max_tokens: 4096
top_p: 0.9
# Any other LiteLLM-supported parameters
The LiteLLM provider respects standard environment variables:
LITELLM_API_KEY - API key for the LiteLLM proxy serverLITELLM_API_BASE - Base URL for the LiteLLM proxy server (default: http://0.0.0.0:4000)OPENAI_API_KEYANTHROPIC_API_KEYAZURE_API_KEYLiteLLM supports embedding models that can be used for similarity metrics and other tasks. You can specify an embedding provider globally or for individual assertions.
defaultTest:
options:
provider:
embedding:
id: litellm:embedding:text-embedding-3-large
assert:
- type: similar
value: Reference text
provider:
id: litellm:embedding:text-embedding-3-large
Additional configuration options can be passed through the config block if needed:
defaultTest:
options:
provider:
embedding:
id: litellm:embedding:text-embedding-3-large # Uses OPENAI_API_KEY env var
config:
# apiKey: "{{ env.OPENAI_API_KEY }}" # optional, auto-detected
Here's a complete example using multiple LiteLLM models:
# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
description: LiteLLM evaluation example
providers:
# Chat models
- id: litellm:gpt-5-mini
- id: litellm:claude-sonnet-4-5 # Uses ANTHROPIC_API_KEY env var
# config:
# apiKey: "{{ env.ANTHROPIC_API_KEY }}" # optional, auto-detected
# Embedding model for similarity checks
- id: litellm:embedding:text-embedding-3-large
prompts:
- 'Translate this to {{language}}: {{text}}'
tests:
- vars:
language: French
text: 'Hello, world!'
assert:
- type: contains
value: 'Bonjour'
- type: similar
value: 'Bonjour, le monde!'
threshold: 0.8
provider: litellm:embedding:text-embedding-3-large
LiteLLM supports models from all major providers:
For a complete list of supported models, see the LiteLLM model documentation.
All standard LiteLLM parameters are passed through:
temperaturemax_tokenstop_pfrequency_penaltypresence_penaltystopresponse_formattools / functionsseedIf you encounter issues: