litellm/tests/test_litellm/llms
DinaAlSb 4854eebded feat(provider): add Eden AI as an OpenAI-compatible provider
Adds Eden AI (https://www.edenai.co/) as a JSON-configured provider in
litellm/llms/openai_like/providers.json, the matching LlmProviders enum
entry, the .env.example documentation block, and unit + live tests
under tests/test_litellm/llms/openai_like/.

Eden AI is an aggregator exposing 100+ underlying models from OpenAI,
Anthropic, Google, Mistral and others through a single OpenAI-shape
chat-completions endpoint. It is a clean drop-in: standard request body,
standard `choices[0].message` response, OpenAI-shape `usage`, standard
SSE streaming, and standard `tool_calls`. No Python adapter is needed.

Files:
- litellm/llms/openai_like/providers.json: register `edenai` (base URL
  https://api.edenai.run/v3, env var EDENAI_API_KEY, optional
  EDENAI_API_BASE override, max_completion_tokens -> max_tokens param
  mapping)
- litellm/types/utils.py: LlmProviders.EDENAI = "edenai"
- litellm/constants.py: edenai added to LITELLM_CHAT_PROVIDERS,
  openai_compatible_providers, and the base URL added to
  openai_compatible_endpoints (mirroring Helicone PR #17663)
- provider_endpoints_support.json: edenai entry under "providers" so
  the check_provider_folders_documented.py CI gate sees the new
  openai_like provider as documented; chat_completions and messages
  are true (the openai_like loader's default surface plus LiteLLM's
  internal Anthropic-format -> OpenAI translation); responses,
  embeddings, image_generations, audio_transcriptions, audio_speech,
  moderations, batches, rerank are false (Eden AI's API supports them
  but LiteLLM-side handlers under litellm/llms/edenai/ ship in
  follow-up PRs and will flip those flags as they land)
- README.md: row in the Supported Providers table; chat / messages
  ticked, matching what is wired through the openai_like loader today
- .env.example: document EDENAI_API_KEY and EDENAI_API_BASE next to
  the existing provider blocks
- tests/test_litellm/llms/openai_like/test_edenai.py: mocked tests
  for enum membership, JSON config shape, get_llm_provider routing,
  EDENAI_API_BASE override, Router config, mocked completion; plus a
  live integration test guarded by `pytest.skipif(not
  os.environ.get('EDENAI_API_KEY'))` that calls api.edenai.run/v3
  end-to-end and validates the response shape

Endpoints wired through this PR: /chat/completions only (via the
openai_like loader's default surface). /messages is also routed via
LiteLLM's internal Anthropic-format translation; /responses is NOT
(would require explicit `supported_endpoints` opt-in in the JSON
config). Provider-specific handlers under litellm/llms/edenai/ for
/responses, /embeddings, /image/generations, /audio/* and /moderations
ship in follow-up PRs.

Companion docs PR: BerriAI/litellm-docs adds the
docs/providers/edenai.md page that the README and
provider_endpoints_support.json link to.

Per CONTRIBUTING.md:
- scope is isolated (one provider, no drive-by changes)
- adds 1 mocked test in tests/test_litellm/ (hard requirement) plus
  a live integration test guarded by EDENAI_API_KEY presence
- passes make lint and make test-unit
- CLA: https://cla-assistant.io/BerriAI/litellm

Pattern matches Helicone (#17663) and AIHubMix (#24294) — closest
JSON-configured aggregator analogs.
2026-05-08 19:19:53 +01:00
..
amazon_nova/chat style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
anthropic Fix Anthropic streaming reasoning token usage (#27319) 2026-05-06 15:28:22 -07:00
azure feat(realtime): OpenAI Realtime GA support and beta compatibility (#27110) 2026-05-05 16:49:20 -07:00
azure_ai refactor: remove unnecessary comments from #27074 2026-05-04 19:34:56 +00:00
base_llm fix(proxy): normalize managed resource team owner field 2026-05-04 17:05:50 -07:00
baseten/chat style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
bedrock Refactor Bedrock response stream shape handling (#27257) 2026-05-06 17:39:38 -07:00
bedrock_mantle style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
black_forest_labs style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
bytez/chat fix: preserve safe provider model path segments 2026-04-29 22:09:54 -07:00
chat style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
chatgpt style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
cloudflare fix: preserve safe provider model path segments 2026-04-29 22:09:54 -07:00
cohere style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
cometapi/chat style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
compactifai style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
crusoe fix(crusoe): remove trailing slashes from API base URLs and fix list indentation 2026-05-01 17:27:52 +05:30
custom_httpx fix: Vertex Anthropic streaming status error hangs (#27310) 2026-05-06 15:32:55 -07:00
dashscope style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
databricks style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
datarobot style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
deepgram style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
deepinfra style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
docker_model_runner style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
elevenlabs test: avoid provider test module name collision 2026-04-29 22:36:57 -07:00
featherless_ai/chat style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
fireworks_ai style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
gemini test: document gemini file URI handling 2026-04-29 22:38:56 -07:00
github_copilot Merge pull request #25256 from BerriAI/litellm_ishaan_april6 2026-04-17 16:26:45 -07:00
heroku style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
hosted_vllm fix(hosted_vllm): normalize custom tools for chat completions (#25763) 2026-05-05 17:27:02 -07:00
huggingface style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
jina_ai/embedding feat(JinaAI): support multimodal embedding models (#13181) 2025-08-05 19:21:56 -07:00
lemonade style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
litellm_proxy chore: simplify ownership tracking — drop thin stores, in-memory fallback, hand-rolled cache 2026-05-05 00:23:32 +00:00
llamafile/chat style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
lm_studio style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
manus fix: encode upstream URL path identifiers 2026-04-29 22:02:39 -07:00
meta_llama fix: add missing OpenAI chat completion params to OPENAI_CHAT_COMPLETION_PARAMS (#21360) 2026-02-16 20:31:21 -08:00
minimax style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
mistral Merge pull request #25256 from BerriAI/litellm_ishaan_april6 2026-04-17 16:26:45 -07:00
moonshot add moonshot/kimi-k2.6 to model registry (#26203) 2026-04-21 19:58:43 -07:00
nebius test: fixes 2025-05-31 12:42:56 -07:00
novita/chat Litellm fix GitHub action testing (#11163) 2025-05-26 14:41:42 -07:00
nscale/chat Litellm fix GitHub action testing (#11163) 2025-05-26 14:41:42 -07:00
nvidia_riva feat(audio_transcription): add NVIDIA Riva STT provider (#27185) 2026-05-05 17:17:51 -07:00
oci style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
ocr Add OCR guardrail_translation handler and support (#22145) 2026-02-28 17:39:36 -08:00
ollama fix(ollama): forward tool_calls and tool_call_id in transform_request (#26122) 2026-04-27 08:58:41 +05:30
openai feat(realtime): OpenAI Realtime GA support and beta compatibility (#27110) 2026-05-05 16:49:20 -07:00
openai_like feat(provider): add Eden AI as an OpenAI-compatible provider 2026-05-08 19:19:53 +01:00
openrouter style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
ovhcloud fix(ovhcloud): Fix tool calling not working (#25948) 2026-04-22 19:33:58 -07:00
perplexity style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
pg_vector/vector_stores fix: encode upstream URL path identifiers 2026-04-29 22:02:39 -07:00
publicai style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
ragflow/chat fix: encode upstream URL path identifiers 2026-04-29 22:02:39 -07:00
recraft style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
runwayml fix: encode upstream URL path identifiers 2026-04-29 22:02:39 -07:00
s3_vectors Fix extra body error 2026-04-29 08:34:31 +05:30
sagemaker Refactor Bedrock response stream shape handling (#27257) 2026-05-06 17:39:38 -07:00
sambanova Feat/sambanova embeddings (#13308) 2025-08-12 17:15:26 -07:00
sap style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
scaleway Feature/add audio support for scaleway (#26110) 2026-04-20 14:49:41 -07:00
snowflake style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
stability style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
vercel_ai_gateway style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
vertex_ai Merge pull request #27019 from stuxf/codex/cloud-storage-file-guard 2026-05-04 14:59:47 -07:00
volcengine fix: encode upstream URL path identifiers 2026-04-29 22:02:39 -07:00
voyage/rerank style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
wandb (feat): Add W&B Inference to LiteLLM 2025-09-11 00:07:30 +05:30
watsonx style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
xai refactor: remove unnecessary comments from #27074 2026-05-04 19:34:56 +00:00
zai style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_cache_control_and_reasoning.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_file_search_responses.py fix(proxy): harden request parameter handling 2026-04-16 01:38:12 +00:00
test_lifecycle_fix.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_oom_fixes.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_polling_url_origin_match.py chore(security): close two unaddressed SSRF cases 2026-05-01 18:43:47 +00:00
test_predibase_transformation.py refactor(predibase): migrate transform_request and transform_response… (#25249) 2026-04-27 08:58:22 +05:30