@mcp-abap-adt/openai-embedder 25.0.0 → 27.0.1
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.
package/README.md
CHANGED
|
@@ -20,9 +20,10 @@ npm install @mcp-abap-adt/openai-embedder
|
|
|
20
20
|
|
|
21
21
|
```ts
|
|
22
22
|
import { OpenAiEmbedder } from '@mcp-abap-adt/openai-embedder';
|
|
23
|
+
import { staticApiKey } from '@mcp-abap-adt/llm-agent';
|
|
23
24
|
|
|
24
25
|
const embedder = new OpenAiEmbedder({
|
|
25
|
-
|
|
26
|
+
credential: staticApiKey('sk-...'),
|
|
26
27
|
model: 'text-embedding-3-small',
|
|
27
28
|
});
|
|
28
29
|
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import type { IApiKeyCredential } from '@mcp-abap-adt/interfaces-auth';
|
|
1
2
|
import type { IEmbedderBatch, IEmbedResult } from '@mcp-abap-adt/llm-agent';
|
|
2
3
|
import { type CallOptions } from '@mcp-abap-adt/llm-agent';
|
|
3
4
|
export interface OpenAiEmbedderConfig {
|
|
4
|
-
/**
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Asked for fresh on every request — never cached — so a rotating key
|
|
7
|
+
* rotates and a resolved-once secret is never frozen for the object's
|
|
8
|
+
* lifetime.
|
|
9
|
+
*/
|
|
10
|
+
credential: IApiKeyCredential;
|
|
6
11
|
/** API base URL. Default: 'https://api.openai.com/v1' */
|
|
7
12
|
baseURL?: string;
|
|
8
13
|
/** Required: embedding model name (e.g. 'text-embedding-3-small'). No default — must be set explicitly. */
|
|
@@ -10,9 +15,11 @@ export interface OpenAiEmbedderConfig {
|
|
|
10
15
|
}
|
|
11
16
|
export declare class OpenAiEmbedder implements IEmbedderBatch {
|
|
12
17
|
private readonly baseURL;
|
|
13
|
-
private readonly
|
|
18
|
+
private readonly credential;
|
|
14
19
|
readonly model: string;
|
|
15
20
|
constructor(config: OpenAiEmbedderConfig);
|
|
21
|
+
/** Asked per request, from the field — there is no config object to pass. */
|
|
22
|
+
private authorization;
|
|
16
23
|
embed(text: string, options?: CallOptions): Promise<IEmbedResult>;
|
|
17
24
|
embedBatch(texts: string[], options?: CallOptions): Promise<IEmbedResult[]>;
|
|
18
25
|
}
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"openai-embedder.d.ts","sourceRoot":"","sources":["../src/openai-embedder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,yBAAyB,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,UAAU,EAAE,iBAAiB,CAAC;IAC9B,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,UAAU,CAAoB;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,oBAAoB;IAexC,6EAA6E;YAC/D,aAAa;IAIrB,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
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
import { RagError } from '@mcp-abap-adt/llm-agent';
|
|
2
2
|
export class OpenAiEmbedder {
|
|
3
3
|
baseURL;
|
|
4
|
-
|
|
4
|
+
credential;
|
|
5
5
|
model;
|
|
6
6
|
constructor(config) {
|
|
7
|
-
if (!config.
|
|
7
|
+
if (!config.credential) {
|
|
8
8
|
throw new Error('OpenAI API key is required for embedding');
|
|
9
9
|
}
|
|
10
10
|
if (!config.model) {
|
|
11
11
|
throw new Error("OpenAIEmbedder requires a 'model'");
|
|
12
12
|
}
|
|
13
|
-
this.
|
|
13
|
+
this.credential = config.credential;
|
|
14
14
|
this.baseURL = (config.baseURL ?? 'https://api.openai.com/v1').replace(/\/$/, '');
|
|
15
15
|
this.model = config.model;
|
|
16
16
|
}
|
|
17
|
+
/** Asked per request, from the field — there is no config object to pass. */
|
|
18
|
+
async authorization() {
|
|
19
|
+
return `Bearer ${await this.credential.secret()}`;
|
|
20
|
+
}
|
|
17
21
|
async embed(text, options) {
|
|
18
22
|
const url = `${this.baseURL}/embeddings`;
|
|
19
23
|
let lastError;
|
|
@@ -28,7 +32,7 @@ export class OpenAiEmbedder {
|
|
|
28
32
|
method: 'POST',
|
|
29
33
|
headers: {
|
|
30
34
|
'Content-Type': 'application/json',
|
|
31
|
-
Authorization:
|
|
35
|
+
Authorization: await this.authorization(),
|
|
32
36
|
},
|
|
33
37
|
body: JSON.stringify({ model: this.model, input: text }),
|
|
34
38
|
signal: options?.signal,
|
|
@@ -74,7 +78,7 @@ export class OpenAiEmbedder {
|
|
|
74
78
|
method: 'POST',
|
|
75
79
|
headers: {
|
|
76
80
|
'Content-Type': 'application/json',
|
|
77
|
-
Authorization:
|
|
81
|
+
Authorization: await this.authorization(),
|
|
78
82
|
},
|
|
79
83
|
body: JSON.stringify({ model: this.model, input: chunk }),
|
|
80
84
|
signal: options?.signal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-embedder.js","sourceRoot":"","sources":["../src/openai-embedder.ts"],"names":[],"mappings":"
|
|
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": "27.0.1",
|
|
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,8 @@
|
|
|
24
24
|
"test": "node --import tsx/esm --test --test-reporter=spec 'src/**/*.test.ts'"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@mcp-abap-adt/
|
|
27
|
+
"@mcp-abap-adt/interfaces-auth": "^1.1.0",
|
|
28
|
+
"@mcp-abap-adt/llm-agent": "^27.0.1"
|
|
28
29
|
},
|
|
29
30
|
"license": "LGPL-3.0-only",
|
|
30
31
|
"repository": {
|