@mcp-abap-adt/openai-llm 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.
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OpenAI LLM Provider
|
|
3
3
|
*/
|
|
4
|
+
import type { IApiKeyCredential } from '@mcp-abap-adt/interfaces-auth';
|
|
4
5
|
import type { IModelInfo, LLMCallOptions, LLMProviderConfig, LLMResponse, Message } from '@mcp-abap-adt/llm-agent';
|
|
5
6
|
import { BaseLLMProvider } from '@mcp-abap-adt/llm-agent';
|
|
6
7
|
import { type AxiosInstance } from 'axios';
|
|
7
8
|
export interface OpenAIConfig extends LLMProviderConfig {
|
|
9
|
+
/**
|
|
10
|
+
* Asked for fresh on every request — never cached — so a rotating key
|
|
11
|
+
* rotates and a resolved-once secret is never frozen for the object's
|
|
12
|
+
* lifetime. `LLMProviderConfig` carries no credential field any more (each
|
|
13
|
+
* provider is typed for what its own target speaks), so this one is
|
|
14
|
+
* required here: this provider cannot authenticate without it.
|
|
15
|
+
*
|
|
16
|
+
* Quota scoping (`quotaCredential`) keys on this object's IDENTITY, not its
|
|
17
|
+
* secret: two calls to `staticApiKey(key)` create two credential objects
|
|
18
|
+
* and therefore two separate rate-limit buckets, even for the same key.
|
|
19
|
+
* Reuse one credential object — or set `quotaScope` explicitly — to make
|
|
20
|
+
* two providers share a gate.
|
|
21
|
+
*/
|
|
22
|
+
credential: IApiKeyCredential;
|
|
8
23
|
model?: string;
|
|
9
24
|
temperature?: number;
|
|
10
25
|
maxTokens?: number;
|
|
@@ -15,7 +30,43 @@ export declare class OpenAIProvider extends BaseLLMProvider<OpenAIConfig> {
|
|
|
15
30
|
readonly client: AxiosInstance;
|
|
16
31
|
readonly model: string;
|
|
17
32
|
protected readonly providerName: string;
|
|
33
|
+
/**
|
|
34
|
+
* Every direct instantiation authenticates. Ollama overrides this to
|
|
35
|
+
* `false` — its target ignores the key locally, though a gateway in front
|
|
36
|
+
* of it may still require one — without duplicating this constructor.
|
|
37
|
+
*
|
|
38
|
+
* Called from the constructor below, before it returns — so an override
|
|
39
|
+
* MUST be a constant (as both existing overrides are) and must never read
|
|
40
|
+
* instance state: `this` is not fully constructed yet at that point, and a
|
|
41
|
+
* field read here could see it half-initialized.
|
|
42
|
+
*
|
|
43
|
+
* `OllamaConfig`/`DeepSeekConfig` reach this constructor through an
|
|
44
|
+
* `as OpenAIConfig` cast (see their own files), which is what lets a
|
|
45
|
+
* possibly-`undefined` `credential` satisfy a field typed here as
|
|
46
|
+
* required. This hook, not the type, is what actually keeps a subclass
|
|
47
|
+
* honest about whether that's allowed.
|
|
48
|
+
*/
|
|
49
|
+
protected requiresCredential(): boolean;
|
|
18
50
|
constructor(config: OpenAIConfig);
|
|
51
|
+
/**
|
|
52
|
+
* `Authorization`, resolved fresh for this one request — never baked into
|
|
53
|
+
* `client.defaults.headers`, which would freeze whatever secret the
|
|
54
|
+
* credential returned at construction time.
|
|
55
|
+
*
|
|
56
|
+
* BEHAVIOUR CHANGE for Ollama: it used to send `Authorization: Bearer
|
|
57
|
+
* <key or the literal 'ollama'>` on every request unconditionally — a
|
|
58
|
+
* dummy value existed only because the OpenAI SDK this class no longer
|
|
59
|
+
* goes through demanded a non-empty key. Now, with no credential
|
|
60
|
+
* configured, no header is sent at all. That is a real change for exactly
|
|
61
|
+
* the case the credential stayed optional for: an Ollama instance sitting
|
|
62
|
+
* behind a gateway that DOES check auth silently stops being authorized
|
|
63
|
+
* (`requiresCredential() === false`, so nothing throws either). Correct,
|
|
64
|
+
* because the SDK's constraint that produced the dummy is gone — but it
|
|
65
|
+
* is not "the same as before", so it is not described that way here.
|
|
66
|
+
*/
|
|
67
|
+
private authHeader;
|
|
68
|
+
/** Quota isolation (base class): this provider's account is its credential. */
|
|
69
|
+
protected quotaCredential(): object | undefined;
|
|
19
70
|
/**
|
|
20
71
|
* OpenAI meters per organization and per project, and an account reaching a
|
|
21
72
|
* different `baseURL` (Azure, a gateway, a local vLLM) is a different quota
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../src/openai-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,OAAO,EACR,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAe,SAAQ,eAAe,CAAC,YAAY,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAY;
|
|
1
|
+
{"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../src/openai-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,OAAO,EACR,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD;;;;;;;;;;;;OAYG;IACH,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAe,SAAQ,eAAe,CAAC,YAAY,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAY;IAEnD;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,kBAAkB,IAAI,OAAO;gBAI3B,MAAM,EAAE,YAAY;IA+BhC;;;;;;;;;;;;;;;OAeG;YACW,UAAU;IAMxB,+EAA+E;cAC5D,eAAe,IAAI,MAAM,GAAG,SAAS;IAIxD;;;;;OAKG;cACgB,UAAU,IAAI,MAAM;IAQvC;;;;OAIG;cACgB,aAAa,IAAI,MAAM;IAIpC,IAAI,CACR,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,CAAC,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,WAAW,CAAC;IAwDhB,UAAU,CACf,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,CAAC,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,aAAa,CAAC,WAAW,CAAC;IA8GvB,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IASlC,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IASjD;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAC1B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQzB;;OAEG;IACH,SAAS,CAAC,cAAc,CACtB,QAAQ,EAAE,OAAO,EAAE,GAClB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAmClC"}
|
package/dist/openai-provider.js
CHANGED
|
@@ -7,15 +7,35 @@ export class OpenAIProvider extends BaseLLMProvider {
|
|
|
7
7
|
client;
|
|
8
8
|
model;
|
|
9
9
|
providerName = 'OpenAI';
|
|
10
|
+
/**
|
|
11
|
+
* Every direct instantiation authenticates. Ollama overrides this to
|
|
12
|
+
* `false` — its target ignores the key locally, though a gateway in front
|
|
13
|
+
* of it may still require one — without duplicating this constructor.
|
|
14
|
+
*
|
|
15
|
+
* Called from the constructor below, before it returns — so an override
|
|
16
|
+
* MUST be a constant (as both existing overrides are) and must never read
|
|
17
|
+
* instance state: `this` is not fully constructed yet at that point, and a
|
|
18
|
+
* field read here could see it half-initialized.
|
|
19
|
+
*
|
|
20
|
+
* `OllamaConfig`/`DeepSeekConfig` reach this constructor through an
|
|
21
|
+
* `as OpenAIConfig` cast (see their own files), which is what lets a
|
|
22
|
+
* possibly-`undefined` `credential` satisfy a field typed here as
|
|
23
|
+
* required. This hook, not the type, is what actually keeps a subclass
|
|
24
|
+
* honest about whether that's allowed.
|
|
25
|
+
*/
|
|
26
|
+
requiresCredential() {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
10
29
|
constructor(config) {
|
|
11
30
|
super(config);
|
|
12
|
-
this.
|
|
31
|
+
if (this.requiresCredential() && !config.credential) {
|
|
32
|
+
throw new Error("OpenAI provider requires a 'credential'");
|
|
33
|
+
}
|
|
13
34
|
if (!config.model) {
|
|
14
35
|
throw new Error("OpenAI provider requires a 'model'");
|
|
15
36
|
}
|
|
16
37
|
this.model = config.model;
|
|
17
38
|
const headers = {
|
|
18
|
-
Authorization: `Bearer ${config.apiKey}`,
|
|
19
39
|
'Content-Type': 'application/json',
|
|
20
40
|
};
|
|
21
41
|
// Add organization header if provided
|
|
@@ -31,6 +51,32 @@ export class OpenAIProvider extends BaseLLMProvider {
|
|
|
31
51
|
headers,
|
|
32
52
|
});
|
|
33
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* `Authorization`, resolved fresh for this one request — never baked into
|
|
56
|
+
* `client.defaults.headers`, which would freeze whatever secret the
|
|
57
|
+
* credential returned at construction time.
|
|
58
|
+
*
|
|
59
|
+
* BEHAVIOUR CHANGE for Ollama: it used to send `Authorization: Bearer
|
|
60
|
+
* <key or the literal 'ollama'>` on every request unconditionally — a
|
|
61
|
+
* dummy value existed only because the OpenAI SDK this class no longer
|
|
62
|
+
* goes through demanded a non-empty key. Now, with no credential
|
|
63
|
+
* configured, no header is sent at all. That is a real change for exactly
|
|
64
|
+
* the case the credential stayed optional for: an Ollama instance sitting
|
|
65
|
+
* behind a gateway that DOES check auth silently stops being authorized
|
|
66
|
+
* (`requiresCredential() === false`, so nothing throws either). Correct,
|
|
67
|
+
* because the SDK's constraint that produced the dummy is gone — but it
|
|
68
|
+
* is not "the same as before", so it is not described that way here.
|
|
69
|
+
*/
|
|
70
|
+
async authHeader() {
|
|
71
|
+
const credential = this.config.credential;
|
|
72
|
+
if (!credential)
|
|
73
|
+
return {};
|
|
74
|
+
return { Authorization: `Bearer ${await credential.secret()}` };
|
|
75
|
+
}
|
|
76
|
+
/** Quota isolation (base class): this provider's account is its credential. */
|
|
77
|
+
quotaCredential() {
|
|
78
|
+
return this.config.credential;
|
|
79
|
+
}
|
|
34
80
|
/**
|
|
35
81
|
* OpenAI meters per organization and per project, and an account reaching a
|
|
36
82
|
* different `baseURL` (Azure, a gateway, a local vLLM) is a different quota
|
|
@@ -57,7 +103,7 @@ export class OpenAIProvider extends BaseLLMProvider {
|
|
|
57
103
|
const model = options?.model ?? this.model;
|
|
58
104
|
const temperature = options?.temperature ?? this.config.temperature ?? 0.7;
|
|
59
105
|
const maxTokens = options?.maxTokens ?? this.config.maxTokens ?? 4096;
|
|
60
|
-
const response = await this.withThrottleRetry(() => this.client.post('/chat/completions', {
|
|
106
|
+
const response = await this.withThrottleRetry(async () => this.client.post('/chat/completions', {
|
|
61
107
|
model,
|
|
62
108
|
messages: this.formatMessages(messages),
|
|
63
109
|
tools: tools && tools.length > 0 ? tools : undefined,
|
|
@@ -66,7 +112,7 @@ export class OpenAIProvider extends BaseLLMProvider {
|
|
|
66
112
|
...this.getTokenLimitParam(model, maxTokens),
|
|
67
113
|
...(options?.topP !== undefined ? { top_p: options.topP } : {}),
|
|
68
114
|
...(options?.stop ? { stop: options.stop } : {}),
|
|
69
|
-
}, { signal: options?.signal }), { model, signal: options?.signal });
|
|
115
|
+
}, { signal: options?.signal, headers: await this.authHeader() }), { model, signal: options?.signal });
|
|
70
116
|
const choice = response.data.choices[0];
|
|
71
117
|
const usage = response.data.usage
|
|
72
118
|
? {
|
|
@@ -97,7 +143,7 @@ export class OpenAIProvider extends BaseLLMProvider {
|
|
|
97
143
|
const model = options?.model ?? this.model;
|
|
98
144
|
const temperature = options?.temperature ?? this.config.temperature ?? 0.7;
|
|
99
145
|
const maxTokens = options?.maxTokens ?? this.config.maxTokens ?? 4096;
|
|
100
|
-
const response = await this.withThrottleRetry(() => this.client.post('/chat/completions', {
|
|
146
|
+
const response = await this.withThrottleRetry(async () => this.client.post('/chat/completions', {
|
|
101
147
|
model,
|
|
102
148
|
messages: this.formatMessages(messages),
|
|
103
149
|
tools: tools && tools.length > 0 ? tools : undefined,
|
|
@@ -108,7 +154,11 @@ export class OpenAIProvider extends BaseLLMProvider {
|
|
|
108
154
|
...(options?.stop ? { stop: options.stop } : {}),
|
|
109
155
|
stream: true,
|
|
110
156
|
stream_options: { include_usage: true },
|
|
111
|
-
}, {
|
|
157
|
+
}, {
|
|
158
|
+
responseType: 'stream',
|
|
159
|
+
signal: options?.signal,
|
|
160
|
+
headers: await this.authHeader(),
|
|
161
|
+
}), { model, signal: options?.signal });
|
|
112
162
|
const stream = response.data;
|
|
113
163
|
let buffer = '';
|
|
114
164
|
for await (const chunk of stream) {
|
|
@@ -178,11 +228,15 @@ export class OpenAIProvider extends BaseLLMProvider {
|
|
|
178
228
|
}
|
|
179
229
|
}
|
|
180
230
|
async getModels() {
|
|
181
|
-
const response = await this.client.get('/models'
|
|
231
|
+
const response = await this.client.get('/models', {
|
|
232
|
+
headers: await this.authHeader(),
|
|
233
|
+
});
|
|
182
234
|
return response.data.data.map((m) => ({ id: m.id, owned_by: m.owned_by }));
|
|
183
235
|
}
|
|
184
236
|
async getEmbeddingModels() {
|
|
185
|
-
const response = await this.client.get('/models'
|
|
237
|
+
const response = await this.client.get('/models', {
|
|
238
|
+
headers: await this.authHeader(),
|
|
239
|
+
});
|
|
186
240
|
return response.data.data
|
|
187
241
|
.filter((m) => /embed/i.test(m.id))
|
|
188
242
|
.map((m) => ({ id: m.id, owned_by: m.owned_by }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../src/openai-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../src/openai-provider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-abap-adt/openai-llm",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "27.0.1",
|
|
4
4
|
"description": "OpenAI LLM provider (ILlm) 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
|
"axios": "^1.20.0"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|