@mcp-abap-adt/openai-embedder 24.0.0 → 25.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -7,14 +7,11 @@ export interface OpenAiEmbedderConfig {
|
|
|
7
7
|
baseURL?: string;
|
|
8
8
|
/** Required: embedding model name (e.g. 'text-embedding-3-small'). No default — must be set explicitly. */
|
|
9
9
|
model: string;
|
|
10
|
-
/** Per-request timeout in milliseconds. Default: 30 000 */
|
|
11
|
-
timeoutMs?: number;
|
|
12
10
|
}
|
|
13
11
|
export declare class OpenAiEmbedder implements IEmbedderBatch {
|
|
14
12
|
private readonly baseURL;
|
|
15
13
|
private readonly apiKey;
|
|
16
14
|
readonly model: string;
|
|
17
|
-
private readonly timeoutMs;
|
|
18
15
|
constructor(config: OpenAiEmbedderConfig);
|
|
19
16
|
embed(text: string, options?: CallOptions): Promise<IEmbedResult>;
|
|
20
17
|
embedBatch(texts: string[], options?: CallOptions): Promise<IEmbedResult[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-embedder.d.ts","sourceRoot":"","sources":["../src/openai-embedder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,yBAAyB,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-embedder.d.ts","sourceRoot":"","sources":["../src/openai-embedder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,yBAAyB,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,cAAe,YAAW,cAAc;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,oBAAoB;IAelC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAuDjE,UAAU,CACd,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,EAAE,CAAC;CAmE3B"}
|
package/dist/openai-embedder.js
CHANGED
|
@@ -3,7 +3,6 @@ export class OpenAiEmbedder {
|
|
|
3
3
|
baseURL;
|
|
4
4
|
apiKey;
|
|
5
5
|
model;
|
|
6
|
-
timeoutMs;
|
|
7
6
|
constructor(config) {
|
|
8
7
|
if (!config.apiKey) {
|
|
9
8
|
throw new Error('OpenAI API key is required for embedding');
|
|
@@ -14,7 +13,6 @@ export class OpenAiEmbedder {
|
|
|
14
13
|
this.apiKey = config.apiKey;
|
|
15
14
|
this.baseURL = (config.baseURL ?? 'https://api.openai.com/v1').replace(/\/$/, '');
|
|
16
15
|
this.model = config.model;
|
|
17
|
-
this.timeoutMs = config.timeoutMs ?? 30_000;
|
|
18
16
|
}
|
|
19
17
|
async embed(text, options) {
|
|
20
18
|
const url = `${this.baseURL}/embeddings`;
|
|
@@ -22,10 +20,10 @@ export class OpenAiEmbedder {
|
|
|
22
20
|
const maxRetries = 3;
|
|
23
21
|
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
24
22
|
try {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
// The caller's signal and nothing else. A ceiling of our own would run
|
|
24
|
+
// on every request and fire instead of whatever decided above us — a
|
|
25
|
+
// caller waiting out a server's Retry-After, cut before the interval
|
|
26
|
+
// is up. A consumer that wants one passes AbortSignal.timeout().
|
|
29
27
|
const res = await fetch(url, {
|
|
30
28
|
method: 'POST',
|
|
31
29
|
headers: {
|
|
@@ -33,7 +31,7 @@ export class OpenAiEmbedder {
|
|
|
33
31
|
Authorization: `Bearer ${this.apiKey}`,
|
|
34
32
|
},
|
|
35
33
|
body: JSON.stringify({ model: this.model, input: text }),
|
|
36
|
-
signal,
|
|
34
|
+
signal: options?.signal,
|
|
37
35
|
});
|
|
38
36
|
if (!res.ok) {
|
|
39
37
|
const errorText = await res.text();
|
|
@@ -72,10 +70,6 @@ export class OpenAiEmbedder {
|
|
|
72
70
|
const maxRetries = 3;
|
|
73
71
|
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
74
72
|
try {
|
|
75
|
-
const timeoutSignal = AbortSignal.timeout(this.timeoutMs);
|
|
76
|
-
const signal = options?.signal
|
|
77
|
-
? AbortSignal.any([options.signal, timeoutSignal])
|
|
78
|
-
: timeoutSignal;
|
|
79
73
|
const res = await fetch(url, {
|
|
80
74
|
method: 'POST',
|
|
81
75
|
headers: {
|
|
@@ -83,7 +77,7 @@ export class OpenAiEmbedder {
|
|
|
83
77
|
Authorization: `Bearer ${this.apiKey}`,
|
|
84
78
|
},
|
|
85
79
|
body: JSON.stringify({ model: this.model, input: chunk }),
|
|
86
|
-
signal,
|
|
80
|
+
signal: options?.signal,
|
|
87
81
|
});
|
|
88
82
|
if (!res.ok) {
|
|
89
83
|
const errorText = await res.text();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-embedder.js","sourceRoot":"","sources":["../src/openai-embedder.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,QAAQ,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-embedder.js","sourceRoot":"","sources":["../src/openai-embedder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-abap-adt/openai-embedder",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "25.0.0",
|
|
4
4
|
"description": "OpenAI embedding provider (IEmbedderBatch) for @mcp-abap-adt/llm-agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"test": "node --import tsx/esm --test --test-reporter=spec 'src/**/*.test.ts'"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@mcp-abap-adt/llm-agent": "^
|
|
27
|
+
"@mcp-abap-adt/llm-agent": "^25.0.0"
|
|
28
28
|
},
|
|
29
29
|
"license": "LGPL-3.0-only",
|
|
30
30
|
"repository": {
|