Files
openclaw/extensions/deepinfra/embedding-provider.ts
Georgi Atsev 9e7c2b356b fix(deepinfra): load all DeepInfra models when user wants to browse t… (#84549)
* fix(deepinfra): load all DeepInfra models when user wants to browse them during onboarding

* docs(deepinfra): align TTS default

* fix(deepinfra): refresh video fallbacks

* fix(deepinfra): share credential-aware catalog discovery

* test(deepinfra): narrow catalog regression types

* test(deepinfra): keep catalog narrowing across callback

* fix(deepinfra): preserve default model in live catalog

* fix(deepinfra): align default model pricing

* fix(deepinfra): keep pixverse as video default

* docs(deepinfra): match video fallback default

* fix(deepinfra): honor config api keys for live catalog

* test(e2e): wait for watchdog stdio close

* test(media): align live harness provider expectation

* fix(deepinfra): always augment custom catalogs

* test(e2e): resolve watchdog commands before spawning

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-27 10:43:37 +01:00

35 lines
1.2 KiB
TypeScript

import {
createRemoteEmbeddingProvider,
resolveRemoteEmbeddingClient,
type MemoryEmbeddingProviderCreateOptions,
type MemoryEmbeddingProviderCreateResult,
} from "openclaw/plugin-sdk/memory-core-host-engine-embeddings";
import {
DEEPINFRA_BASE_URL,
DEEPINFRA_EMBED_FALLBACK_MODELS,
normalizeDeepInfraModelRef,
} from "./media-models.js";
export const DEFAULT_DEEPINFRA_EMBEDDING_MODEL = DEEPINFRA_EMBED_FALLBACK_MODELS[0];
export async function createDeepInfraEmbeddingProvider(
options: MemoryEmbeddingProviderCreateOptions & { defaultModel?: string },
): Promise<MemoryEmbeddingProviderCreateResult & { client: { model: string } }> {
const defaultModel = options.defaultModel ?? DEFAULT_DEEPINFRA_EMBEDDING_MODEL;
const client = await resolveRemoteEmbeddingClient({
provider: "deepinfra",
options: {
...options,
model: normalizeDeepInfraModelRef(options.model, defaultModel),
},
defaultBaseUrl: DEEPINFRA_BASE_URL,
normalizeModel: (model) => normalizeDeepInfraModelRef(model, defaultModel),
});
const provider = createRemoteEmbeddingProvider({
id: "deepinfra",
client,
errorPrefix: "DeepInfra embeddings API error",
});
return { provider, client };
}