openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
45 lines (44 loc) • 1.63 kB
JavaScript
import { l as sanitizeEmbeddingCacheHeaders } from "./memory-core-host-engine-embeddings-DwuZ1cl_.js";
import { t as DEFAULT_OLLAMA_EMBEDDING_MODEL } from "./defaults-BiE2_Zq0.js";
import { t as createOllamaEmbeddingProvider } from "./embedding-provider-DvwFOmpR.js";
import { createHash } from "node:crypto";
//#region extensions/ollama/src/memory-embedding-adapter.ts
const OLLAMA_EMBEDDING_CACHE_EXCLUDED_HEADERS = [
"authorization",
"content-type",
"x-api-key"
];
function hashEmbeddingCacheHeaders(headers) {
return headers.length > 0 ? createHash("sha256").update(JSON.stringify(headers)).digest("hex") : void 0;
}
const ollamaMemoryEmbeddingProviderAdapter = {
id: "ollama",
defaultModel: DEFAULT_OLLAMA_EMBEDDING_MODEL,
transport: "remote",
authProviderId: "ollama",
create: async (options) => {
const providerId = options.provider?.trim() || "ollama";
const { provider, client } = await createOllamaEmbeddingProvider({
...options,
provider: providerId,
fallback: "none"
});
const headersHash = hashEmbeddingCacheHeaders(sanitizeEmbeddingCacheHeaders(client.headers, OLLAMA_EMBEDDING_CACHE_EXCLUDED_HEADERS));
return {
provider,
runtime: {
id: "ollama",
inlineBatchTimeoutMs: 6e5,
cacheKeyData: {
provider: providerId,
...providerId === "ollama" && client.baseUrl === "http://127.0.0.1:11434" && headersHash === void 0 ? {} : { baseUrl: client.baseUrl },
model: client.model,
outputDimensionality: client.outputDimensionality,
...headersHash ? { headersHash } : {}
}
}
};
}
};
//#endregion
export { ollamaMemoryEmbeddingProviderAdapter };