@agentbridgeai/llm 0.1.3 → 0.1.5
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/dist/openai.d.ts +2 -0
- package/dist/openai.d.ts.map +1 -1
- package/dist/openai.js +37 -16
- package/dist/openai.js.map +1 -1
- package/package.json +1 -1
package/dist/openai.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ export declare class OpenAIProvider implements LLMProvider {
|
|
|
14
14
|
constructor(options?: OpenAIProviderOptions);
|
|
15
15
|
chat(messages: Message[], tools: LLMTool[]): Promise<LLMResponse>;
|
|
16
16
|
private createCompletion;
|
|
17
|
+
private preferMaxCompletionTokens;
|
|
18
|
+
private isUnsupportedTokenParamError;
|
|
17
19
|
private convertMessages;
|
|
18
20
|
private parseResponse;
|
|
19
21
|
private enrichProviderError;
|
package/dist/openai.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAY,MAAM,qBAAqB,CAAC;AAEhG,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAe,YAAW,WAAW;IAChD,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,OAAO,GAAE,qBAA0B;IAUzC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YAqDzD,gBAAgB;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAY,MAAM,qBAAqB,CAAC;AAEhG,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAe,YAAW,WAAW;IAChD,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,OAAO,GAAE,qBAA0B;IAUzC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YAqDzD,gBAAgB;IA6B9B,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,cAAc;CAMvB"}
|
package/dist/openai.js
CHANGED
|
@@ -64,22 +64,42 @@ export class OpenAIProvider {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
async createCompletion(payload) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
67
|
+
const tokenParamOrder = this.preferMaxCompletionTokens()
|
|
68
|
+
? ['max_completion_tokens', 'max_tokens', 'none']
|
|
69
|
+
: ['max_tokens', 'max_completion_tokens', 'none'];
|
|
70
|
+
let lastUnsupportedError = null;
|
|
71
|
+
for (const tokenParam of tokenParamOrder) {
|
|
72
|
+
try {
|
|
73
|
+
const request = { ...payload };
|
|
74
|
+
if (tokenParam === 'max_tokens')
|
|
75
|
+
request.max_tokens = this.maxTokens;
|
|
76
|
+
if (tokenParam === 'max_completion_tokens')
|
|
77
|
+
request.max_completion_tokens = this.maxTokens;
|
|
78
|
+
return await this.client.chat.completions.create(request);
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
if (this.isUnsupportedTokenParamError(err, tokenParam)) {
|
|
82
|
+
lastUnsupportedError = err;
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
throw err;
|
|
80
86
|
}
|
|
81
|
-
throw err;
|
|
82
87
|
}
|
|
88
|
+
throw lastUnsupportedError ?? new Error('Provider request failed');
|
|
89
|
+
}
|
|
90
|
+
preferMaxCompletionTokens() {
|
|
91
|
+
// OpenAI reasoning/newer models (gpt-5/o-series) expect max_completion_tokens.
|
|
92
|
+
if (!this.baseURL)
|
|
93
|
+
return /^(gpt-5|o1|o3|o4)/i.test(this.model);
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
isUnsupportedTokenParamError(err, tokenParam) {
|
|
97
|
+
if (tokenParam === 'none')
|
|
98
|
+
return false;
|
|
99
|
+
const msg = String(err?.message ?? '');
|
|
100
|
+
if (!msg.toLowerCase().includes('unsupported parameter'))
|
|
101
|
+
return false;
|
|
102
|
+
return msg.includes(`'${tokenParam}'`) || msg.includes(`"${tokenParam}"`);
|
|
83
103
|
}
|
|
84
104
|
convertMessages(messages) {
|
|
85
105
|
const result = [];
|
|
@@ -101,14 +121,15 @@ export class OpenAIProvider {
|
|
|
101
121
|
}));
|
|
102
122
|
result.push({
|
|
103
123
|
role: 'assistant',
|
|
104
|
-
|
|
124
|
+
// Some OpenAI-compatible providers reject null content when tool_calls are present.
|
|
125
|
+
content: typeof msg.content === 'string' ? msg.content : '',
|
|
105
126
|
tool_calls: toolCalls,
|
|
106
127
|
});
|
|
107
128
|
}
|
|
108
129
|
else if (msg.role === 'tool') {
|
|
109
130
|
result.push({
|
|
110
131
|
role: 'tool',
|
|
111
|
-
content: msg.content,
|
|
132
|
+
content: typeof msg.content === 'string' ? msg.content : JSON.stringify(msg.content ?? ''),
|
|
112
133
|
tool_call_id: msg.toolCallId,
|
|
113
134
|
});
|
|
114
135
|
}
|
package/dist/openai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"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"}
|