mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-11 01:32:22 +03:00
Compare commits
6 Commits
feat/9490-
...
feat/6671-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
010e1fb6f9 | ||
|
|
ab2bde20b9 | ||
|
|
e0827d57f1 | ||
|
|
af35e47d69 | ||
|
|
dbd31e91f4 | ||
|
|
a5212536c2 |
1
changelog.d/features/6671-deepai-multimodal-provider.md
Normal file
1
changelog.d/features/6671-deepai-multimodal-provider.md
Normal file
@@ -0,0 +1 @@
|
||||
- **feat(providers):** add DeepAI as paid API-key image provider ([#6671](https://github.com/diegosouzapw/OmniRoute/issues/6671))
|
||||
@@ -14,6 +14,7 @@ import { notion_webProvider } from "./registry/notion-web/index.ts";
|
||||
import { anthropicProvider } from "./registry/anthropic/index.ts";
|
||||
import { sambanovaProvider } from "./registry/sambanova/index.ts";
|
||||
import { puterProvider } from "./registry/puter/index.ts";
|
||||
import { deepaiProvider } from "./registry/deepai/index.ts";
|
||||
import { upstageProvider } from "./registry/upstage/index.ts";
|
||||
import { nebiusProvider } from "./registry/nebius/index.ts";
|
||||
import { fireworksProvider } from "./registry/fireworks/index.ts";
|
||||
@@ -236,6 +237,7 @@ export const REGISTRY: Record<string, RegistryEntry> = {
|
||||
sambanova: sambanovaProvider,
|
||||
puter: puterProvider,
|
||||
upstage: upstageProvider,
|
||||
deepai: deepaiProvider,
|
||||
nebius: nebiusProvider,
|
||||
fireworks: fireworksProvider,
|
||||
llamagate: llamagateProvider,
|
||||
|
||||
13
open-sse/config/providers/registry/deepai/index.ts
Normal file
13
open-sse/config/providers/registry/deepai/index.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import type { RegistryEntry } from "../shared";
|
||||
|
||||
export const deepaiProvider: RegistryEntry = {
|
||||
id: "deepai",
|
||||
alias: "deepai",
|
||||
format: "custom",
|
||||
baseUrl: "https://api.deepai.org",
|
||||
authType: "apikey",
|
||||
authHeader: "api-key",
|
||||
models: [
|
||||
{ id: "text2img", name: "Text to Image" },
|
||||
],
|
||||
};
|
||||
@@ -62,6 +62,7 @@ export const IMAGE_ONLY_PROVIDER_IDS = new Set([
|
||||
"topaz",
|
||||
"segmind",
|
||||
"freepik",
|
||||
"deepai",
|
||||
]);
|
||||
|
||||
export const AGGREGATOR_PROVIDER_IDS = new Set([
|
||||
|
||||
@@ -287,4 +287,17 @@ export const APIKEY_PROVIDERS_SPECIALTY = {
|
||||
authHint: "X-API-Key from agent.tinyfish.ai/api-keys",
|
||||
serviceKinds: ["webFetch"],
|
||||
},
|
||||
deepai: {
|
||||
id: "deepai",
|
||||
alias: "deepai",
|
||||
name: "DeepAI",
|
||||
icon: "psychology",
|
||||
color: "#4A90D9",
|
||||
textIcon: "DA",
|
||||
website: "https://deepai.org",
|
||||
authHint:
|
||||
"Use your DeepAI API key. Get one at deepai.org — requires a Pro subscription ($9.99/mo).",
|
||||
apiHint:
|
||||
"DeepAI uses per-endpoint REST calls (e.g. /api/text2img) instead of OpenAI chat/completions. OmniRoute adapts OpenAI image generation requests to DeepAI's /api/{slug} endpoints.",
|
||||
},
|
||||
};
|
||||
|
||||
28
tests/unit/deepai-provider.test.ts
Normal file
28
tests/unit/deepai-provider.test.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { describe, it } from "node:test";
|
||||
import { ok, equal } from "node:assert/strict";
|
||||
|
||||
describe("DeepAI provider registration", () => {
|
||||
it("is listed in IMAGE_ONLY_PROVIDER_IDS", async () => {
|
||||
const { IMAGE_ONLY_PROVIDER_IDS } = await import("@/shared/constants/providers");
|
||||
ok(IMAGE_ONLY_PROVIDER_IDS.has("deepai"), "deepai should be in IMAGE_ONLY_PROVIDER_IDS");
|
||||
});
|
||||
|
||||
it("has a catalog entry in specialty-media", async () => {
|
||||
const { APIKEY_PROVIDERS_SPECIALTY } = await import(
|
||||
"@/shared/constants/providers/apikey/specialty-media"
|
||||
);
|
||||
ok(APIKEY_PROVIDERS_SPECIALTY.deepai, "deepai catalog entry should exist");
|
||||
equal(APIKEY_PROVIDERS_SPECIALTY.deepai.id, "deepai");
|
||||
equal(APIKEY_PROVIDERS_SPECIALTY.deepai.icon, "psychology");
|
||||
});
|
||||
|
||||
it("has a registry entry", async () => {
|
||||
const { deepaiProvider } = await import(
|
||||
"@/../open-sse/config/providers/registry/deepai/index"
|
||||
);
|
||||
ok(deepaiProvider, "deepai registry entry should exist");
|
||||
equal(deepaiProvider.id, "deepai");
|
||||
equal(deepaiProvider.authType, "apikey");
|
||||
ok(deepaiProvider.models?.length >= 1, "should have at least one model");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user