Add Eden AI provider (fresh PR, addresses previous review) - #3764
Closed
MVS-source wants to merge 3 commits into
Closed
Add Eden AI provider (fresh PR, addresses previous review)#3764MVS-source wants to merge 3 commits into
MVS-source wants to merge 3 commits into
Conversation
…te bugs Addresses review feedback from the previous PR (anomalyco#2914, closed for staleness): - Convert 16 of 18 model entries to base_model, matching the aggregator pattern used by openrouter/kilo instead of duplicating provider-agnostic facts inline. Only ministral-8b-latest stays inline (no matching models/ metadata entry exists for it). - This also fixes several stale facts that were hardcoded out of sync with the canonical models/ entries: wrong release_date on 9 models, a release_date that postdated its own knowledge cutoff on 3 models (deepseek-chat, mistral-small-latest, devstral-medium-latest), a stale reasoning=false on mistral-medium-latest (it now aliases Mistral Medium 3.5, which reasons), and open_weights hardcoded to false on 8 models that are actually open weight per their canonical entry. - Verified reasoning_effort live against Eden AI's chat completions endpoint for every reasoning model. For anthropic/claude-sonnet-4-5 and the three gemini models, reasoning_tokens usage scales with effort (documented per-file with the measured token counts). For mistral-small-latest and mistral-medium-latest, Eden's response never includes completion_tokens_details and completion length does not track effort consistently, so reasoning_options is set to [] on both per the no-verified-control guidance in AGENTS.md. claude-haiku-4-5 keeps reasoning_options since the parameter is accepted and forwarded, but the measured effect is small; documented as such. - Verified deepseek-chat's attachment=false live: sending an image to it through Eden AI returns a text response saying it cannot see images. - Added source citations as top-of-file comments (Eden AI's live /v3/models endpoint plus the reasoning_effort test results) so they survive if this provider ever gets a sync module. All 18 entries still pass bun run validate.
Contributor
Action items
|
…y cuts - ministral-8b-latest.toml mixed facts from two different Ministral generations (2024-era release_date/knowledge with 2512-era pricing and context), and set attachment=true while modalities.input was text-only, which is internally inconsistent. Checked Eden AI's live /v3/models entry for mistral/ministral-8b-latest (context_length=262144, input_modalities=[text,image], pricing $0.15/$0.15) against providers/openrouter/models/mistralai/ministral-8b-2512.toml: this is Ministral 3 8B (2512), not the original 2024 Ministral 8B. Rewrote the entry to match that revision consistently, output limit included. - Removed the [modalities] overrides on the 7 base_model entries that narrowed input modalities (dropping pdf, or audio/video for Gemini) without any citation. No live evidence supports those cuts, so they now inherit the full modality set from the canonical models/ entry instead. Still passes bun run validate.
Contributor
Action items
|
My own measurements (documented in the previous commit) show reasoning_tokens staying in a narrow, non-monotonic band across low/medium/high for this model, which does not meet the bar for a verified control. Set reasoning_options = [] to match how mistral-small-latest and mistral-medium-latest are already handled, instead of keeping the three-value effort option on evidence that does not support it.
Contributor
|
No actionable findings. |
Author
|
Hi @thdxr @fwang @rekram1-node, following up on this one. All the review feedback from the previous round has been addressed and the bot found no actionable issues on the latest pass. Would one of you have a moment to take a look? Happy to adjust anything. |
Author
|
Closing this in favor of #3929, which replaces the static TOML files with a live sync integration against Eden AI's |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Eden AI provider
Fresh PR from current
dev, replacing the previous one (#2914, closed for staleness). This addresses every item from the earlier automated review.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/modelformat), with unified billing/usage tracking and EU data residency options. This adds theedenaiprovider using@ai-sdk/openai-compatible(no new dependency), matching the pattern of existing aggregator entries likeopenrouter/kilo.Response to the previous review
models/<provider>/<model>.tomlentry now usebase_modelinstead of duplicating provider-agnostic facts, keeping only[cost]and any Eden-specific overrides.mistral/open-mistral-nemo.tomlnow points atbase_model = "mistral/mistral-nemo"(same underlying model). Onlymistral/ministral-8b-latest.tomlstays fully inline, since nomodels/mistral/ministral-8b-latest.tomlexists.deepseek-chat,mistral-small-latest, anddevstral-medium-latestby dropping the stale inline dates and inheriting the correct ones from the canonicalmodels/entry viabase_model.reasoning = truefrom the canonical entry (it aliases Mistral Medium 3.5), instead of the stalereasoning = falseleft over from an older Medium generation.reasoning_effortlive againsthttps://api.edenai.run/v3/chat/completionsfor every reasoning model, using a 3-clue logic puzzle prompt and readingusage.completion_tokens_details.reasoning_tokens:anthropic/claude-sonnet-4-5: 271 (low) -> 311 (high)google/gemini-2.5-flash: 835 (low) -> 1019 (high)google/gemini-2.5-flash-lite: 789 (low) -> 1667 (high)google/gemini-2.5-pro: 656 (low) -> 2079 (high)anthropic/claude-haiku-4-5: stayed in a narrow band across low/medium/high across two separate prompts (e.g. 251/253/260); keptreasoning_optionssince the parameter is accepted and forwarded (non-zero reasoning tokens), but documented that the effect is small for this model.mistral/mistral-small-latestandmistral/mistral-medium-latest: the response never includescompletion_tokens_details(it isnull), and completion length does not track effort consistently (626 -> 533 tokens from low to high on the same prompt). Setreasoning_options = []on both per the "no verified control" guidance inAGENTS.md./v3/modelsendpoint for cost/limit data (verified 2026-07-28), plus the reasoning test results where relevant.deepseek-chat'sattachment = falseoverride is backed by a live test: sending animage_urlcontent block to it through Eden AI returns a text response saying it cannot see images.packages/core/src/sync/providers/edenai.tsin a follow-up if useful, Eden AI's/v3/modelsendpoint is rich enough to support it.What's included
providers/edenai/provider.toml,providers/edenai/logo.svg/v3/modelsendpoint.Validation
bun run validatepasses with these entries included.Notes
I'm from the Eden AI team and we'll maintain this provider entry going forward.