@stackbilt/llm-providers 1.0.0 → 1.2.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.
- package/LICENSE +0 -0
- package/README.md +112 -85
- package/dist/errors.d.ts +18 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +12 -4
- package/dist/errors.js.map +1 -1
- package/dist/factory.d.ts +62 -4
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +630 -92
- package/dist/factory.js.map +1 -1
- package/dist/image/index.d.ts +5 -0
- package/dist/image/index.d.ts.map +1 -0
- package/dist/image/index.js +3 -0
- package/dist/image/index.js.map +1 -0
- package/dist/image/provider.d.ts +44 -0
- package/dist/image/provider.d.ts.map +1 -0
- package/dist/image/provider.js +182 -0
- package/dist/image/provider.js.map +1 -0
- package/dist/image/types.d.ts +45 -0
- package/dist/image/types.d.ts.map +1 -0
- package/dist/image/types.js +83 -0
- package/dist/image/types.js.map +1 -0
- package/dist/index.d.ts +46 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +73 -14
- package/dist/index.js.map +1 -1
- package/dist/providers/anthropic.d.ts +5 -2
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +118 -43
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/base.d.ts +18 -2
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/base.js +107 -5
- package/dist/providers/base.js.map +1 -1
- package/dist/providers/cerebras.d.ts +0 -0
- package/dist/providers/cerebras.d.ts.map +1 -1
- package/dist/providers/cerebras.js +21 -13
- package/dist/providers/cerebras.js.map +1 -1
- package/dist/providers/cloudflare.d.ts +0 -0
- package/dist/providers/cloudflare.d.ts.map +1 -1
- package/dist/providers/cloudflare.js +12 -8
- package/dist/providers/cloudflare.js.map +1 -1
- package/dist/providers/groq.d.ts +2 -1
- package/dist/providers/groq.d.ts.map +1 -1
- package/dist/providers/groq.js +95 -15
- package/dist/providers/groq.js.map +1 -1
- package/dist/providers/openai.d.ts +2 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +56 -24
- package/dist/providers/openai.js.map +1 -1
- package/dist/types.d.ts +114 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -0
- package/dist/types.js.map +0 -0
- package/dist/utils/circuit-breaker.d.ts +5 -2
- package/dist/utils/circuit-breaker.d.ts.map +1 -1
- package/dist/utils/circuit-breaker.js +18 -13
- package/dist/utils/circuit-breaker.js.map +1 -1
- package/dist/utils/cost-tracker.d.ts +9 -2
- package/dist/utils/cost-tracker.d.ts.map +1 -1
- package/dist/utils/cost-tracker.js +20 -9
- package/dist/utils/cost-tracker.js.map +1 -1
- package/dist/utils/credit-ledger.d.ts +3 -0
- package/dist/utils/credit-ledger.d.ts.map +1 -1
- package/dist/utils/credit-ledger.js +5 -2
- package/dist/utils/credit-ledger.js.map +1 -1
- package/dist/utils/exhaustion.d.ts +38 -0
- package/dist/utils/exhaustion.d.ts.map +1 -0
- package/dist/utils/exhaustion.js +74 -0
- package/dist/utils/exhaustion.js.map +1 -0
- package/dist/utils/hooks.d.ts +113 -0
- package/dist/utils/hooks.d.ts.map +1 -0
- package/dist/utils/hooks.js +44 -0
- package/dist/utils/hooks.js.map +1 -0
- package/dist/utils/latency-histogram.d.ts +38 -0
- package/dist/utils/latency-histogram.d.ts.map +1 -0
- package/dist/utils/latency-histogram.js +81 -0
- package/dist/utils/latency-histogram.js.map +1 -0
- package/dist/utils/logger.d.ts +18 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +22 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/retry.d.ts +4 -2
- package/dist/utils/retry.d.ts.map +1 -1
- package/dist/utils/retry.js +12 -8
- package/dist/utils/retry.js.map +1 -1
- package/package.json +2 -2
package/dist/providers/groq.js
CHANGED
|
@@ -3,15 +3,21 @@
|
|
|
3
3
|
* Implementation for Groq fast inference models (OpenAI-compatible API)
|
|
4
4
|
*/
|
|
5
5
|
import { BaseProvider } from './base';
|
|
6
|
-
import { LLMErrorFactory, AuthenticationError } from '../errors';
|
|
6
|
+
import { LLMErrorFactory, AuthenticationError, ConfigurationError } from '../errors';
|
|
7
|
+
// Models that support tool calling
|
|
8
|
+
const TOOL_CAPABLE_MODELS = new Set([
|
|
9
|
+
'openai/gpt-oss-120b',
|
|
10
|
+
'llama-3.3-70b-versatile',
|
|
11
|
+
]);
|
|
7
12
|
export class GroqProvider extends BaseProvider {
|
|
8
13
|
name = 'groq';
|
|
9
14
|
models = [
|
|
10
15
|
'llama-3.3-70b-versatile',
|
|
11
|
-
'llama-3.1-8b-instant'
|
|
16
|
+
'llama-3.1-8b-instant',
|
|
17
|
+
'openai/gpt-oss-120b',
|
|
12
18
|
];
|
|
13
19
|
supportsStreaming = true;
|
|
14
|
-
supportsTools =
|
|
20
|
+
supportsTools = true;
|
|
15
21
|
supportsBatching = false;
|
|
16
22
|
apiKey;
|
|
17
23
|
baseUrl;
|
|
@@ -29,7 +35,7 @@ export class GroqProvider extends BaseProvider {
|
|
|
29
35
|
try {
|
|
30
36
|
const response = await this.executeWithResiliency(async () => {
|
|
31
37
|
const groqRequest = this.formatRequest(request);
|
|
32
|
-
const httpResponse = await this.makeGroqRequest('/chat/completions', groqRequest);
|
|
38
|
+
const httpResponse = await this.makeGroqRequest('/chat/completions', groqRequest, 'POST', request);
|
|
33
39
|
if (!httpResponse.ok) {
|
|
34
40
|
throw await LLMErrorFactory.fromFetchResponse('groq', httpResponse);
|
|
35
41
|
}
|
|
@@ -71,12 +77,20 @@ export class GroqProvider extends BaseProvider {
|
|
|
71
77
|
return false;
|
|
72
78
|
}
|
|
73
79
|
}
|
|
80
|
+
async getProviderBalance() {
|
|
81
|
+
return {
|
|
82
|
+
provider: this.name,
|
|
83
|
+
status: 'unavailable',
|
|
84
|
+
source: 'not_supported',
|
|
85
|
+
message: 'Groq does not expose a public billing or credit-balance API; use CreditLedger reporting for local quota state.'
|
|
86
|
+
};
|
|
87
|
+
}
|
|
74
88
|
getModelCapabilities() {
|
|
75
89
|
return {
|
|
76
90
|
'llama-3.3-70b-versatile': {
|
|
77
91
|
maxContextLength: 128000,
|
|
78
92
|
supportsStreaming: true,
|
|
79
|
-
supportsTools:
|
|
93
|
+
supportsTools: true,
|
|
80
94
|
supportsBatching: false,
|
|
81
95
|
inputTokenCost: 0.00059, // $0.59 per 1M tokens
|
|
82
96
|
outputTokenCost: 0.00079, // $0.79 per 1M tokens
|
|
@@ -90,6 +104,15 @@ export class GroqProvider extends BaseProvider {
|
|
|
90
104
|
inputTokenCost: 0.00005, // $0.05 per 1M tokens
|
|
91
105
|
outputTokenCost: 0.00008, // $0.08 per 1M tokens
|
|
92
106
|
description: 'Llama 3.1 8B Instant - Ultra-fast inference on Groq'
|
|
107
|
+
},
|
|
108
|
+
'openai/gpt-oss-120b': {
|
|
109
|
+
maxContextLength: 128000,
|
|
110
|
+
supportsStreaming: true,
|
|
111
|
+
supportsTools: true,
|
|
112
|
+
supportsBatching: false,
|
|
113
|
+
inputTokenCost: 0.00015, // $0.15 per 1M tokens (cached: $0.075/MTok)
|
|
114
|
+
outputTokenCost: 0.0006, // $0.60 per 1M tokens
|
|
115
|
+
description: 'GPT-OSS 120B - OpenAI-compatible tool calling on Groq'
|
|
93
116
|
}
|
|
94
117
|
};
|
|
95
118
|
}
|
|
@@ -102,7 +125,7 @@ export class GroqProvider extends BaseProvider {
|
|
|
102
125
|
return new ReadableStream({
|
|
103
126
|
start: async (controller) => {
|
|
104
127
|
try {
|
|
105
|
-
const response = await this.makeGroqRequest('/chat/completions', groqRequest);
|
|
128
|
+
const response = await this.makeGroqRequest('/chat/completions', groqRequest, 'POST', request);
|
|
106
129
|
if (!response.ok) {
|
|
107
130
|
throw await LLMErrorFactory.fromFetchResponse('groq', response);
|
|
108
131
|
}
|
|
@@ -133,8 +156,8 @@ export class GroqProvider extends BaseProvider {
|
|
|
133
156
|
controller.enqueue(content);
|
|
134
157
|
}
|
|
135
158
|
}
|
|
136
|
-
catch
|
|
137
|
-
|
|
159
|
+
catch {
|
|
160
|
+
// Malformed SSE chunk — skip silently
|
|
138
161
|
}
|
|
139
162
|
}
|
|
140
163
|
}
|
|
@@ -147,10 +170,11 @@ export class GroqProvider extends BaseProvider {
|
|
|
147
170
|
}
|
|
148
171
|
});
|
|
149
172
|
}
|
|
150
|
-
async makeGroqRequest(endpoint, body, method = 'POST') {
|
|
173
|
+
async makeGroqRequest(endpoint, body, method = 'POST', request) {
|
|
151
174
|
const headers = {
|
|
152
175
|
'Authorization': `Bearer ${this.apiKey}`,
|
|
153
|
-
'Content-Type': 'application/json'
|
|
176
|
+
'Content-Type': 'application/json',
|
|
177
|
+
...this.getAIGatewayHeaders(request)
|
|
154
178
|
};
|
|
155
179
|
const options = {
|
|
156
180
|
method,
|
|
@@ -163,32 +187,77 @@ export class GroqProvider extends BaseProvider {
|
|
|
163
187
|
}
|
|
164
188
|
formatRequest(request) {
|
|
165
189
|
const messages = [];
|
|
190
|
+
const model = request.model || 'llama-3.3-70b-versatile';
|
|
191
|
+
const usesTools = (request.tools?.length ?? 0) > 0 ||
|
|
192
|
+
request.messages.some(message => (message.toolCalls?.length ?? 0) > 0 || (message.toolResults?.length ?? 0) > 0);
|
|
193
|
+
const jsonMode = request.response_format?.type === 'json_object';
|
|
194
|
+
const jsonInstruction = '\n\nYou must respond with valid JSON only. No markdown fences, no commentary, no text outside the JSON.';
|
|
195
|
+
if (usesTools && !TOOL_CAPABLE_MODELS.has(model)) {
|
|
196
|
+
throw new ConfigurationError(this.name, `Model '${model}' does not support tool calling on Groq`);
|
|
197
|
+
}
|
|
166
198
|
if (request.systemPrompt) {
|
|
167
199
|
messages.push({
|
|
168
200
|
role: 'system',
|
|
169
|
-
content: request.systemPrompt
|
|
201
|
+
content: jsonMode ? request.systemPrompt + jsonInstruction : request.systemPrompt
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
else if (jsonMode) {
|
|
205
|
+
messages.push({
|
|
206
|
+
role: 'system',
|
|
207
|
+
content: jsonInstruction.trimStart()
|
|
170
208
|
});
|
|
171
209
|
}
|
|
172
210
|
for (const message of request.messages) {
|
|
173
211
|
if (message.role === 'system' && request.systemPrompt) {
|
|
174
212
|
continue;
|
|
175
213
|
}
|
|
176
|
-
|
|
214
|
+
const msg = {
|
|
177
215
|
role: message.role,
|
|
178
216
|
content: message.content
|
|
179
|
-
}
|
|
217
|
+
};
|
|
218
|
+
// Carry tool calls for multi-turn tool conversations
|
|
219
|
+
if (message.toolCalls) {
|
|
220
|
+
msg.tool_calls = message.toolCalls.map(tc => ({
|
|
221
|
+
id: tc.id,
|
|
222
|
+
type: 'function',
|
|
223
|
+
function: { name: tc.function.name, arguments: tc.function.arguments }
|
|
224
|
+
}));
|
|
225
|
+
}
|
|
226
|
+
if (message.toolResults) {
|
|
227
|
+
// Tool results come as separate messages in OpenAI format
|
|
228
|
+
for (const tr of message.toolResults) {
|
|
229
|
+
messages.push({ role: 'tool', content: tr.output, tool_call_id: tr.id });
|
|
230
|
+
}
|
|
231
|
+
continue; // Don't push the original message — tool results replace it
|
|
232
|
+
}
|
|
233
|
+
messages.push(msg);
|
|
180
234
|
}
|
|
181
235
|
const groqRequest = {
|
|
182
|
-
model
|
|
236
|
+
model,
|
|
183
237
|
messages,
|
|
184
238
|
temperature: request.temperature,
|
|
185
239
|
max_tokens: request.maxTokens,
|
|
186
|
-
stream: request.stream
|
|
240
|
+
stream: request.stream,
|
|
241
|
+
seed: request.seed
|
|
187
242
|
};
|
|
188
243
|
// Pass through response_format if provided
|
|
189
244
|
if (request.response_format) {
|
|
190
245
|
groqRequest.response_format = request.response_format;
|
|
191
246
|
}
|
|
247
|
+
// Add tools if provided. Unsupported tool models are rejected above.
|
|
248
|
+
if (request.tools && request.tools.length > 0) {
|
|
249
|
+
groqRequest.tools = request.tools.map(t => ({
|
|
250
|
+
type: 'function',
|
|
251
|
+
function: {
|
|
252
|
+
name: t.function.name,
|
|
253
|
+
description: t.function.description,
|
|
254
|
+
parameters: t.function.parameters,
|
|
255
|
+
}
|
|
256
|
+
}));
|
|
257
|
+
if (request.toolChoice) {
|
|
258
|
+
groqRequest.tool_choice = request.toolChoice;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
192
261
|
return groqRequest;
|
|
193
262
|
}
|
|
194
263
|
formatResponse(data, responseTime) {
|
|
@@ -203,6 +272,16 @@ export class GroqProvider extends BaseProvider {
|
|
|
203
272
|
totalTokens: data.usage.total_tokens,
|
|
204
273
|
cost: this.calculateCost(data.usage.prompt_tokens, data.usage.completion_tokens, data.model)
|
|
205
274
|
};
|
|
275
|
+
// Extract tool calls if present (validated at provider boundary)
|
|
276
|
+
let toolCalls;
|
|
277
|
+
if (choice.message.tool_calls && choice.message.tool_calls.length > 0) {
|
|
278
|
+
const raw = choice.message.tool_calls.map(tc => ({
|
|
279
|
+
id: tc.id,
|
|
280
|
+
type: 'function',
|
|
281
|
+
function: { name: tc.function.name, arguments: tc.function.arguments }
|
|
282
|
+
}));
|
|
283
|
+
toolCalls = this.validateToolCalls(raw);
|
|
284
|
+
}
|
|
206
285
|
return {
|
|
207
286
|
id: data.id,
|
|
208
287
|
message: content,
|
|
@@ -212,6 +291,7 @@ export class GroqProvider extends BaseProvider {
|
|
|
212
291
|
provider: this.name,
|
|
213
292
|
responseTime,
|
|
214
293
|
finishReason: choice.finish_reason,
|
|
294
|
+
toolCalls,
|
|
215
295
|
metadata: {
|
|
216
296
|
systemFingerprint: data.system_fingerprint,
|
|
217
297
|
created: data.created
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groq.js","sourceRoot":"","sources":["../../src/providers/groq.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,eAAe,EACf,mBAAmB,
|
|
1
|
+
{"version":3,"file":"groq.js","sourceRoot":"","sources":["../../src/providers/groq.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare class OpenAIProvider extends BaseProvider {
|
|
|
10
10
|
supportsStreaming: boolean;
|
|
11
11
|
supportsTools: boolean;
|
|
12
12
|
supportsBatching: boolean;
|
|
13
|
+
supportsVision: boolean;
|
|
13
14
|
private apiKey;
|
|
14
15
|
private baseUrl;
|
|
15
16
|
private organization?;
|
|
@@ -23,6 +24,7 @@ export declare class OpenAIProvider extends BaseProvider {
|
|
|
23
24
|
protected getModelCapabilities(): Record<string, ModelCapabilities>;
|
|
24
25
|
private makeOpenAIRequest;
|
|
25
26
|
private formatRequest;
|
|
27
|
+
private formatMessageContent;
|
|
26
28
|
private formatResponse;
|
|
27
29
|
/**
|
|
28
30
|
* Stream response support
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAkB,MAAM,UAAU,CAAC;AACzG,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AA0EtC,qBAAa,cAAe,SAAQ,YAAY;IAC9C,IAAI,SAAY;IAChB,MAAM,WAQJ;IACF,iBAAiB,UAAQ;IACzB,aAAa,UAAQ;IACrB,gBAAgB,UAAS;IACzB,cAAc,UAAQ;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,MAAM,EAAE,YAAY;IAa1B,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IA8BjE,cAAc,IAAI,OAAO;IAIzB,SAAS,IAAI,MAAM,EAAE;IAIrB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAenC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC,SAAS,CAAC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;YA6DrD,iBAAiB;IAgC/B,OAAO,CAAC,aAAa;IA6ErB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,cAAc;IAiDtB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IA8D1E;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAwBnE"}
|
package/dist/providers/openai.js
CHANGED
|
@@ -17,7 +17,8 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
17
17
|
];
|
|
18
18
|
supportsStreaming = true;
|
|
19
19
|
supportsTools = true;
|
|
20
|
-
supportsBatching =
|
|
20
|
+
supportsBatching = false;
|
|
21
|
+
supportsVision = true;
|
|
21
22
|
apiKey;
|
|
22
23
|
baseUrl;
|
|
23
24
|
organization;
|
|
@@ -38,7 +39,7 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
38
39
|
try {
|
|
39
40
|
const response = await this.executeWithResiliency(async () => {
|
|
40
41
|
const openaiRequest = this.formatRequest(request);
|
|
41
|
-
const httpResponse = await this.makeOpenAIRequest('/chat/completions', openaiRequest);
|
|
42
|
+
const httpResponse = await this.makeOpenAIRequest('/chat/completions', openaiRequest, 'POST', request);
|
|
42
43
|
if (!httpResponse.ok) {
|
|
43
44
|
throw await LLMErrorFactory.fromFetchResponse('openai', httpResponse);
|
|
44
45
|
}
|
|
@@ -63,7 +64,7 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
63
64
|
return [...this.models];
|
|
64
65
|
}
|
|
65
66
|
estimateCost(request) {
|
|
66
|
-
const model = request.model || 'gpt-
|
|
67
|
+
const model = request.model || 'gpt-4o-mini';
|
|
67
68
|
const capabilities = this.getModelCapabilities()[model];
|
|
68
69
|
if (!capabilities)
|
|
69
70
|
return 0;
|
|
@@ -87,7 +88,8 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
87
88
|
maxContextLength: 128000,
|
|
88
89
|
supportsStreaming: true,
|
|
89
90
|
supportsTools: true,
|
|
90
|
-
|
|
91
|
+
supportsVision: true,
|
|
92
|
+
supportsBatching: false,
|
|
91
93
|
inputTokenCost: 0.005, // $5 per 1M tokens
|
|
92
94
|
outputTokenCost: 0.015, // $15 per 1M tokens
|
|
93
95
|
description: 'GPT-4 Omni - Latest multimodal model'
|
|
@@ -96,7 +98,8 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
96
98
|
maxContextLength: 128000,
|
|
97
99
|
supportsStreaming: true,
|
|
98
100
|
supportsTools: true,
|
|
99
|
-
|
|
101
|
+
supportsVision: true,
|
|
102
|
+
supportsBatching: false,
|
|
100
103
|
inputTokenCost: 0.00015, // $0.15 per 1M tokens
|
|
101
104
|
outputTokenCost: 0.0006, // $0.60 per 1M tokens
|
|
102
105
|
description: 'GPT-4 Omni Mini - Cost-effective version'
|
|
@@ -105,7 +108,7 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
105
108
|
maxContextLength: 128000,
|
|
106
109
|
supportsStreaming: true,
|
|
107
110
|
supportsTools: true,
|
|
108
|
-
supportsBatching:
|
|
111
|
+
supportsBatching: false,
|
|
109
112
|
inputTokenCost: 0.01, // $10 per 1M tokens
|
|
110
113
|
outputTokenCost: 0.03, // $30 per 1M tokens
|
|
111
114
|
description: 'GPT-4 Turbo - High performance model'
|
|
@@ -114,7 +117,7 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
114
117
|
maxContextLength: 8192,
|
|
115
118
|
supportsStreaming: true,
|
|
116
119
|
supportsTools: true,
|
|
117
|
-
supportsBatching:
|
|
120
|
+
supportsBatching: false,
|
|
118
121
|
inputTokenCost: 0.03, // $30 per 1M tokens
|
|
119
122
|
outputTokenCost: 0.06, // $60 per 1M tokens
|
|
120
123
|
description: 'GPT-4 - Original high-capability model'
|
|
@@ -123,7 +126,7 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
123
126
|
maxContextLength: 16385,
|
|
124
127
|
supportsStreaming: true,
|
|
125
128
|
supportsTools: true,
|
|
126
|
-
supportsBatching:
|
|
129
|
+
supportsBatching: false,
|
|
127
130
|
inputTokenCost: 0.0005, // $0.50 per 1M tokens
|
|
128
131
|
outputTokenCost: 0.0015, // $1.50 per 1M tokens
|
|
129
132
|
description: 'GPT-3.5 Turbo - Fast and cost-effective'
|
|
@@ -132,17 +135,18 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
132
135
|
maxContextLength: 16385,
|
|
133
136
|
supportsStreaming: true,
|
|
134
137
|
supportsTools: true,
|
|
135
|
-
supportsBatching:
|
|
138
|
+
supportsBatching: false,
|
|
136
139
|
inputTokenCost: 0.001, // $1 per 1M tokens
|
|
137
140
|
outputTokenCost: 0.002, // $2 per 1M tokens
|
|
138
141
|
description: 'GPT-3.5 Turbo 16k - Extended context'
|
|
139
142
|
}
|
|
140
143
|
};
|
|
141
144
|
}
|
|
142
|
-
async makeOpenAIRequest(endpoint, body, method = 'POST') {
|
|
145
|
+
async makeOpenAIRequest(endpoint, body, method = 'POST', request) {
|
|
143
146
|
const headers = {
|
|
144
147
|
'Authorization': `Bearer ${this.apiKey}`,
|
|
145
|
-
'Content-Type': 'application/json'
|
|
148
|
+
'Content-Type': 'application/json',
|
|
149
|
+
...this.getAIGatewayHeaders(request)
|
|
146
150
|
};
|
|
147
151
|
if (this.organization) {
|
|
148
152
|
headers['OpenAI-Organization'] = this.organization;
|
|
@@ -175,7 +179,7 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
175
179
|
}
|
|
176
180
|
const openaiMessage = {
|
|
177
181
|
role: message.role,
|
|
178
|
-
content: message.content
|
|
182
|
+
content: this.formatMessageContent(message.content, message.role === 'user' ? request.images : undefined)
|
|
179
183
|
};
|
|
180
184
|
// Add tool calls if present
|
|
181
185
|
if (message.toolCalls && message.toolCalls.length > 0) {
|
|
@@ -186,14 +190,27 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
186
190
|
}));
|
|
187
191
|
openaiMessage.content = null; // Content must be null when tool_calls present
|
|
188
192
|
}
|
|
193
|
+
if (message.toolResults && message.toolResults.length > 0) {
|
|
194
|
+
for (const toolResult of message.toolResults) {
|
|
195
|
+
messages.push({
|
|
196
|
+
role: 'tool',
|
|
197
|
+
content: toolResult.error
|
|
198
|
+
? JSON.stringify({ output: toolResult.output, error: toolResult.error })
|
|
199
|
+
: toolResult.output,
|
|
200
|
+
tool_call_id: toolResult.id
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
189
205
|
messages.push(openaiMessage);
|
|
190
206
|
}
|
|
191
207
|
const openaiRequest = {
|
|
192
|
-
model: request.model || 'gpt-
|
|
208
|
+
model: request.model || 'gpt-4o-mini',
|
|
193
209
|
messages,
|
|
194
210
|
temperature: request.temperature,
|
|
195
211
|
max_tokens: request.maxTokens,
|
|
196
|
-
stream: request.stream
|
|
212
|
+
stream: request.stream,
|
|
213
|
+
seed: request.seed
|
|
197
214
|
};
|
|
198
215
|
// Add tools if provided
|
|
199
216
|
if (request.tools && request.tools.length > 0) {
|
|
@@ -211,6 +228,20 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
211
228
|
}
|
|
212
229
|
return openaiRequest;
|
|
213
230
|
}
|
|
231
|
+
formatMessageContent(text, images) {
|
|
232
|
+
if (!images || images.length === 0) {
|
|
233
|
+
return text;
|
|
234
|
+
}
|
|
235
|
+
return [
|
|
236
|
+
{ type: 'text', text },
|
|
237
|
+
...images.map(image => ({
|
|
238
|
+
type: 'image_url',
|
|
239
|
+
image_url: {
|
|
240
|
+
url: image.url || `data:${image.mimeType};base64,${image.data}`
|
|
241
|
+
}
|
|
242
|
+
}))
|
|
243
|
+
];
|
|
244
|
+
}
|
|
214
245
|
formatResponse(data, responseTime) {
|
|
215
246
|
const choice = data.choices[0];
|
|
216
247
|
if (!choice) {
|
|
@@ -237,13 +268,14 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
237
268
|
created: data.created
|
|
238
269
|
}
|
|
239
270
|
};
|
|
240
|
-
// Add tool calls if present
|
|
271
|
+
// Add tool calls if present (validated at provider boundary)
|
|
241
272
|
if (choice.message.tool_calls && choice.message.tool_calls.length > 0) {
|
|
242
|
-
|
|
273
|
+
const raw = choice.message.tool_calls.map(tc => ({
|
|
243
274
|
id: tc.id,
|
|
244
275
|
type: tc.type,
|
|
245
276
|
function: tc.function
|
|
246
277
|
}));
|
|
278
|
+
response.toolCalls = this.validateToolCalls(raw);
|
|
247
279
|
}
|
|
248
280
|
return response;
|
|
249
281
|
}
|
|
@@ -256,7 +288,7 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
256
288
|
return new ReadableStream({
|
|
257
289
|
start: async (controller) => {
|
|
258
290
|
try {
|
|
259
|
-
const response = await this.makeOpenAIRequest('/chat/completions', openaiRequest);
|
|
291
|
+
const response = await this.makeOpenAIRequest('/chat/completions', openaiRequest, 'POST', request);
|
|
260
292
|
if (!response.ok) {
|
|
261
293
|
throw await LLMErrorFactory.fromFetchResponse('openai', response);
|
|
262
294
|
}
|
|
@@ -282,13 +314,13 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
282
314
|
}
|
|
283
315
|
try {
|
|
284
316
|
const parsed = JSON.parse(data);
|
|
285
|
-
const
|
|
286
|
-
if (
|
|
287
|
-
controller.enqueue(
|
|
317
|
+
const sseContent = parsed.choices?.[0]?.delta?.content;
|
|
318
|
+
if (sseContent) {
|
|
319
|
+
controller.enqueue(sseContent);
|
|
288
320
|
}
|
|
289
321
|
}
|
|
290
|
-
catch
|
|
291
|
-
|
|
322
|
+
catch {
|
|
323
|
+
// Malformed SSE chunk — skip silently
|
|
292
324
|
}
|
|
293
325
|
}
|
|
294
326
|
}
|
|
@@ -317,8 +349,8 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
317
349
|
// Handle individual request failures
|
|
318
350
|
responses.push({
|
|
319
351
|
message: '',
|
|
320
|
-
usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0 },
|
|
321
|
-
model: request.model || 'gpt-
|
|
352
|
+
usage: { inputTokens: 0, outputTokens: 0, totalTokens: 0, cost: 0 },
|
|
353
|
+
model: request.model || 'gpt-4o-mini',
|
|
322
354
|
provider: this.name,
|
|
323
355
|
responseTime: 0,
|
|
324
356
|
metadata: { error: error.message }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
|