mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-05 02:40:24 +00:00
refactor: make memory embedding adapters generic
This commit is contained in:
@@ -12,7 +12,10 @@ import {
|
||||
type MemoryEmbeddingProviderCreateOptions,
|
||||
type MemoryEmbeddingProviderRuntime,
|
||||
} from "../engine-host-api.js";
|
||||
import { canAutoSelectLocal } from "./provider-adapters.js";
|
||||
import {
|
||||
canAutoSelectLocal,
|
||||
getBuiltinMemoryEmbeddingProviderAdapter,
|
||||
} from "./provider-adapters.js";
|
||||
|
||||
export {
|
||||
DEFAULT_GEMINI_EMBEDDING_MODEL,
|
||||
@@ -92,6 +95,15 @@ function resolveProviderModel(
|
||||
return adapter.defaultModel ?? "";
|
||||
}
|
||||
|
||||
export function resolveEmbeddingProviderFallbackModel(
|
||||
providerId: string,
|
||||
fallbackSourceModel: string,
|
||||
): string {
|
||||
const adapter =
|
||||
getMemoryEmbeddingProvider(providerId) ?? getBuiltinMemoryEmbeddingProviderAdapter(providerId);
|
||||
return adapter?.defaultModel ?? fallbackSourceModel;
|
||||
}
|
||||
|
||||
async function createWithAdapter(
|
||||
adapter: MemoryEmbeddingProviderAdapter,
|
||||
options: CreateEmbeddingProviderOptions,
|
||||
|
||||
@@ -32,14 +32,10 @@ import {
|
||||
} from "../engine-host-api.js";
|
||||
import {
|
||||
createEmbeddingProvider,
|
||||
DEFAULT_GEMINI_EMBEDDING_MODEL,
|
||||
DEFAULT_MISTRAL_EMBEDDING_MODEL,
|
||||
DEFAULT_OLLAMA_EMBEDDING_MODEL,
|
||||
DEFAULT_OPENAI_EMBEDDING_MODEL,
|
||||
DEFAULT_VOYAGE_EMBEDDING_MODEL,
|
||||
type EmbeddingProvider,
|
||||
type EmbeddingProviderId,
|
||||
type EmbeddingProviderRuntime,
|
||||
resolveEmbeddingProviderFallbackModel,
|
||||
} from "./embeddings.js";
|
||||
import { buildFileEntry } from "./internal.js";
|
||||
import { loadSqliteVecExtension } from "./sqlite-vec.js";
|
||||
@@ -1119,18 +1115,7 @@ export abstract class MemoryManagerSyncOps {
|
||||
}
|
||||
const fallbackFrom = this.provider.id as EmbeddingProviderId;
|
||||
|
||||
const fallbackModel =
|
||||
fallback === "gemini"
|
||||
? DEFAULT_GEMINI_EMBEDDING_MODEL
|
||||
: fallback === "openai"
|
||||
? DEFAULT_OPENAI_EMBEDDING_MODEL
|
||||
: fallback === "voyage"
|
||||
? DEFAULT_VOYAGE_EMBEDDING_MODEL
|
||||
: fallback === "mistral"
|
||||
? DEFAULT_MISTRAL_EMBEDDING_MODEL
|
||||
: fallback === "ollama"
|
||||
? DEFAULT_OLLAMA_EMBEDDING_MODEL
|
||||
: this.settings.model;
|
||||
const fallbackModel = resolveEmbeddingProviderFallbackModel(fallback, this.settings.model);
|
||||
|
||||
const fallbackResult = await createEmbeddingProvider({
|
||||
config: this.cfg,
|
||||
|
||||
@@ -334,6 +334,16 @@ export const builtinMemoryEmbeddingProviderAdapters = [
|
||||
ollamaAdapter,
|
||||
] as const;
|
||||
|
||||
const builtinMemoryEmbeddingProviderAdapterById = new Map(
|
||||
builtinMemoryEmbeddingProviderAdapters.map((adapter) => [adapter.id, adapter]),
|
||||
);
|
||||
|
||||
export function getBuiltinMemoryEmbeddingProviderAdapter(
|
||||
id: string,
|
||||
): MemoryEmbeddingProviderAdapter | undefined {
|
||||
return builtinMemoryEmbeddingProviderAdapterById.get(id);
|
||||
}
|
||||
|
||||
export function registerBuiltInMemoryEmbeddingProviders(register: {
|
||||
registerMemoryEmbeddingProvider: (adapter: MemoryEmbeddingProviderAdapter) => void;
|
||||
}): void {
|
||||
|
||||
Reference in New Issue
Block a user