feat: add deAPI provider#1855
Open
adampachowicz wants to merge 4 commits into
Open
Conversation
…ield, underscored numbers
- Rename all model files to match exact deAPI native slugs so consumers (OpenCode, Vercel AI SDK) send the correct model identifier to https://oai.deapi.ai/v1 (model id is auto-derived from filename): bge-m3-fp16 -> Bge_M3_FP16 flux1schnell -> Flux1schnell flux2klein4b -> Flux_2_Klein_4B_BF16 z-image-turbo -> ZImageTurbo_INT8 z-anime -> ZAnimeDistill_8Step_INT8 - Add "z-image" to packages/core/src/family.ts enum so Z-Image models can be properly classified. - Correct Z-Image release dates: ZImageTurbo_INT8: 2025-03-15 -> 2025-11-26 (Tongyi Lab) ZAnimeDistill_8Step_INT8: 2025-03-15 -> 2025-12-28
Reviewer correctly flagged that the previous logo.svg was not the deAPI brand mark. The chip glyph below is taken from the deAPI brand system (pixel-art frame with center slash, amber #FFBA00 in product contexts; here exported as a flat icon-only path with currentColor so models.dev can theme it light/dark). - Path data sourced from the official deAPI marketing site (resources/v2/assets/logo.svg, chip-glyph subpath). - Centered inside viewBox="0 0 40 40" via translate(5.4525, 4) so the 29.095x32 chip art is padded evenly (~5.45px / 4px). - Single currentColor fill, no embedded color tokens, no defs. Apologies to the maintainer — that was a sourcing mistake on our end, not a misrepresentation of the provider.
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.
Summary
Adds deAPI as a provider — OpenAI-compatible inference API for open-source AI models served on decentralized GPU infrastructure (
https://oai.deapi.ai/v1).Provider uses
npm = "@ai-sdk/openai-compatible"(no dedicated SDK published yet).This PR is intentionally scoped to deAPI's embeddings + image-generation catalog. Other modalities deAPI offers (TTS, transcription, OCR, video, image editing, upscaling, music) are out of scope here and will follow in a separate PR.
Models
Filenames match deAPI's canonical case-sensitive API slugs (verified via
GET /api/v2/models) so consumer-sidemodelparameters resolve correctly at the upstream API.Bge_M3_FP16— embedding (family = "bge",[cost]per million tokens, followsopenai/text-embedding-3-small.tomlpattern)Flux1schnell— text-to-image (family = "flux")Flux_2_Klein_4B_BF16— text-to-image + multi-reference editing (family = "flux",attachment = true)ZImageTurbo_INT8— text-to-image (family = "z-image")ZAnimeDistill_8Step_INT8— text-to-image, anime style (family = "z-image")Image models follow the
openai/gpt-image-1.tomlpattern:[limit]zeroed,[cost]omitted.Files
providers/deapi/provider.tomlproviders/deapi/logo.svgproviders/deapi/models/Bge_M3_FP16.tomlproviders/deapi/models/Flux1schnell.tomlproviders/deapi/models/Flux_2_Klein_4B_BF16.tomlproviders/deapi/models/ZImageTurbo_INT8.tomlproviders/deapi/models/ZAnimeDistill_8Step_INT8.tomlpackages/core/src/family.ts— adds"z-image"to the family enum (used by the two Z-Image models above)Validation
bun validatepasses locally (exit 0); all 5 models appear in the generated output with correctid/family/modalities.Links