mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-06 02:48:13 +00:00
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. |
||
|---|---|---|
| .. | ||
| amazon_nova/chat | ||
| anthropic | ||
| azure | ||
| azure_ai | ||
| base_llm | ||
| baseten/chat | ||
| bedrock | ||
| bedrock_mantle | ||
| black_forest_labs | ||
| bytez/chat | ||
| chat | ||
| chatgpt | ||
| cloudflare | ||
| cohere | ||
| cometapi/chat | ||
| compactifai | ||
| crusoe | ||
| custom_httpx | ||
| dashscope | ||
| databricks | ||
| datarobot | ||
| deepgram | ||
| deepinfra | ||
| docker_model_runner | ||
| elevenlabs | ||
| featherless_ai/chat | ||
| fireworks_ai | ||
| gemini | ||
| github_copilot | ||
| heroku | ||
| hosted_vllm | ||
| huggingface | ||
| jina_ai/embedding | ||
| lemonade | ||
| litellm_proxy | ||
| llamafile/chat | ||
| lm_studio | ||
| manus | ||
| meta_llama | ||
| minimax | ||
| mistral | ||
| moonshot | ||
| nebius | ||
| novita/chat | ||
| nscale/chat | ||
| nvidia_riva | ||
| oci | ||
| ocr | ||
| ollama | ||
| openai | ||
| openai_like | ||
| openrouter | ||
| ovhcloud | ||
| perplexity | ||
| pg_vector/vector_stores | ||
| publicai | ||
| ragflow/chat | ||
| recraft | ||
| runwayml | ||
| s3_vectors | ||
| sagemaker | ||
| sambanova | ||
| sap | ||
| scaleway | ||
| snowflake | ||
| stability | ||
| vercel_ai_gateway | ||
| vertex_ai | ||
| volcengine | ||
| voyage/rerank | ||
| wandb | ||
| watsonx | ||
| xai | ||
| zai | ||
| test_cache_control_and_reasoning.py | ||
| test_file_search_responses.py | ||
| test_lifecycle_fix.py | ||
| test_oom_fixes.py | ||
| test_polling_url_origin_match.py | ||
| test_predibase_transformation.py | ||