






















@@ -51,16 +51,21 @@ function readLocalOptions(options: { local?: unknown }): LlamaCppLocalOptions {
5151return local ?? {};
5252}
535354-function createLlamaCppCacheKeyData(model: string): Record<string, unknown> {
54+function createLlamaCppCacheKeyData(
55+model: string,
56+outputDimensionality?: number,
57+): Record<string, unknown> {
5558return {
5659provider: LLAMA_CPP_EMBEDDING_PROVIDER_ID,
5760 model,
61+ ...(typeof outputDimensionality === "number" ? { outputDimensionality } : {}),
5862};
5963}
60646165function resolveLlamaCppModelIdentity(
6266local: LlamaCppLocalOptions,
6367modelPath: string,
68+outputDimensionality?: number,
6469): LlamaCppModelIdentity {
6570const modelCacheDir =
6671normalizeOptionalString(local.modelCacheDir) ??
@@ -80,7 +85,7 @@ function resolveLlamaCppModelIdentity(
8085) {
8186return {
8287model: modelPath,
83-cacheKeyData: createLlamaCppCacheKeyData(modelPath),
88+cacheKeyData: createLlamaCppCacheKeyData(modelPath, outputDimensionality),
8489aliases: [],
8590};
8691}
@@ -93,10 +98,13 @@ function resolveLlamaCppModelIdentity(
9398}
9499return {
95100model: DEFAULT_LLAMA_CPP_EMBEDDING_MODEL,
96-cacheKeyData: createLlamaCppCacheKeyData(DEFAULT_LLAMA_CPP_EMBEDDING_MODEL),
101+cacheKeyData: createLlamaCppCacheKeyData(
102+DEFAULT_LLAMA_CPP_EMBEDDING_MODEL,
103+outputDimensionality,
104+),
97105aliases: Array.from(aliasModels, (aliasModel) => ({
98106model: aliasModel,
99-cacheKeyData: createLlamaCppCacheKeyData(aliasModel),
107+cacheKeyData: createLlamaCppCacheKeyData(aliasModel, outputDimensionality),
100108})),
101109};
102110}
@@ -194,7 +202,11 @@ export async function createLlamaCppMemoryEmbeddingProvider(
194202const provider = await createLocalEmbeddingProvider(createOptions, {
195203nodeLlamaCppImportUrl: runtimeOptions.nodeLlamaCppImportUrl ?? resolveNodeLlamaCppImportUrl(),
196204});
197-const identity = resolveLlamaCppModelIdentity(local, provider.model);
205+const identity = resolveLlamaCppModelIdentity(
206+local,
207+provider.model,
208+createOptions.outputDimensionality,
209+);
198210const identifiedProvider =
199211identity.model === provider.model ? provider : { ...provider, model: identity.model };
200212return {
@@ -262,6 +274,7 @@ export const llamaCppEmbeddingProviderAdapter: EmbeddingProviderAdapter = {
262274return resolveLlamaCppModelIdentity(
263275local,
264276normalizeOptionalString(local.modelPath) ?? DEFAULT_LLAMA_CPP_EMBEDDING_MODEL,
277+createOptions.outputDimensionality,
265278);
266279},
267280create: async (options) => await createLlamaCppEmbeddingProviderResult(options),
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。