mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 14:20:44 +00:00
fix(memory): preserve embedding proxy provider prefixes (#66452)
* fix(memory): preserve embedding proxy provider prefixes * docs(changelog): fix embeddings entry * Update CHANGELOG.md
This commit is contained in:
25
src/memory-host-sdk/host/embeddings-openai.test.ts
Normal file
25
src/memory-host-sdk/host/embeddings-openai.test.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { DEFAULT_OPENAI_EMBEDDING_MODEL, normalizeOpenAiModel } from "./embeddings-openai.js";
|
||||
|
||||
describe("normalizeOpenAiModel", () => {
|
||||
it("returns the default model when input is blank", () => {
|
||||
expect(normalizeOpenAiModel("")).toBe(DEFAULT_OPENAI_EMBEDDING_MODEL);
|
||||
expect(normalizeOpenAiModel(" ")).toBe(DEFAULT_OPENAI_EMBEDDING_MODEL);
|
||||
});
|
||||
|
||||
it("strips the openai/ prefix", () => {
|
||||
expect(normalizeOpenAiModel("openai/text-embedding-3-small")).toBe("text-embedding-3-small");
|
||||
expect(normalizeOpenAiModel("openai/text-embedding-ada-002")).toBe("text-embedding-ada-002");
|
||||
});
|
||||
|
||||
it("preserves explicit third-party provider prefixes", () => {
|
||||
expect(normalizeOpenAiModel("spark/text-embedding-3-small")).toBe(
|
||||
"spark/text-embedding-3-small",
|
||||
);
|
||||
expect(normalizeOpenAiModel("litellm/azure/ada-002")).toBe("litellm/azure/ada-002");
|
||||
});
|
||||
|
||||
it("preserves unprefixed model ids", () => {
|
||||
expect(normalizeOpenAiModel("text-embedding-3-large")).toBe("text-embedding-3-large");
|
||||
});
|
||||
});
|
||||
@@ -1,6 +1,6 @@
|
||||
import { parseStaticModelRef } from "../../agents/model-ref-shared.js";
|
||||
import type { SsrFPolicy } from "../../infra/net/ssrf.js";
|
||||
import { OPENAI_DEFAULT_EMBEDDING_MODEL } from "../../plugins/provider-model-defaults.js";
|
||||
import { normalizeEmbeddingModelWithPrefixes } from "./embeddings-model-normalize.js";
|
||||
import {
|
||||
createRemoteEmbeddingProvider,
|
||||
resolveRemoteEmbeddingClient,
|
||||
@@ -24,11 +24,12 @@ const OPENAI_MAX_INPUT_TOKENS: Record<string, number> = {
|
||||
};
|
||||
|
||||
export function normalizeOpenAiModel(model: string): string {
|
||||
return normalizeEmbeddingModelWithPrefixes({
|
||||
model,
|
||||
defaultModel: DEFAULT_OPENAI_EMBEDDING_MODEL,
|
||||
prefixes: ["openai/"],
|
||||
});
|
||||
const trimmed = model.trim();
|
||||
if (!trimmed) {
|
||||
return DEFAULT_OPENAI_EMBEDDING_MODEL;
|
||||
}
|
||||
const parsed = parseStaticModelRef(trimmed, "openai");
|
||||
return parsed && parsed.provider === "openai" ? parsed.model : trimmed;
|
||||
}
|
||||
|
||||
export async function createOpenAiEmbeddingProvider(
|
||||
|
||||
Reference in New Issue
Block a user