{"record":{"id":"e1fe345e2bd77e2a","repo":"BerriAI/litellm","slug":"api-key-and-api-base-are-required-for-arize-phoeni","errorCode":null,"errorMessage":"api_key and api_base are required for Arize Phoenix prompt integration","messagePattern":"api_key and api_base are required for Arize Phoenix prompt integration","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/integrations/arize/__init__.py","lineNumber":25,"sourceCode":"\nfrom litellm.types.prompts.init_prompts import SupportedPromptIntegrations\n\nfrom .arize_phoenix_prompt_manager import ArizePhoenixPromptManager\n\n# Global instances\nglobal_arize_config: Final[dict | None] = None\n\n\ndef prompt_initializer(litellm_params: \"PromptLiteLLMParams\", prompt_spec: \"PromptSpec\") -> \"CustomPromptManagement\":\n    \"\"\"\n    Initialize a prompt from Arize Phoenix.\n    \"\"\"\n    api_key: Final = getattr(litellm_params, \"api_key\", None) or os.environ.get(\"PHOENIX_API_KEY\")\n    api_base: Final = getattr(litellm_params, \"api_base\", None)\n    prompt_id: Final = getattr(litellm_params, \"prompt_id\", None)\n\n    if not api_key or not api_base:\n        raise ValueError(\"api_key and api_base are required for Arize Phoenix prompt integration\")\n\n    try:\n        arize_prompt_manager: Final = ArizePhoenixPromptManager(\n            **{\n                \"api_key\": api_key,\n                \"api_base\": api_base,\n                \"prompt_id\": prompt_id,\n                **litellm_params.model_dump(exclude={\"api_key\", \"api_base\", \"prompt_id\"}),\n            },\n        )\n\n        return arize_prompt_manager\n    except Exception as e:\n        raise e\n\n\nprompt_initializer_registry: Final = {\n    SupportedPromptIntegrations.ARIZE_PHOENIX.value: prompt_initializer,","sourceCodeStart":7,"sourceCodeEnd":43,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/integrations/arize/__init__.py#L7-L43","documentation":"The Arize Phoenix prompt integration (`prompt_initializer` in litellm/integrations/arize/__init__.py) builds an ArizePhoenixPromptManager for prompts managed in Phoenix. It requires both an api_key (from litellm_params or the PHOENIX_API_KEY env var) and an api_base (litellm_params only — there is no env fallback for the base URL). Missing either raises this ValueError at prompt initialization.","triggerScenarios":"Declaring a model with `model: arize/phoenix/...` style prompt routing, or any config that routes prompt management to `prompt_initializer`, with `api_key`/`PHOENIX_API_KEY` unset or `api_base` absent from litellm_params. Note api_base has NO environment fallback, so relying on PHOENIX_HOST or similar will not help.","commonSituations":"Setting PHOENIX_API_KEY but forgetting api_base in the model's litellm_params; assuming a default localhost base URL exists (it does for tracing, not for the prompt client); copy-pasting a Phoenix tracing config and expecting prompts to work with the same env vars.","solutions":["Add both fields to the model's litellm_params: `api_key: os.environ/PHOENIX_API_KEY` and `api_base: https://app.phoenix.arize.com/s/workspace/v1` (or your local `http://localhost:6006`)","Ensure PHOENIX_API_KEY is exported if api_key is not given inline","Confirm the api_base points to the Phoenix API root that serves /prompt_versions endpoints, not the collector/traces endpoint"],"exampleFix":"# before\nmodel_list:\n  - model_name: my-prompt\n    litellm_params:\n      model: openai/gpt-4o\n      prompt_id: my_prompt_id\n      # api_key / api_base missing -> ValueError\n\n# after\nmodel_list:\n  - model_name: my-prompt\n    litellm_params:\n      model: openai/gpt-4o\n      prompt_id: my_prompt_id\n      api_base: https://app.phoenix.arize.com/s/workspace/v1\n      api_key: os.environ/PHOENIX_API_KEY","handlingStrategy":"validation","validationCode":"import os\n\ndef phoenix_prompt_params(prompt_id: str, api_base: str | None = None) -> dict:\n    api_key = os.getenv(\"PHOENIX_API_KEY\")\n    api_base = api_base or os.getenv(\"PHOENIX_API_BASE\")\n    if not api_key:\n        raise SystemExit(\"PHOENIX_API_KEY not set\")\n    if not api_base:\n        raise SystemExit(\"api_base required for Arize Phoenix prompts (no env fallback)\")\n    return {\"prompt_id\": prompt_id, \"api_key\": api_key, \"api_base\": api_base}","typeGuard":null,"tryCatchPattern":"try:\n    manager = prompt_initializer(litellm_params, prompt_spec)\nexcept ValueError as e:\n    if \"api_key and api_base are required\" in str(e):\n        raise SystemExit(\"Phoenix prompt config incomplete: set api_key/PHOENIX_API_KEY and api_base in litellm_params\") from e\n    raise","preventionTips":["Remember api_base has no env fallback in the prompt initializer — always set it in litellm_params","Schema-validate model entries that use Phoenix prompts: require model, prompt_id, api_key, api_base"],"tags":["arize-phoenix","prompts","configuration","api-key","api-base"],"backgroundTag":"missing-required-config","analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}