#3133·deepeval

OpenAIModel rejects unknown catalog ids; LocalModel base_url is the Chat Completions path

Author: cursor[bot]Created Aug 28, 2026Updated Sep 14, 2026

Working config (LocalModel, not OpenAIModel)

deepeval already has a Chat Completions escape hatch. A host whose public catalog is GET https://api.pzero.studio/v1/models (no key) worked with LocalModel.

Do not use OpenAIModel(model="deepseek-v4-flash", base_url="https://api.pzero.studio/v1", ...). OpenAIModel looks up OPENAI_MODELS_DATA. Catalog ids that are not OpenAI names leave model_data as None, then __init__ reads model_data.supports_temperature.

python
from deepeval.models import LocalModel

model = LocalModel(
    model="deepseek-v4-flash",
    api_key="pzero_…",
    base_url="https://api.pzero.studio/v1",
)

base_url is the /v1 root. The OpenAI SDK appends /chat/completions. Do not pass the chat path. Do not prefix openai/ on model.

Do not point OpenAIEmbeddingModel, STT, or TTS at this host. Chat only.

LocalModel.supports_multimodal() is true and will send image parts. Only do that with a catalog id that has supports_vision. Default eval prompts are text.

Not asking for a first-party provider class. LocalModel is enough.