Skip to content

Add Eden AI provider - #2914

Closed
MVS-source wants to merge 3 commits into
anomalyco:devfrom
MVS-source:add-edenai-provider
Closed

Add Eden AI provider#2914
MVS-source wants to merge 3 commits into
anomalyco:devfrom
MVS-source:add-edenai-provider

Conversation

@MVS-source

Copy link
Copy Markdown

Add Eden AI provider

Eden AI is an EU-based AI aggregation platform that exposes 100+ models from many providers behind a single OpenAI-compatible API (https://api.edenai.run/v3, Authorization: Bearer, provider/model format), with unified billing/usage tracking and EU data-residency options.

This adds the edenai provider using @ai-sdk/openai-compatible (no new dependency), matching the pattern of existing aggregator entries like anyapi / kilo.

What's included

  • providers/edenai/provider.toml
  • providers/edenai/logo.svg
  • providers/edenai/models/… — an initial curated set of 18 EU-friendly and popular models (Mistral 🇫🇷, GPT-4o / 4o-mini, Claude Sonnet/Haiku 4.5, Gemini 2.5, DeepSeek, Cohere Command).

Data provenance

Pricing, context length and capabilities (attachment, tool_call) are sourced directly from Eden AI's live /v3/models endpoint. release_date values are best-effort from public model cards; last_updated reflects when this entry was authored. reasoning is set to false for this initial entry (reasoning-control metadata can be added per-model in a follow-up).

Validation

bun run validate passes with these entries included.

Notes

I'm from the Eden AI team and we'll maintain this provider entry. Happy to expand to the full catalog or add a sync script (like openrouter) in a follow-up if preferred. This also enables Eden AI as a provider in downstream tools that consume models.dev (e.g. opencode / Kilo Code).

@MVS-source
MVS-source force-pushed the add-edenai-provider branch 2 times, most recently from b4dc90a to 55948c2 Compare June 29, 2026 12:51
@MVS-source
MVS-source force-pushed the add-edenai-provider branch from d3ff813 to 0fe71da Compare July 6, 2026 14:06
@MVS-source

Copy link
Copy Markdown
Author

Hi @rekram1-node 👋 — friendly bump on this one.

The PR is green (validate passes) and follows the same OpenAI-compatible aggregator pattern as kilo / anyapi: @ai-sdk/openai-compatible + an api base URL, with a curated set of 18 models whose pricing, context length and capabilities are sourced from Eden AI's live /v3/models endpoint.

We're on the Eden AI team and will keep this entry maintained going forward. Happy to expand it to the full catalog or add a sync script (like openrouter) in a follow-up if you'd prefer.

Anything you'd like adjusted before merge? Thanks for taking a look 🙏

Eden AI (https://www.edenai.co) is an EU-based AI aggregation platform
exposing 100+ models behind a single OpenAI-compatible API
(https://api.edenai.run/v3, Bearer auth, provider/model format).

Adds the `edenai` provider via @ai-sdk/openai-compatible with an initial
curated set of 18 EU-friendly and popular models. Pricing, context length
and capabilities are sourced from Eden AI's /v3/models endpoint.
- Mark reasoning=true for models that support it via Eden's OpenAI-compatible
  reasoning_effort param (verified live: Claude Haiku/Sonnet 4.5, Gemini 2.5
  Flash/Flash-Lite/Pro, Mistral Small) + add reasoning_options (type=effort).
- Fix ministral-8b modalities (text-only model wrongly listed image input).
- Align Claude Sonnet 4.5 context to the standard 200k tier.
- Add factual metadata: family, knowledge cutoff, structured_output.
@MVS-source
MVS-source force-pushed the add-edenai-provider branch from dfe9590 to e47b870 Compare July 16, 2026 15:16
@github-actions

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/edenai/models/**/*.toml (e.g. providers/edenai/models/openai/gpt-4o.toml:1) - Check: Use base_model instead of duplicating provider-agnostic facts when a matching models/<provider>/<model>.toml exists. Why: This is a hard blocker under AGENTS.md. 16 of the 18 new models have exact-match provider-agnostic metadata entries (anthropic/claude-haiku-4-5, anthropic/claude-sonnet-4-5, cohere/command-a-03-2025, cohere/command-r-plus-08-2024, deepseek/deepseek-chat, google/gemini-2.5-flash-lite, google/gemini-2.5-flash, google/gemini-2.5-pro, mistral/codestral-latest, mistral/devstral-medium-latest, mistral/mistral-large-latest, mistral/mistral-medium-latest, mistral/mistral-small-latest, mistral/pixtral-large-latest, openai/gpt-4o-mini, openai/gpt-4o), yet every shared field (name, description, family, release_date, knowledge, capabilities, modalities, limit) is re-authored inline. The canonical aggregator pattern is base_model = "openai/gpt-4o" plus only [cost]/overrides — see providers/openrouter/models/openai/gpt-4o.toml. Action: Convert those 16 files to base_model = "<provider>/<model>" and keep only Eden-specific fields ([cost], provider-specific limit/modalities overrides, reasoning_options, status). Also convert providers/edenai/models/mistral/open-mistral-nemo.toml to base_model = "mistral/mistral-nemo" (same underlying model; only mistral/ministral-8b-latest.toml lacks a matching metadata entry and may stay inline).
  • [medium] [possible mistake] providers/edenai/models/deepseek/deepseek-chat.toml:4,6 (also mistral/mistral-small-latest.toml:4,6 and mistral/devstral-medium-latest.toml:4,6) - Check: release_date must not predate knowledge. Why: These three set a knowledge cutoff months after the release date (deepseek-chat: 2024-12-26 vs 2025-09; mistral-small-latest: 2025-03-17 vs 2025-06; devstral-medium-latest: 2025-07-10 vs 2025-12), which is impossible — training data cannot end after publication. The canonical models/ entries carry later release dates consistent with those cutoffs, indicating stale release dates copied from prior model generations. Action: Correct release_date (or inherit the canonical value via base_model) so it is not earlier than knowledge.
  • [medium] [possible mistake] providers/edenai/models/mistral/mistral-medium-latest.toml:7 - Check: reasoning should reflect the underlying model's capability. Why: The PR sets reasoning = false, but models/mistral/mistral-medium-latest.toml records reasoning = true (mistral-medium-latest now aliases Mistral Medium 3.5, which reasons). The PR body's "verified live" reasoning list omits mistral-medium, suggesting stale data from an older Medium generation. Action: Verify whether Eden's mistral-medium-latest exposes reasoning; set reasoning = true with matching reasoning_options if so, or document the provider-specific deviation.
  • [low] [possible mistake] providers/edenai/models/anthropic/claude-haiku-4-5.toml:13-15 (and the other 5 reasoning models) - Check: reasoning_options effort values require provider evidence. Why: Six models declare type = "effort" with ["low","medium","high"] but the PR body cites no Eden AI API reference or model docs. The audit-reasoning-options skill treats low/medium/high as a baseline, not proof, for OpenAI-compatible gateways that may silently drop unknown fields, and Claude models natively use a thinking budget rather than reasoning_effort, so Eden's forwarding/translation must be documented. Action: Add direct Eden AI citations showing reasoning_effort (or equivalent) is accepted and effective per model family, or set reasoning_options = [] until verified.
  • [low] [violation] providers/edenai/models/**/*.toml - Check: Cite first-party sources for material data claims. Why: Pricing, context limits, and capabilities are sourced "from Eden AI's /v3/models endpoint" per the PR body, but no direct links are provided and each citation should state what it supports. Costs and limits (e.g. deepseek-chat 0.28/0.42, the 8192 output caps) are material and otherwise unverifiable from the diff. Action: Add Eden AI pricing/model-doc URLs to the PR body mapped to the specific fields they justify.
  • [low] [violation] providers/edenai/ - Check: Add a sync module when the provider API is context-rich. Why: Eden AI exposes a /v3/models endpoint that can authoritatively populate pricing, context, and capabilities and delete retired models; the data drift in this PR (stale release dates, narrowed modalities) is exactly what a sync would prevent. Not a blocker, but sanctioned by AGENTS.md/sync.md for context-rich sources. Action: Consider adding packages/core/src/sync/providers/edenai.ts (OpenRouter/Kilo style) in a follow-up.

@opencode-agent

Copy link
Copy Markdown
Contributor

Closing this because the outstanding review feedback has been waiting without a response and the PR has gone stale. The current branch still needs the requested base_model conversions, metadata corrections, reasoning-control evidence, and source citations before it can be reviewed for merge. Please open a fresh PR from current dev once those items are addressed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant