repoburg 1.3.104 → 1.3.106
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/backend/.repoburg/hooks/eslint-hook.ts +22 -10
- package/backend/.repoburg/hooks/example-hook.ts +10 -11
- package/backend/dist/src/application-state/application-state.controller.d.ts +8 -0
- package/backend/dist/src/application-state/application-state.controller.js +39 -0
- package/backend/dist/src/application-state/application-state.controller.js.map +1 -1
- package/backend/dist/src/application-state/application-state.service.d.ts +6 -0
- package/backend/dist/src/application-state/application-state.service.js +30 -0
- package/backend/dist/src/application-state/application-state.service.js.map +1 -1
- package/backend/dist/src/application-state/dto/set-openai-config.dto.d.ts +4 -0
- package/backend/dist/src/application-state/dto/set-openai-config.dto.js +34 -0
- package/backend/dist/src/application-state/dto/set-openai-config.dto.js.map +1 -0
- package/backend/dist/src/core-entities/llm-call-log.entity.d.ts +1 -1
- package/backend/dist/src/core-entities/llm-call-log.entity.js +1 -1
- package/backend/dist/src/core-entities/llm-call-log.entity.js.map +1 -1
- package/backend/dist/src/global-config/dto/update-global-config.dto.d.ts +2 -0
- package/backend/dist/src/global-config/dto/update-global-config.dto.js +10 -0
- package/backend/dist/src/global-config/dto/update-global-config.dto.js.map +1 -1
- package/backend/dist/src/global-config/global-config.service.d.ts +2 -0
- package/backend/dist/src/global-config/global-config.service.js.map +1 -1
- package/backend/dist/src/llm-call-logs/dto/llm-call-log.dto.d.ts +1 -1
- package/backend/dist/src/llm-call-logs/dto/llm-call-log.dto.js.map +1 -1
- package/backend/dist/src/llm-provider/llm-provider.interface.d.ts +1 -1
- package/backend/dist/src/llm-provider/llm-provider.module.js +2 -0
- package/backend/dist/src/llm-provider/llm-provider.module.js.map +1 -1
- package/backend/dist/src/llm-provider/openai-llm.provider.d.ts +17 -0
- package/backend/dist/src/llm-provider/openai-llm.provider.js +487 -0
- package/backend/dist/src/llm-provider/openai-llm.provider.js.map +1 -0
- package/backend/dist/src/llm-provider/proxy-llm.provider.d.ts +3 -1
- package/backend/dist/src/llm-provider/proxy-llm.provider.js +10 -2
- package/backend/dist/src/llm-provider/proxy-llm.provider.js.map +1 -1
- package/backend/dist/src/main.js +6 -0
- package/backend/dist/src/main.js.map +1 -1
- package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
- package/backend/package.json +4 -1
- package/daemon/dist/index.js +0 -0
- package/package.json +1 -1
- package/backend/.env +0 -23
- package/daemon/dist/api/system.js +0 -25
- package/daemon/dist/daemon.blob +0 -0
- package/visual-editor-proxy/.repoburg/data.sqlite +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LlmProvider, LlmProviderRequest, LlmModel, LlmResponse } from './llm-provider.interface';
|
|
2
|
+
import { ApplicationStateService } from '../application-state/application-state.service';
|
|
3
|
+
import { LlmCallLogsService } from '../llm-call-logs/llm-call-logs.service';
|
|
4
|
+
export declare class OpenaiLlmProvider implements LlmProvider {
|
|
5
|
+
private readonly applicationStateService;
|
|
6
|
+
private readonly llmCallLogsService;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
private activeStreams;
|
|
9
|
+
constructor(applicationStateService: ApplicationStateService, llmCallLogsService: LlmCallLogsService);
|
|
10
|
+
private mapHistory;
|
|
11
|
+
private mapTools;
|
|
12
|
+
getModels(): Promise<LlmModel[]>;
|
|
13
|
+
private getEffectiveBaseUrl;
|
|
14
|
+
generateContent(request: LlmProviderRequest): Promise<LlmResponse>;
|
|
15
|
+
private tryParseJson;
|
|
16
|
+
abortBySessionId(_sessionId: string): boolean;
|
|
17
|
+
}
|
|
@@ -0,0 +1,487 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var OpenaiLlmProvider_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.OpenaiLlmProvider = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const application_state_service_1 = require("../application-state/application-state.service");
|
|
16
|
+
const llm_call_logs_service_1 = require("../llm-call-logs/llm-call-logs.service");
|
|
17
|
+
let OpenaiLlmProvider = OpenaiLlmProvider_1 = class OpenaiLlmProvider {
|
|
18
|
+
constructor(applicationStateService, llmCallLogsService) {
|
|
19
|
+
this.applicationStateService = applicationStateService;
|
|
20
|
+
this.llmCallLogsService = llmCallLogsService;
|
|
21
|
+
this.logger = new common_1.Logger(OpenaiLlmProvider_1.name);
|
|
22
|
+
this.activeStreams = new Map();
|
|
23
|
+
}
|
|
24
|
+
mapHistory(history) {
|
|
25
|
+
return history.map((turn) => {
|
|
26
|
+
if (turn.role === 'tool') {
|
|
27
|
+
return {
|
|
28
|
+
role: 'tool',
|
|
29
|
+
tool_call_id: turn.tool_call_id,
|
|
30
|
+
content: turn.parts.map((p) => p.text).join(''),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const mappedTurn = {
|
|
34
|
+
role: turn.role === 'model' ? 'assistant' : 'user',
|
|
35
|
+
content: turn.parts.map((p) => p.text).join(''),
|
|
36
|
+
};
|
|
37
|
+
if (turn.tool_calls) {
|
|
38
|
+
mappedTurn.tool_calls = turn.tool_calls.map((tc) => ({
|
|
39
|
+
id: tc.id,
|
|
40
|
+
type: tc.type,
|
|
41
|
+
function: {
|
|
42
|
+
name: tc.function.name,
|
|
43
|
+
arguments: typeof tc.function.arguments === 'string'
|
|
44
|
+
? tc.function.arguments
|
|
45
|
+
: JSON.stringify(tc.function.arguments),
|
|
46
|
+
},
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
if (turn.thoughts) {
|
|
50
|
+
mappedTurn.thoughts = turn.thoughts;
|
|
51
|
+
}
|
|
52
|
+
return mappedTurn;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
mapTools(tools) {
|
|
56
|
+
if (!tools || tools.length === 0)
|
|
57
|
+
return undefined;
|
|
58
|
+
return tools;
|
|
59
|
+
}
|
|
60
|
+
async getModels() {
|
|
61
|
+
const apiKey = await this.applicationStateService.getOpenaiApiKey();
|
|
62
|
+
if (!apiKey)
|
|
63
|
+
return [];
|
|
64
|
+
const baseUrl = await this.getEffectiveBaseUrl();
|
|
65
|
+
try {
|
|
66
|
+
const response = await fetch(`${baseUrl}/models`, {
|
|
67
|
+
headers: {
|
|
68
|
+
Authorization: `Bearer ${apiKey}`,
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
if (!response.ok) {
|
|
72
|
+
this.logger.warn(`Failed to fetch models from ${baseUrl}/models: ${response.status} ${response.statusText}`);
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
const data = await response.json();
|
|
76
|
+
const models = data.data || [];
|
|
77
|
+
return models.map((m) => ({
|
|
78
|
+
id: `openai/${m.id}`,
|
|
79
|
+
name: m.id,
|
|
80
|
+
provider: 'openai',
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
this.logger.error(`Failed to fetch OpenAI compatible models: ${e.message}`);
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
async getEffectiveBaseUrl() {
|
|
89
|
+
const customBaseUrl = await this.applicationStateService.getOpenaiBaseUrl();
|
|
90
|
+
return (customBaseUrl || 'https://api.openai.com/v1').replace(/\/+$/, '');
|
|
91
|
+
}
|
|
92
|
+
async generateContent(request) {
|
|
93
|
+
const apiKey = await this.applicationStateService.getOpenaiApiKey();
|
|
94
|
+
if (!apiKey) {
|
|
95
|
+
throw new Error('OpenAI Compatible API Key is not configured in settings.');
|
|
96
|
+
}
|
|
97
|
+
const baseUrl = await this.getEffectiveBaseUrl();
|
|
98
|
+
const { prompt, systemInstruction, history, modelId, generationConfig, tools, tool_choice, onToken, abortController, } = request;
|
|
99
|
+
const model = modelId ? modelId.replace(/^openai\//, '') : 'gpt-4o';
|
|
100
|
+
const requestId = `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
101
|
+
const messages = [];
|
|
102
|
+
if (systemInstruction) {
|
|
103
|
+
messages.push({ role: 'system', content: systemInstruction });
|
|
104
|
+
}
|
|
105
|
+
if (history && history.length > 0) {
|
|
106
|
+
messages.push(...this.mapHistory(history));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
messages.push({ role: 'user', content: prompt });
|
|
110
|
+
}
|
|
111
|
+
await this.applicationStateService.trackUsedModel(modelId);
|
|
112
|
+
this.logger.log(`Calling OpenAI Compatible API at ${baseUrl} with model: ${model}`);
|
|
113
|
+
const startTime = Date.now();
|
|
114
|
+
let llmCallLogId = null;
|
|
115
|
+
let logAlreadyUpdated = false;
|
|
116
|
+
try {
|
|
117
|
+
llmCallLogId = (await this.llmCallLogsService.createLog({
|
|
118
|
+
session_input_id: 'pending',
|
|
119
|
+
provider: 'openai',
|
|
120
|
+
model_id: model,
|
|
121
|
+
request_body: JSON.stringify({
|
|
122
|
+
model,
|
|
123
|
+
messages,
|
|
124
|
+
tools,
|
|
125
|
+
tool_choice,
|
|
126
|
+
stream: !!onToken,
|
|
127
|
+
temperature: generationConfig?.temperature,
|
|
128
|
+
max_tokens: generationConfig?.maxOutputTokens,
|
|
129
|
+
top_p: generationConfig?.topP,
|
|
130
|
+
reasoning: generationConfig?.reasoning,
|
|
131
|
+
}),
|
|
132
|
+
})).id;
|
|
133
|
+
}
|
|
134
|
+
catch (logError) {
|
|
135
|
+
this.logger.warn(`Failed to create LLM call log: ${logError.message}`);
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
const body = {
|
|
139
|
+
model,
|
|
140
|
+
messages,
|
|
141
|
+
};
|
|
142
|
+
if (onToken) {
|
|
143
|
+
body.stream = true;
|
|
144
|
+
body.stream_options = { include_usage: true };
|
|
145
|
+
}
|
|
146
|
+
if (generationConfig) {
|
|
147
|
+
if (generationConfig.temperature !== undefined)
|
|
148
|
+
body.temperature = generationConfig.temperature;
|
|
149
|
+
if (generationConfig.maxOutputTokens !== undefined)
|
|
150
|
+
body.max_tokens = generationConfig.maxOutputTokens;
|
|
151
|
+
if (generationConfig.topP !== undefined)
|
|
152
|
+
body.top_p = generationConfig.topP;
|
|
153
|
+
if (generationConfig.reasoning !== undefined)
|
|
154
|
+
body.reasoning = generationConfig.reasoning;
|
|
155
|
+
}
|
|
156
|
+
if (tools && tools.length > 0) {
|
|
157
|
+
body.tools = this.mapTools(tools);
|
|
158
|
+
if (tool_choice) {
|
|
159
|
+
body.tool_choice = tool_choice;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const response = await fetch(`${baseUrl}/chat/completions`, {
|
|
163
|
+
method: 'POST',
|
|
164
|
+
headers: {
|
|
165
|
+
'Content-Type': 'application/json',
|
|
166
|
+
Authorization: `Bearer ${apiKey}`,
|
|
167
|
+
},
|
|
168
|
+
body: JSON.stringify(body),
|
|
169
|
+
signal: abortController?.signal,
|
|
170
|
+
});
|
|
171
|
+
if (!response.ok) {
|
|
172
|
+
const errorText = await response.text();
|
|
173
|
+
const errorData = this.tryParseJson(errorText);
|
|
174
|
+
const errorObj = errorData?.error;
|
|
175
|
+
let errorMessage = errorObj?.message ||
|
|
176
|
+
`OpenAI Compatible API error: ${response.statusText}`;
|
|
177
|
+
if (errorObj?.code)
|
|
178
|
+
errorMessage = `[${errorObj.code}] ${errorMessage}`;
|
|
179
|
+
if (errorObj?.metadata)
|
|
180
|
+
errorMessage += `\nMetadata: ${JSON.stringify(errorObj.metadata)}`;
|
|
181
|
+
if (llmCallLogId) {
|
|
182
|
+
try {
|
|
183
|
+
await this.llmCallLogsService.updateLog(llmCallLogId, {
|
|
184
|
+
status_code: response.status,
|
|
185
|
+
latency_ms: Date.now() - startTime,
|
|
186
|
+
error_message: errorMessage,
|
|
187
|
+
response_body: errorText,
|
|
188
|
+
});
|
|
189
|
+
logAlreadyUpdated = true;
|
|
190
|
+
}
|
|
191
|
+
catch (updateError) {
|
|
192
|
+
this.logger.warn(`Failed to update LLM call log: ${updateError.message}`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
const error = new Error(errorMessage);
|
|
196
|
+
error.status = response.status;
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
199
|
+
if (onToken && response.body) {
|
|
200
|
+
let accumulatedResponseBody = '';
|
|
201
|
+
if (abortController) {
|
|
202
|
+
this.activeStreams.set(requestId, abortController);
|
|
203
|
+
}
|
|
204
|
+
const reader = response.body.getReader();
|
|
205
|
+
const decoder = new TextDecoder();
|
|
206
|
+
let buffer = '';
|
|
207
|
+
let accumulatedResponse = '';
|
|
208
|
+
let accumulatedReasoning = '';
|
|
209
|
+
let isFirst = true;
|
|
210
|
+
let usageData = null;
|
|
211
|
+
const accumulatedToolCalls = new Map();
|
|
212
|
+
try {
|
|
213
|
+
while (true) {
|
|
214
|
+
if (abortController?.signal?.aborted) {
|
|
215
|
+
this.activeStreams.delete(requestId);
|
|
216
|
+
throw new DOMException('The operation was aborted', 'AbortError');
|
|
217
|
+
}
|
|
218
|
+
const { done, value } = await reader.read();
|
|
219
|
+
if (done)
|
|
220
|
+
break;
|
|
221
|
+
buffer += decoder.decode(value, { stream: true });
|
|
222
|
+
const lines = buffer.split('\n');
|
|
223
|
+
buffer = lines.pop() || '';
|
|
224
|
+
for (const line of lines) {
|
|
225
|
+
if (line.startsWith('data: ')) {
|
|
226
|
+
const dataStr = line.substring(6);
|
|
227
|
+
if (dataStr.trim() === '[DONE]') {
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
try {
|
|
231
|
+
const parsed = JSON.parse(dataStr);
|
|
232
|
+
const chunk = parsed.choices?.[0]?.delta?.content;
|
|
233
|
+
if (chunk) {
|
|
234
|
+
accumulatedResponse += chunk;
|
|
235
|
+
onToken(chunk, isFirst);
|
|
236
|
+
if (isFirst) {
|
|
237
|
+
isFirst = false;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
const reasoningChunk = parsed.choices?.[0]?.delta?.reasoning_content ||
|
|
241
|
+
parsed.choices?.[0]?.delta?.reasoning;
|
|
242
|
+
if (reasoningChunk) {
|
|
243
|
+
accumulatedReasoning += reasoningChunk;
|
|
244
|
+
}
|
|
245
|
+
const deltaToolCalls = parsed.choices?.[0]?.delta?.tool_calls;
|
|
246
|
+
if (deltaToolCalls) {
|
|
247
|
+
for (const deltaCall of deltaToolCalls) {
|
|
248
|
+
const index = deltaCall.index;
|
|
249
|
+
if (!accumulatedToolCalls.has(index)) {
|
|
250
|
+
accumulatedToolCalls.set(index, {
|
|
251
|
+
id: deltaCall.id,
|
|
252
|
+
type: deltaCall.type,
|
|
253
|
+
function: {
|
|
254
|
+
name: deltaCall.function?.name || '',
|
|
255
|
+
arguments: '',
|
|
256
|
+
},
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
const existing = accumulatedToolCalls.get(index);
|
|
260
|
+
if (deltaCall.function?.arguments) {
|
|
261
|
+
existing.function.arguments +=
|
|
262
|
+
deltaCall.function.arguments;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
if (parsed.usage && !usageData) {
|
|
267
|
+
usageData = {
|
|
268
|
+
prompt_tokens: parsed.usage.prompt_tokens,
|
|
269
|
+
completion_tokens: parsed.usage.completion_tokens,
|
|
270
|
+
cached_tokens: parsed.usage.prompt_tokens_details?.cached_tokens || 0,
|
|
271
|
+
};
|
|
272
|
+
accumulatedResponseBody += dataStr + '\n';
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch (e) {
|
|
276
|
+
this.logger.warn(`Error parsing stream chunk: ${dataStr}`, e);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
catch (readError) {
|
|
283
|
+
if (abortController?.signal?.aborted) {
|
|
284
|
+
this.activeStreams.delete(requestId);
|
|
285
|
+
throw new DOMException('The operation was aborted', 'AbortError');
|
|
286
|
+
}
|
|
287
|
+
throw readError;
|
|
288
|
+
}
|
|
289
|
+
const finalToolCalls = [];
|
|
290
|
+
for (const toolCall of accumulatedToolCalls.values()) {
|
|
291
|
+
try {
|
|
292
|
+
finalToolCalls.push({
|
|
293
|
+
...toolCall,
|
|
294
|
+
function: {
|
|
295
|
+
...toolCall.function,
|
|
296
|
+
arguments: typeof toolCall.function.arguments === 'string'
|
|
297
|
+
? JSON.parse(toolCall.function.arguments)
|
|
298
|
+
: toolCall.function.arguments,
|
|
299
|
+
},
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
catch (e) {
|
|
303
|
+
this.logger.warn(`Failed to parse tool call arguments: ${toolCall.function.arguments}`, e);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
if (usageData) {
|
|
307
|
+
this.logger.log(`OpenAI Compatible stream finished. Usage: ${usageData.prompt_tokens} prompt (${usageData.cached_tokens} cached), ${usageData.completion_tokens} completion tokens`);
|
|
308
|
+
if (llmCallLogId) {
|
|
309
|
+
try {
|
|
310
|
+
await this.llmCallLogsService.updateLog(llmCallLogId, {
|
|
311
|
+
status_code: 200,
|
|
312
|
+
latency_ms: Date.now() - startTime,
|
|
313
|
+
response_body: accumulatedResponseBody ||
|
|
314
|
+
JSON.stringify({ usage: usageData, stream_chunks: '...' }),
|
|
315
|
+
input_tokens: usageData.prompt_tokens,
|
|
316
|
+
output_tokens: usageData.completion_tokens,
|
|
317
|
+
cached_tokens: usageData.cached_tokens,
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
catch (updateError) {
|
|
321
|
+
this.logger.warn(`Failed to update LLM call log: ${updateError.message}`);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
this.activeStreams.delete(requestId);
|
|
325
|
+
return {
|
|
326
|
+
text: accumulatedResponse,
|
|
327
|
+
usage: {
|
|
328
|
+
inputTokens: usageData.prompt_tokens,
|
|
329
|
+
outputTokens: usageData.completion_tokens,
|
|
330
|
+
cachedTokens: usageData.cached_tokens,
|
|
331
|
+
},
|
|
332
|
+
tool_calls: finalToolCalls.length > 0 ? finalToolCalls : undefined,
|
|
333
|
+
thoughts: accumulatedReasoning || undefined,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
this.logger.warn('Usage data not returned from streaming response');
|
|
337
|
+
if (llmCallLogId) {
|
|
338
|
+
try {
|
|
339
|
+
await this.llmCallLogsService.updateLog(llmCallLogId, {
|
|
340
|
+
status_code: 200,
|
|
341
|
+
latency_ms: Date.now() - startTime,
|
|
342
|
+
response_body: accumulatedResponseBody ||
|
|
343
|
+
JSON.stringify({ stream_chunks: '...' }),
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
catch (updateError) {
|
|
347
|
+
this.logger.warn(`Failed to update LLM call log: ${updateError.message}`);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
this.activeStreams.delete(requestId);
|
|
351
|
+
return {
|
|
352
|
+
text: accumulatedResponse,
|
|
353
|
+
tool_calls: finalToolCalls.length > 0 ? finalToolCalls : undefined,
|
|
354
|
+
thoughts: accumulatedReasoning || undefined,
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
const data = await response.json();
|
|
358
|
+
const content = data.choices?.[0]?.message?.content;
|
|
359
|
+
const rawToolCalls = data.choices?.[0]?.message?.tool_calls;
|
|
360
|
+
const reasoningContent = data.choices?.[0]?.message?.reasoning ||
|
|
361
|
+
data.choices?.[0]?.message?.reasoning_content;
|
|
362
|
+
const usage = data.usage;
|
|
363
|
+
let parsedToolCalls;
|
|
364
|
+
if (rawToolCalls && rawToolCalls.length > 0) {
|
|
365
|
+
parsedToolCalls = rawToolCalls.map((tc) => ({
|
|
366
|
+
id: tc.id,
|
|
367
|
+
type: tc.type,
|
|
368
|
+
function: {
|
|
369
|
+
name: tc.function.name,
|
|
370
|
+
arguments: typeof tc.function.arguments === 'string'
|
|
371
|
+
? JSON.parse(tc.function.arguments)
|
|
372
|
+
: tc.function.arguments,
|
|
373
|
+
},
|
|
374
|
+
}));
|
|
375
|
+
}
|
|
376
|
+
if (!content && !parsedToolCalls) {
|
|
377
|
+
const error = new Error('OpenAI Compatible API returned an empty response.');
|
|
378
|
+
error.status = response.status || 0;
|
|
379
|
+
throw error;
|
|
380
|
+
}
|
|
381
|
+
if (usage) {
|
|
382
|
+
const cachedTokens = usage.prompt_tokens_details?.cached_tokens || 0;
|
|
383
|
+
this.logger.log(`OpenAI Compatible response. Usage: ${usage.prompt_tokens} prompt (${cachedTokens} cached), ${usage.completion_tokens} completion tokens`);
|
|
384
|
+
if (llmCallLogId) {
|
|
385
|
+
try {
|
|
386
|
+
await this.llmCallLogsService.updateLog(llmCallLogId, {
|
|
387
|
+
status_code: 200,
|
|
388
|
+
latency_ms: Date.now() - startTime,
|
|
389
|
+
response_body: JSON.stringify(data),
|
|
390
|
+
input_tokens: usage.prompt_tokens,
|
|
391
|
+
output_tokens: usage.completion_tokens,
|
|
392
|
+
cached_tokens: cachedTokens,
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
catch (updateError) {
|
|
396
|
+
this.logger.warn(`Failed to update LLM call log: ${updateError.message}`);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
return {
|
|
400
|
+
text: content || '',
|
|
401
|
+
usage: {
|
|
402
|
+
inputTokens: usage.prompt_tokens,
|
|
403
|
+
outputTokens: usage.completion_tokens,
|
|
404
|
+
cachedTokens: cachedTokens,
|
|
405
|
+
},
|
|
406
|
+
tool_calls: parsedToolCalls,
|
|
407
|
+
thoughts: reasoningContent || undefined,
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
this.logger.warn('Usage data not returned from response');
|
|
411
|
+
if (llmCallLogId) {
|
|
412
|
+
try {
|
|
413
|
+
await this.llmCallLogsService.updateLog(llmCallLogId, {
|
|
414
|
+
status_code: 200,
|
|
415
|
+
latency_ms: Date.now() - startTime,
|
|
416
|
+
response_body: JSON.stringify(data),
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
catch (updateError) {
|
|
420
|
+
this.logger.warn(`Failed to update LLM call log: ${updateError.message}`);
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
return {
|
|
424
|
+
text: content || '',
|
|
425
|
+
tool_calls: parsedToolCalls,
|
|
426
|
+
thoughts: reasoningContent || undefined,
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
catch (error) {
|
|
430
|
+
this.logger.error(`OpenAI Compatible generation failed: ${error.message}`);
|
|
431
|
+
if (llmCallLogId && !logAlreadyUpdated) {
|
|
432
|
+
try {
|
|
433
|
+
const errorName = error instanceof Error ? error.name : 'UnknownError';
|
|
434
|
+
let errorMessage = `[${errorName}] ${error.message}`;
|
|
435
|
+
if (error.status)
|
|
436
|
+
errorMessage += `\nHTTP Status: ${error.status}`;
|
|
437
|
+
const errorCause = error instanceof Error ? error.cause : undefined;
|
|
438
|
+
if (errorCause) {
|
|
439
|
+
errorMessage += `\nCause: ${errorCause instanceof Error ? errorCause.message : String(errorCause)}`;
|
|
440
|
+
}
|
|
441
|
+
if (error instanceof Error && error.stack) {
|
|
442
|
+
const stackLines = error.stack.split('\n').slice(1, 4).join('\n');
|
|
443
|
+
errorMessage += `\n${stackLines}`;
|
|
444
|
+
}
|
|
445
|
+
await this.llmCallLogsService.updateLog(llmCallLogId, {
|
|
446
|
+
status_code: error.status || null,
|
|
447
|
+
latency_ms: Date.now() - startTime,
|
|
448
|
+
error_message: errorMessage,
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
catch (updateError) {
|
|
452
|
+
this.logger.warn(`Failed to update LLM call log: ${updateError.message}`);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
this.activeStreams.delete(requestId);
|
|
456
|
+
throw error;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
tryParseJson(text) {
|
|
460
|
+
try {
|
|
461
|
+
return JSON.parse(text);
|
|
462
|
+
}
|
|
463
|
+
catch {
|
|
464
|
+
return null;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
abortBySessionId(_sessionId) {
|
|
468
|
+
for (const [reqId, controller] of this.activeStreams.entries()) {
|
|
469
|
+
try {
|
|
470
|
+
controller.abort();
|
|
471
|
+
this.activeStreams.delete(reqId);
|
|
472
|
+
return true;
|
|
473
|
+
}
|
|
474
|
+
catch (e) {
|
|
475
|
+
this.logger.warn(`Failed to abort stream ${reqId}: ${e.message}`);
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
};
|
|
481
|
+
exports.OpenaiLlmProvider = OpenaiLlmProvider;
|
|
482
|
+
exports.OpenaiLlmProvider = OpenaiLlmProvider = OpenaiLlmProvider_1 = __decorate([
|
|
483
|
+
(0, common_1.Injectable)(),
|
|
484
|
+
__metadata("design:paramtypes", [application_state_service_1.ApplicationStateService,
|
|
485
|
+
llm_call_logs_service_1.LlmCallLogsService])
|
|
486
|
+
], OpenaiLlmProvider);
|
|
487
|
+
//# sourceMappingURL=openai-llm.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-llm.provider.js","sourceRoot":"","sources":["../../../src/llm-provider/openai-llm.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,15 @@ import { OpenRouterLlmProvider } from './openrouter-llm.provider';
|
|
|
4
4
|
import { ZaiLlmProvider } from './zai-llm.provider';
|
|
5
5
|
import { AlibabaLlmProvider } from './alibaba-llm.provider';
|
|
6
6
|
import { OllamaLlmProvider } from './ollama-llm.provider';
|
|
7
|
+
import { OpenaiLlmProvider } from './openai-llm.provider';
|
|
7
8
|
export declare class ProxyLlmProvider implements LlmProvider {
|
|
8
9
|
private readonly geminiProvider;
|
|
9
10
|
private readonly openRouterProvider;
|
|
10
11
|
private readonly zaiProvider;
|
|
11
12
|
private readonly alibabaProvider;
|
|
12
13
|
private readonly ollamaProvider;
|
|
13
|
-
|
|
14
|
+
private readonly openaiProvider;
|
|
15
|
+
constructor(geminiProvider: GeminiLlmProvider, openRouterProvider: OpenRouterLlmProvider, zaiProvider: ZaiLlmProvider, alibabaProvider: AlibabaLlmProvider, ollamaProvider: OllamaLlmProvider, openaiProvider: OpenaiLlmProvider);
|
|
14
16
|
getModels(): Promise<LlmModel[]>;
|
|
15
17
|
generateContent(request: LlmProviderRequest): Promise<LlmResponse>;
|
|
16
18
|
}
|
|
@@ -16,13 +16,15 @@ const openrouter_llm_provider_1 = require("./openrouter-llm.provider");
|
|
|
16
16
|
const zai_llm_provider_1 = require("./zai-llm.provider");
|
|
17
17
|
const alibaba_llm_provider_1 = require("./alibaba-llm.provider");
|
|
18
18
|
const ollama_llm_provider_1 = require("./ollama-llm.provider");
|
|
19
|
+
const openai_llm_provider_1 = require("./openai-llm.provider");
|
|
19
20
|
let ProxyLlmProvider = class ProxyLlmProvider {
|
|
20
|
-
constructor(geminiProvider, openRouterProvider, zaiProvider, alibabaProvider, ollamaProvider) {
|
|
21
|
+
constructor(geminiProvider, openRouterProvider, zaiProvider, alibabaProvider, ollamaProvider, openaiProvider) {
|
|
21
22
|
this.geminiProvider = geminiProvider;
|
|
22
23
|
this.openRouterProvider = openRouterProvider;
|
|
23
24
|
this.zaiProvider = zaiProvider;
|
|
24
25
|
this.alibabaProvider = alibabaProvider;
|
|
25
26
|
this.ollamaProvider = ollamaProvider;
|
|
27
|
+
this.openaiProvider = openaiProvider;
|
|
26
28
|
}
|
|
27
29
|
async getModels() {
|
|
28
30
|
const geminiModels = await this.geminiProvider.getModels();
|
|
@@ -30,12 +32,14 @@ let ProxyLlmProvider = class ProxyLlmProvider {
|
|
|
30
32
|
const zaiModels = await this.zaiProvider.getModels();
|
|
31
33
|
const alibabaModels = await this.alibabaProvider.getModels();
|
|
32
34
|
const ollamaModels = await this.ollamaProvider.getModels();
|
|
35
|
+
const openaiModels = await this.openaiProvider.getModels();
|
|
33
36
|
return [
|
|
34
37
|
...geminiModels,
|
|
35
38
|
...ollamaModels,
|
|
36
39
|
...alibabaModels,
|
|
37
40
|
...zaiModels,
|
|
38
41
|
...openRouterModels,
|
|
42
|
+
...openaiModels,
|
|
39
43
|
];
|
|
40
44
|
}
|
|
41
45
|
async generateContent(request) {
|
|
@@ -49,6 +53,9 @@ let ProxyLlmProvider = class ProxyLlmProvider {
|
|
|
49
53
|
if (modelId?.startsWith('zai/')) {
|
|
50
54
|
return this.zaiProvider.generateContent(request);
|
|
51
55
|
}
|
|
56
|
+
if (modelId?.startsWith('openai/')) {
|
|
57
|
+
return this.openaiProvider.generateContent(request);
|
|
58
|
+
}
|
|
52
59
|
const isOpenRouter = modelId && modelId.includes('/');
|
|
53
60
|
if (!isOpenRouter) {
|
|
54
61
|
return this.geminiProvider.generateContent(request);
|
|
@@ -65,6 +72,7 @@ exports.ProxyLlmProvider = ProxyLlmProvider = __decorate([
|
|
|
65
72
|
openrouter_llm_provider_1.OpenRouterLlmProvider,
|
|
66
73
|
zai_llm_provider_1.ZaiLlmProvider,
|
|
67
74
|
alibaba_llm_provider_1.AlibabaLlmProvider,
|
|
68
|
-
ollama_llm_provider_1.OllamaLlmProvider
|
|
75
|
+
ollama_llm_provider_1.OllamaLlmProvider,
|
|
76
|
+
openai_llm_provider_1.OpenaiLlmProvider])
|
|
69
77
|
], ProxyLlmProvider);
|
|
70
78
|
//# sourceMappingURL=proxy-llm.provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-llm.provider.js","sourceRoot":"","sources":["../../../src/llm-provider/proxy-llm.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAO5C,uEAAkE;AAClE,uEAAkE;AAClE,yDAAoD;AACpD,iEAA4D;AAC5D,+DAA0D;AAGnD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACmB,cAAiC,EACjC,kBAAyC,EACzC,WAA2B,EAC3B,eAAmC,EACnC,cAAiC;
|
|
1
|
+
{"version":3,"file":"proxy-llm.provider.js","sourceRoot":"","sources":["../../../src/llm-provider/proxy-llm.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAO5C,uEAAkE;AAClE,uEAAkE;AAClE,yDAAoD;AACpD,iEAA4D;AAC5D,+DAA0D;AAC1D,+DAA0D;AAGnD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACmB,cAAiC,EACjC,kBAAyC,EACzC,WAA2B,EAC3B,eAAmC,EACnC,cAAiC,EACjC,cAAiC;QALjC,mBAAc,GAAd,cAAc,CAAmB;QACjC,uBAAkB,GAAlB,kBAAkB,CAAuB;QACzC,gBAAW,GAAX,WAAW,CAAgB;QAC3B,oBAAe,GAAf,eAAe,CAAoB;QACnC,mBAAc,GAAd,cAAc,CAAmB;QACjC,mBAAc,GAAd,cAAc,CAAmB;IACjD,CAAC;IAEJ,KAAK,CAAC,SAAS;QACb,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QAC3D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QACnE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACrD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;QAC7D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QAC3D,OAAO;YACL,GAAG,YAAY;YACf,GAAG,YAAY;YACf,GAAG,aAAa;YAChB,GAAG,SAAS;YACZ,GAAG,gBAAgB;YACnB,GAAG,YAAY;SAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAA2B;QAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAE5B,IAAI,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAKD,MAAM,YAAY,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;CACF,CAAA;AAzDY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAGwB,uCAAiB;QACb,+CAAqB;QAC5B,iCAAc;QACV,yCAAkB;QACnB,uCAAiB;QACjB,uCAAiB;GAPzC,gBAAgB,CAyD5B"}
|
package/backend/dist/src/main.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
const dotenv = require("dotenv");
|
|
5
5
|
dotenv.config();
|
|
6
6
|
const tracing_1 = require("./tracing");
|
|
7
|
+
const undici_1 = require("undici");
|
|
7
8
|
const core_1 = require("@nestjs/core");
|
|
8
9
|
const app_module_1 = require("./app.module");
|
|
9
10
|
const http_exception_filter_1 = require("./http-exception.filter");
|
|
@@ -40,6 +41,11 @@ async function findAvailablePort(startPort) {
|
|
|
40
41
|
}
|
|
41
42
|
async function bootstrap() {
|
|
42
43
|
await (0, tracing_1.initTracing)();
|
|
44
|
+
(0, undici_1.setGlobalDispatcher)(new undici_1.Agent({
|
|
45
|
+
headersTimeout: 1_200_000,
|
|
46
|
+
bodyTimeout: 1_200_000,
|
|
47
|
+
connect: { timeout: 60_000 },
|
|
48
|
+
}));
|
|
43
49
|
if (process.env.REPOBURG_PROJECT_PATH) {
|
|
44
50
|
try {
|
|
45
51
|
process.chdir(process.env.REPOBURG_PROJECT_PATH);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;;AACA,iCAAiC;AACjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAGhB,uCAAwC;AAExC,uCAA2C;AAC3C,6CAAyC;AACzC,mEAA8D;AAC9D,2CAAgD;AAChD,+DAA2D;AAC3D,+DAA2D;AAC3D,qCAA2C;AAC3C,+CAA2C;AAC3C,2BAA2B;AAC3B,qDAAgD;AAChD,6CAAiE;AAEjE,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;YAChC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IAChD,IAAI,IAAI,GAAG,SAAS,CAAC;IACrB,OAAO,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,IAAI,EAAE,CAAC;IACT,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,SAAS;IAEtB,MAAM,IAAA,qBAAW,GAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|