{"record":{"id":"c7209d3bf4a7e109","repo":"apache/seatunnel","slug":"no-ai-provider-configured-set-up-with-one-of-1","errorCode":null,"errorMessage":"No AI provider configured. Set up with one of:\n  1. Run: seatunnel --init              (interactive setup)\n  2. Set: export AI_PROVIDER=<{available}>\n  3. Set provider credentials:\n     - Anthropic: export ANTHROPIC_API_KEY=sk-ant-...\n     - OpenAI:    export OPENAI_API_KEY=sk-...\n     - Bedrock:   configure AWS credentials (aws configure)","messagePattern":"No AI provider configured\\. Set up with one of:\n  1\\. Run: seatunnel --init              \\(interactive setup\\)\n  2\\. Set: export AI_PROVIDER=<(.+?)>\n  3\\. Set provider credentials:\n     - Anthropic: export ANTHROPIC_API_KEY=sk-ant-\\.\\.\\.\n     - OpenAI:    export OPENAI_API_KEY=sk-\\.\\.\\.\n     - Bedrock:   configure AWS credentials \\(aws configure\\)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"seatunnel-cli/seatunnel_cli/llm_provider.py","lineNumber":1445,"sourceCode":"                if name in (\"openai\", \"bedrock-mantle\"):\n                    os.environ.setdefault(\"OPENAI_MODEL\", model_config[\"model\"])\n                else:\n                    os.environ.setdefault(\"ANTHROPIC_MODEL\", model_config[\"model\"])\n        if model_config.get(\"fast_model\"):\n            if name == \"orcarouter\":\n                os.environ.setdefault(\"ORCAROUTER_SMALL_FAST_MODEL\", model_config[\"fast_model\"])\n            elif not os.environ.get(\"ANTHROPIC_SMALL_FAST_MODEL\") and not os.environ.get(\"OPENAI_SMALL_FAST_MODEL\"):\n                if name in (\"openai\", \"bedrock-mantle\"):\n                    os.environ.setdefault(\"OPENAI_SMALL_FAST_MODEL\", model_config[\"fast_model\"])\n                else:\n                    os.environ.setdefault(\"ANTHROPIC_SMALL_FAST_MODEL\", model_config[\"fast_model\"])\n\n    # 4. Auto-detect\n    if not name:\n        name = _auto_detect_provider()\n\n    if not name:\n        raise ValueError(\n            f\"No AI provider configured. Set up with one of:\\n\"\n            f\"  1. Run: seatunnel --init              (interactive setup)\\n\"\n            f\"  2. Set: export AI_PROVIDER=<{available}>\\n\"\n            f\"  3. Set provider credentials:\\n\"\n            f\"     - Anthropic: export ANTHROPIC_API_KEY=sk-ant-...\\n\"\n            f\"     - OpenAI:    export OPENAI_API_KEY=sk-...\\n\"\n            f\"     - Bedrock:   configure AWS credentials (aws configure)\"\n        )\n\n    name = name.lower().strip()\n    cls = _PROVIDERS.get(name)\n    if cls is None:\n        raise ValueError(f\"Unknown AI provider '{name}'. Available: {available}\")\n    return cls()\n","sourceCodeStart":1427,"sourceCodeEnd":1460,"githubUrl":"https://github.com/apache/seatunnel/blob/cf67b549a7a6c35fa0beb12d83c62892427ea919/seatunnel-cli/seatunnel_cli/llm_provider.py#L1427-L1460","documentation":"create_provider() is the factory that resolves which LLM provider to use. When no provider name was given (explicitly, via saved config, or via AI_PROVIDER) and _auto_detect_provider() finds no detectable credentials, it raises ValueError with a multi-line setup guide covering --init, AI_PROVIDER, and per-provider credential env vars.","triggerScenarios":"Calling create_provider() (directly or via run_benchmark, _ensure_provider, _cmd_config, run_init) with no name argument, no AI_PROVIDER env var, no saved config, and none of ANTHROPIC_API_KEY / OPENAI_API_KEY / AWS credentials present for auto-detection.","commonSituations":"First run of the CLI on a new machine before any setup; cleaned environment in CI; user deleted the saved provider config; running inside a container that strips env vars.","solutions":["Run `seatunnel --init` for interactive provider setup","Set a provider explicitly: export AI_PROVIDER=anthropic|openai|bedrock|orcarouter","Export the matching credentials (ANTHROPIC_API_KEY, OPENAI_API_KEY, or AWS credentials for Bedrock)"],"exampleFix":"// before\nprovider = create_provider()  # ValueError: No AI provider configured\n// after\nos.environ[\"AI_PROVIDER\"] = \"openai\"\nos.environ[\"OPENAI_API_KEY\"] = \"sk-...\"\nprovider = create_provider()","handlingStrategy":"validation","validationCode":"import os\ncreds = [\"ANTHROPIC_API_KEY\", \"OPENAI_API_KEY\", \"ORCAROUTER_API_KEY\"]\nif not os.environ.get(\"AI_PROVIDER\") and not any(os.environ.get(c) for c in creds):\n    raise SystemExit(\"No AI provider configured; run `seatunnel --init`\")","typeGuard":null,"tryCatchPattern":"try:\n    provider = create_provider()\nexcept ValueError as e:\n    if str(e).startswith(\"No AI provider configured\"):\n        run_interactive_setup()\n    else:\n        raise","preventionTips":["Run `seatunnel --init` once on each new machine/container image","Keep AI_PROVIDER set explicitly in deployment configs instead of relying on auto-detection","Document required credential env vars in your project's setup guide"],"tags":["configuration","llm","environment","setup"],"backgroundTag":"missing-configuration","analyzedSha":"cf67b549a7a6c35fa0beb12d83c62892427ea919","analyzedAt":"2026-09-10T21:44:55.265Z","contentChangedAt":"2026-09-10T21:44:55.265Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}