



























@@ -29,6 +29,17 @@ function createOptions(
2929};
3030}
313132+function expectFetchRemoteEmbeddingVectorsBody(body: Record<string, unknown>) {
33+expect(mocks.fetchRemoteEmbeddingVectors).toHaveBeenCalledWith({
34+url: "https://embeddings.example/v1/embeddings",
35+headers: { Authorization: "Bearer test" },
36+ssrfPolicy: undefined,
37+fetchImpl: undefined,
38+ body,
39+errorPrefix: "openai embeddings failed",
40+});
41+}
42+3243describe("OpenAI embedding provider", () => {
3344beforeEach(() => {
3445mocks.fetchRemoteEmbeddingVectors.mockClear();
@@ -42,15 +53,11 @@ describe("OpenAI embedding provider", () => {
42534354await provider.embedQuery("hello");
445545-expect(mocks.fetchRemoteEmbeddingVectors).toHaveBeenCalledWith(
46-expect.objectContaining({
47-body: {
48-model: "text-embedding-3-small",
49-input: ["hello"],
50-input_type: "query",
51-},
52-}),
53-);
56+expectFetchRemoteEmbeddingVectorsBody({
57+model: "text-embedding-3-small",
58+input: ["hello"],
59+input_type: "query",
60+});
5461});
55625663it("sends documentInputType on document batch embeddings", async () => {
@@ -60,30 +67,22 @@ describe("OpenAI embedding provider", () => {
60676168await provider.embedBatch(["doc one", "doc two"]);
626963-expect(mocks.fetchRemoteEmbeddingVectors).toHaveBeenCalledWith(
64-expect.objectContaining({
65-body: {
66-model: "text-embedding-3-small",
67-input: ["doc one", "doc two"],
68-input_type: "document",
69-},
70-}),
71-);
70+expectFetchRemoteEmbeddingVectorsBody({
71+model: "text-embedding-3-small",
72+input: ["doc one", "doc two"],
73+input_type: "document",
74+});
7275});
73767477it("omits input_type unless configured", async () => {
7578const { provider } = await createOpenAiEmbeddingProvider(createOptions());
76797780await provider.embedBatch(["doc"]);
788179-expect(mocks.fetchRemoteEmbeddingVectors).toHaveBeenCalledWith(
80-expect.objectContaining({
81-body: {
82-model: "text-embedding-3-small",
83-input: ["doc"],
84-},
85-}),
86-);
82+expectFetchRemoteEmbeddingVectorsBody({
83+model: "text-embedding-3-small",
84+input: ["doc"],
85+});
8786});
88878988it("sends outputDimensionality as OpenAI dimensions", async () => {
@@ -93,14 +92,10 @@ describe("OpenAI embedding provider", () => {
93929493await provider.embedBatch(["doc"]);
959496-expect(mocks.fetchRemoteEmbeddingVectors).toHaveBeenCalledWith(
97-expect.objectContaining({
98-body: {
99-model: "text-embedding-3-small",
100-input: ["doc"],
101-dimensions: 512,
102-},
103-}),
104-);
95+expectFetchRemoteEmbeddingVectorsBody({
96+model: "text-embedding-3-small",
97+input: ["doc"],
98+dimensions: 512,
99+});
105100});
106101});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。