@oneuptime/common 11.3.24 → 11.3.26
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/Models/DatabaseModels/AIConversation.ts +322 -0
- package/Models/DatabaseModels/AIConversationMessage.ts +495 -0
- package/Models/DatabaseModels/AIRun.ts +584 -0
- package/Models/DatabaseModels/AIRunEvent.ts +443 -0
- package/Models/DatabaseModels/Index.ts +8 -0
- package/Models/DatabaseModels/LlmLog.ts +26 -0
- package/Models/DatabaseModels/LlmProvider.ts +2 -2
- package/Server/API/AIChatAPI.ts +693 -0
- package/Server/API/LlmProviderAPI.ts +169 -0
- package/Server/API/MicrosoftTeamsAPI.ts +5 -0
- package/Server/API/SlackAPI.ts +663 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783363279075-AddAIChatModels.ts +245 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783443471795-AddLlmProviderToAIConversation.ts +36 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783453297388-AddAIChatWriteActionsAndWidgets.ts +46 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783461767405-MigrationName.ts +119 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
- package/Server/Services/AIConversationMessageService.ts +39 -0
- package/Server/Services/AIConversationService.ts +63 -0
- package/Server/Services/AIRunEventService.ts +39 -0
- package/Server/Services/AIRunService.ts +39 -0
- package/Server/Services/AIService.ts +53 -31
- package/Server/Services/DatabaseService.ts +19 -0
- package/Server/Services/LlmProviderService.ts +110 -0
- package/Server/Services/ProjectService.ts +24 -0
- package/Server/Types/AnalyticsDatabase/ModelPermission.ts +74 -9
- package/Server/Utils/AI/AIChatPrivacyFilter.ts +28 -0
- package/Server/Utils/AI/Chat/ChatAgentRunner.ts +1054 -0
- package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +239 -0
- package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +51 -0
- package/Server/Utils/AI/Toolbox/AlertTools.ts +201 -0
- package/Server/Utils/AI/Toolbox/AlertWriteTools.ts +174 -0
- package/Server/Utils/AI/Toolbox/ContextTools.ts +189 -0
- package/Server/Utils/AI/Toolbox/ExceptionTools.ts +149 -0
- package/Server/Utils/AI/Toolbox/IncidentTools.ts +204 -0
- package/Server/Utils/AI/Toolbox/IncidentWriteTools.ts +350 -0
- package/Server/Utils/AI/Toolbox/Index.ts +228 -0
- package/Server/Utils/AI/Toolbox/LogTools.ts +339 -0
- package/Server/Utils/AI/Toolbox/MetricTools.ts +179 -0
- package/Server/Utils/AI/Toolbox/MonitorTools.ts +193 -0
- package/Server/Utils/AI/Toolbox/Serializer.ts +257 -0
- package/Server/Utils/AI/Toolbox/ToolTypes.ts +249 -0
- package/Server/Utils/AI/Toolbox/TraceTools.ts +402 -0
- package/Server/Utils/AI/Toolbox/WidgetBuilder.ts +189 -0
- package/Server/Utils/LLM/LLMService.ts +502 -92
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +512 -19
- package/Server/Utils/Workspace/Slack/Slack.ts +80 -0
- package/Server/Utils/Workspace/Slack/app-manifest.json +16 -1
- package/Tests/Server/Utils/AI/AIChatModelACL.test.ts +42 -0
- package/Tests/Server/Utils/AI/ChatAgentHelpers.test.ts +89 -0
- package/Tests/Server/Utils/AI/LLMServiceBaseUrl.test.ts +139 -0
- package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +308 -0
- package/Tests/Server/Utils/AI/ToolArgsGetTimeRange.test.ts +62 -0
- package/Tests/Server/Utils/AI/ToolArgsScopeServiceIds.test.ts +79 -0
- package/Tests/Server/Utils/AI/ToolResultSerializer.test.ts +155 -0
- package/Tests/Types/Billing/SubscriptionStatus.test.ts +127 -0
- package/Tests/Types/Metrics/RecordingRuleDefinition.test.ts +213 -0
- package/Types/AI/AIChatMessageRole.ts +6 -0
- package/Types/AI/AIChatMessageStatus.ts +32 -0
- package/Types/AI/AIChatPermissionMode.ts +69 -0
- package/Types/AI/AIChatTypes.ts +231 -0
- package/Types/AI/AIRunEventType.ts +17 -0
- package/Types/AI/AIRunStatus.ts +28 -0
- package/Types/AI/AIRunType.ts +6 -0
- package/Types/LLM/LlmType.ts +6 -0
- package/UI/Components/Header/HeaderIconDropdownButton.tsx +22 -12
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +35 -3
- package/UI/Components/Page/Page.tsx +14 -0
- package/UI/Utils/LlmTypeDropdownOptions.ts +40 -0
- package/UI/Utils/TestLLMProvider.ts +59 -0
- package/build/dist/Models/DatabaseModels/AIConversation.js +345 -0
- package/build/dist/Models/DatabaseModels/AIConversation.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AIConversationMessage.js +521 -0
- package/build/dist/Models/DatabaseModels/AIConversationMessage.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AIRun.js +619 -0
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AIRunEvent.js +469 -0
- package/build/dist/Models/DatabaseModels/AIRunEvent.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Index.js +8 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LlmLog.js +28 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LlmProvider.js +2 -2
- package/build/dist/Models/DatabaseModels/LlmProvider.js.map +1 -1
- package/build/dist/Server/API/AIChatAPI.js +498 -0
- package/build/dist/Server/API/AIChatAPI.js.map +1 -0
- package/build/dist/Server/API/LlmProviderAPI.js +107 -1
- package/build/dist/Server/API/LlmProviderAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +4 -0
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/SlackAPI.js +442 -0
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783363279075-AddAIChatModels.js +96 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783363279075-AddAIChatModels.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783443471795-AddLlmProviderToAIConversation.js +25 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783443471795-AddLlmProviderToAIConversation.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783453297388-AddAIChatWriteActionsAndWidgets.js +31 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783453297388-AddAIChatWriteActionsAndWidgets.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783461767405-MigrationName.js +46 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783461767405-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIConversationMessageService.js +34 -0
- package/build/dist/Server/Services/AIConversationMessageService.js.map +1 -0
- package/build/dist/Server/Services/AIConversationService.js +42 -0
- package/build/dist/Server/Services/AIConversationService.js.map +1 -0
- package/build/dist/Server/Services/AIRunEventService.js +34 -0
- package/build/dist/Server/Services/AIRunEventService.js.map +1 -0
- package/build/dist/Server/Services/AIRunService.js +34 -0
- package/build/dist/Server/Services/AIRunService.js.map +1 -0
- package/build/dist/Server/Services/AIService.js +31 -23
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +10 -0
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/LlmProviderService.js +108 -0
- package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +25 -0
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +50 -7
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Server/Utils/AI/AIChatPrivacyFilter.js +18 -0
- package/build/dist/Server/Utils/AI/AIChatPrivacyFilter.js.map +1 -0
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +745 -0
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +165 -0
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -0
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +44 -0
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js +167 -0
- package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/AlertWriteTools.js +136 -0
- package/build/dist/Server/Utils/AI/Toolbox/AlertWriteTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/ContextTools.js +141 -0
- package/build/dist/Server/Utils/AI/Toolbox/ContextTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/ExceptionTools.js +117 -0
- package/build/dist/Server/Utils/AI/Toolbox/ExceptionTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/IncidentTools.js +167 -0
- package/build/dist/Server/Utils/AI/Toolbox/IncidentTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/IncidentWriteTools.js +280 -0
- package/build/dist/Server/Utils/AI/Toolbox/IncidentWriteTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +150 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/LogTools.js +246 -0
- package/build/dist/Server/Utils/AI/Toolbox/LogTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/MetricTools.js +120 -0
- package/build/dist/Server/Utils/AI/Toolbox/MetricTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/MonitorTools.js +158 -0
- package/build/dist/Server/Utils/AI/Toolbox/MonitorTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/Serializer.js +188 -0
- package/build/dist/Server/Utils/AI/Toolbox/Serializer.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/ToolTypes.js +142 -0
- package/build/dist/Server/Utils/AI/Toolbox/ToolTypes.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/TraceTools.js +309 -0
- package/build/dist/Server/Utils/AI/Toolbox/TraceTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/WidgetBuilder.js +120 -0
- package/build/dist/Server/Utils/AI/Toolbox/WidgetBuilder.js.map +1 -0
- package/build/dist/Server/Utils/LLM/LLMService.js +372 -88
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +378 -15
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +59 -0
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/app-manifest.json +16 -1
- package/build/dist/Types/AI/AIChatMessageRole.js +7 -0
- package/build/dist/Types/AI/AIChatMessageRole.js.map +1 -0
- package/build/dist/Types/AI/AIChatMessageStatus.js +27 -0
- package/build/dist/Types/AI/AIChatMessageStatus.js.map +1 -0
- package/build/dist/Types/AI/AIChatPermissionMode.js +53 -0
- package/build/dist/Types/AI/AIChatPermissionMode.js.map +1 -0
- package/build/dist/Types/AI/AIChatTypes.js +74 -0
- package/build/dist/Types/AI/AIChatTypes.js.map +1 -0
- package/build/dist/Types/AI/AIRunEventType.js +18 -0
- package/build/dist/Types/AI/AIRunEventType.js.map +1 -0
- package/build/dist/Types/AI/AIRunStatus.js +26 -0
- package/build/dist/Types/AI/AIRunStatus.js.map +1 -0
- package/build/dist/Types/AI/AIRunType.js +7 -0
- package/build/dist/Types/AI/AIRunType.js.map +1 -0
- package/build/dist/Types/LLM/LlmType.js +6 -0
- package/build/dist/Types/LLM/LlmType.js.map +1 -1
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +10 -5
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +18 -4
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/Page/Page.js +3 -1
- package/build/dist/UI/Components/Page/Page.js.map +1 -1
- package/build/dist/UI/Utils/LlmTypeDropdownOptions.js +38 -0
- package/build/dist/UI/Utils/LlmTypeDropdownOptions.js.map +1 -0
- package/build/dist/UI/Utils/TestLLMProvider.js +37 -0
- package/build/dist/UI/Utils/TestLLMProvider.js.map +1 -0
- package/package.json +1 -1
|
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import HTTPErrorResponse from "../../../Types/API/HTTPErrorResponse";
|
|
11
11
|
import URL from "../../../Types/API/URL";
|
|
12
|
+
import JSONFunctions from "../../../Types/JSONFunctions";
|
|
12
13
|
import API from "../../../Utils/API";
|
|
13
14
|
import LlmType from "../../../Types/LLM/LlmType";
|
|
14
15
|
import BadDataException from "../../../Types/Exception/BadDataException";
|
|
@@ -21,6 +22,7 @@ class LLMService {
|
|
|
21
22
|
case LlmType.OpenAI:
|
|
22
23
|
case LlmType.Groq:
|
|
23
24
|
case LlmType.Mistral:
|
|
25
|
+
case LlmType.OpenAICompatible:
|
|
24
26
|
return await this.getOpenAICompatibleCompletion(config, request);
|
|
25
27
|
case LlmType.AzureOpenAI:
|
|
26
28
|
return await this.getAzureOpenAICompletion(config, request);
|
|
@@ -32,11 +34,217 @@ class LLMService {
|
|
|
32
34
|
throw new BadDataException(`Unsupported LLM type: ${config.llmType}`);
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
|
-
|
|
37
|
+
/*
|
|
38
|
+
* OpenAI-compatible wire format (OpenAI, Groq, Mistral, Azure OpenAI).
|
|
39
|
+
*/
|
|
40
|
+
static toOpenAIMessages(messages) {
|
|
41
|
+
return messages.map((msg) => {
|
|
42
|
+
if (msg.role === "assistant" && msg.toolCalls && msg.toolCalls.length) {
|
|
43
|
+
return {
|
|
44
|
+
role: "assistant",
|
|
45
|
+
content: msg.content || null,
|
|
46
|
+
tool_calls: msg.toolCalls.map((toolCall) => {
|
|
47
|
+
return {
|
|
48
|
+
id: toolCall.id,
|
|
49
|
+
type: "function",
|
|
50
|
+
function: {
|
|
51
|
+
name: toolCall.name,
|
|
52
|
+
arguments: JSON.stringify(toolCall.arguments),
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (msg.role === "tool") {
|
|
59
|
+
return {
|
|
60
|
+
role: "tool",
|
|
61
|
+
tool_call_id: msg.toolCallId || "",
|
|
62
|
+
content: msg.content,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
role: msg.role,
|
|
67
|
+
content: msg.content,
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
static toOpenAITools(tools) {
|
|
72
|
+
return tools.map((tool) => {
|
|
73
|
+
return {
|
|
74
|
+
type: "function",
|
|
75
|
+
function: {
|
|
76
|
+
name: tool.name,
|
|
77
|
+
description: tool.description,
|
|
78
|
+
parameters: tool.inputSchema,
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
static parseOpenAIToolCalls(message) {
|
|
84
|
+
const rawToolCalls = message["tool_calls"];
|
|
85
|
+
if (!rawToolCalls || rawToolCalls.length === 0) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
return rawToolCalls.map((rawToolCall, index) => {
|
|
89
|
+
const fn = rawToolCall["function"] || {};
|
|
90
|
+
const parsed = this.parseToolCallArguments(fn["arguments"] || "{}");
|
|
91
|
+
return {
|
|
92
|
+
id: rawToolCall["id"] || `tool_call_${index}`,
|
|
93
|
+
name: fn["name"] || "",
|
|
94
|
+
arguments: parsed.arguments,
|
|
95
|
+
argumentsParseError: parsed.error,
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/*
|
|
100
|
+
* Models sometimes emit slightly malformed argument JSON (trailing commas,
|
|
101
|
+
* single quotes). Try strict JSON first, then tolerant JSON5, and report a
|
|
102
|
+
* parse error instead of silently executing with empty arguments.
|
|
103
|
+
*/
|
|
104
|
+
static parseToolCallArguments(rawArguments) {
|
|
105
|
+
try {
|
|
106
|
+
return { arguments: JSON.parse(rawArguments) };
|
|
107
|
+
}
|
|
108
|
+
catch (_a) {
|
|
109
|
+
// fall through to tolerant parsing
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
const parsed = JSONFunctions.parse(rawArguments);
|
|
113
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
114
|
+
return { arguments: parsed };
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
arguments: {},
|
|
118
|
+
error: "Tool arguments were not a JSON object.",
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (_b) {
|
|
122
|
+
return {
|
|
123
|
+
arguments: {},
|
|
124
|
+
error: "Tool arguments were malformed JSON and could not be parsed.",
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
static buildOpenAIRequestBody(modelName, request) {
|
|
36
129
|
var _a;
|
|
37
|
-
|
|
130
|
+
const data = {
|
|
131
|
+
model: modelName,
|
|
132
|
+
messages: this.toOpenAIMessages(request.messages),
|
|
133
|
+
temperature: (_a = request.temperature) !== null && _a !== void 0 ? _a : 0.7,
|
|
134
|
+
};
|
|
135
|
+
if (request.maxTokens) {
|
|
136
|
+
data["max_tokens"] = request.maxTokens;
|
|
137
|
+
}
|
|
138
|
+
if (request.tools && request.tools.length > 0) {
|
|
139
|
+
data["tools"] = this.toOpenAITools(request.tools);
|
|
140
|
+
}
|
|
141
|
+
return data;
|
|
142
|
+
}
|
|
143
|
+
static parseOpenAIResponse(jsonData, providerName) {
|
|
144
|
+
const choices = jsonData["choices"];
|
|
145
|
+
if (!choices || choices.length === 0) {
|
|
146
|
+
throw new BadDataException(`No response from ${providerName}`);
|
|
147
|
+
}
|
|
148
|
+
const message = choices[0]["message"];
|
|
149
|
+
const usage = jsonData["usage"];
|
|
150
|
+
const toolCalls = this.parseOpenAIToolCalls(message);
|
|
151
|
+
return {
|
|
152
|
+
content: message["content"] || "",
|
|
153
|
+
toolCalls: toolCalls,
|
|
154
|
+
stopReason: toolCalls && toolCalls.length > 0 ? "tool_use" : "stop",
|
|
155
|
+
usage: usage
|
|
156
|
+
? {
|
|
157
|
+
promptTokens: usage["prompt_tokens"],
|
|
158
|
+
completionTokens: usage["completion_tokens"],
|
|
159
|
+
totalTokens: usage["total_tokens"],
|
|
160
|
+
}
|
|
161
|
+
: undefined,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/*
|
|
165
|
+
* Build the chat completions URL for an OpenAI-compatible server from the
|
|
166
|
+
* configured base URL. Users enter the base URL in a few different ways, and
|
|
167
|
+
* we normalize all of them onto the right endpoint instead of 404-ing:
|
|
168
|
+
*
|
|
169
|
+
* - Already a full endpoint (".../chat/completions") -> used as-is.
|
|
170
|
+
* - Includes a path (".../v1", ".../openai/v1") -> append "/chat/completions".
|
|
171
|
+
* - Bare server root ("http://host:8000") -> append "/v1/chat/completions",
|
|
172
|
+
* since vLLM, LocalAI and similar servers expose the OpenAI-compatible API
|
|
173
|
+
* under /v1 by default. This is the most common self-hosted setup and the
|
|
174
|
+
* easiest one for users to get wrong (omitting /v1 returns FastAPI's
|
|
175
|
+
* {"detail":"Not Found"}).
|
|
176
|
+
*
|
|
177
|
+
* The endpoint segment is only ever appended to the PATH portion: any
|
|
178
|
+
* ?query or #fragment on the base URL is split off first and re-attached
|
|
179
|
+
* afterwards (otherwise "/chat/completions" would land inside the query or
|
|
180
|
+
* fragment). Trailing slashes are stripped so we never emit
|
|
181
|
+
* ".../v1//chat/completions", and the URL scheme is lower-cased because URL
|
|
182
|
+
* schemes are case-insensitive but downstream URL parsing only recognizes
|
|
183
|
+
* lowercase http/https.
|
|
184
|
+
*/
|
|
185
|
+
static buildOpenAICompatibleChatCompletionsUrl(baseUrl) {
|
|
186
|
+
const raw = baseUrl.trim();
|
|
187
|
+
// Split off #fragment, then ?query, so we can operate on the path alone.
|
|
188
|
+
const fragmentIndex = raw.indexOf("#");
|
|
189
|
+
const fragment = fragmentIndex >= 0 ? raw.substring(fragmentIndex) : "";
|
|
190
|
+
const withoutFragment = fragmentIndex >= 0 ? raw.substring(0, fragmentIndex) : raw;
|
|
191
|
+
const queryIndex = withoutFragment.indexOf("?");
|
|
192
|
+
const query = queryIndex >= 0 ? withoutFragment.substring(queryIndex) : "";
|
|
193
|
+
let base = queryIndex >= 0
|
|
194
|
+
? withoutFragment.substring(0, queryIndex)
|
|
195
|
+
: withoutFragment;
|
|
196
|
+
/*
|
|
197
|
+
* Lower-case the scheme (e.g. "HTTP://" -> "http://") and strip trailing
|
|
198
|
+
* slashes.
|
|
199
|
+
*/
|
|
200
|
+
const schemeRegex = /^[a-z][a-z0-9+.-]*:\/\//i;
|
|
201
|
+
base = base
|
|
202
|
+
.replace(schemeRegex, (scheme) => {
|
|
203
|
+
return scheme.toLowerCase();
|
|
204
|
+
})
|
|
205
|
+
.replace(/\/+$/, "");
|
|
206
|
+
let path;
|
|
207
|
+
const fullEndpointRegex = /\/chat\/completions$/i;
|
|
208
|
+
const hasPathAfterHostRegex = /^[a-z][a-z0-9+.-]*:\/\/[^/]+\/.+/i;
|
|
209
|
+
if (fullEndpointRegex.test(base)) {
|
|
210
|
+
// The user already pointed us at the full endpoint.
|
|
211
|
+
path = base;
|
|
212
|
+
}
|
|
213
|
+
else if (hasPathAfterHostRegex.test(base)) {
|
|
214
|
+
/*
|
|
215
|
+
* The base URL carries a path after the host[:port] (e.g.
|
|
216
|
+
* "http://host:8000/v1" or ".../openai/v1") — trust it and only append
|
|
217
|
+
* the endpoint.
|
|
218
|
+
*/
|
|
219
|
+
path = `${base}/chat/completions`;
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
/*
|
|
223
|
+
* Bare server root ("http://host:8000") — add the conventional /v1
|
|
224
|
+
* prefix that OpenAI-compatible servers (vLLM, LocalAI, ...) use.
|
|
225
|
+
*/
|
|
226
|
+
path = `${base}/v1/chat/completions`;
|
|
227
|
+
}
|
|
228
|
+
return `${path}${query}${fragment}`;
|
|
229
|
+
}
|
|
230
|
+
static async getOpenAICompatibleCompletion(config, request) {
|
|
231
|
+
/*
|
|
232
|
+
* Generic OpenAI-compatible servers (vLLM, LocalAI, etc.) are usually
|
|
233
|
+
* self-hosted, frequently keyless, and have no canonical endpoint or
|
|
234
|
+
* default model — so the API key is optional but the base URL and model
|
|
235
|
+
* name must be provided. The hosted providers (OpenAI, Groq, Mistral)
|
|
236
|
+
* keep requiring a key and fall back to sensible defaults.
|
|
237
|
+
*/
|
|
238
|
+
const isGenericOpenAICompatible = config.llmType === LlmType.OpenAICompatible;
|
|
239
|
+
if (!isGenericOpenAICompatible && !config.apiKey) {
|
|
38
240
|
throw new BadDataException(`${config.llmType} API key is required`);
|
|
39
241
|
}
|
|
242
|
+
if (isGenericOpenAICompatible && !config.baseUrl) {
|
|
243
|
+
throw new BadDataException("Base URL is required for OpenAI-compatible providers (e.g. http://your-vllm-server:8000/v1)");
|
|
244
|
+
}
|
|
245
|
+
if (isGenericOpenAICompatible && !config.modelName) {
|
|
246
|
+
throw new BadDataException("Model Name is required for OpenAI-compatible providers. It must match a model your server exposes.");
|
|
247
|
+
}
|
|
40
248
|
const defaultBaseUrls = {
|
|
41
249
|
[LlmType.OpenAI]: "https://api.openai.com/v1",
|
|
42
250
|
[LlmType.Groq]: "https://api.groq.com/openai/v1",
|
|
@@ -52,21 +260,11 @@ class LLMService {
|
|
|
52
260
|
"https://api.openai.com/v1";
|
|
53
261
|
const modelName = config.modelName || defaultModels[config.llmType] || "gpt-4o";
|
|
54
262
|
const response = await API.post({
|
|
55
|
-
url: URL.fromString(
|
|
56
|
-
data:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
role: msg.role,
|
|
61
|
-
content: msg.content,
|
|
62
|
-
};
|
|
63
|
-
}),
|
|
64
|
-
temperature: (_a = request.temperature) !== null && _a !== void 0 ? _a : 0.7,
|
|
65
|
-
},
|
|
66
|
-
headers: {
|
|
67
|
-
Authorization: `Bearer ${config.apiKey}`,
|
|
68
|
-
"Content-Type": "application/json",
|
|
69
|
-
},
|
|
263
|
+
url: URL.fromString(this.buildOpenAICompatibleChatCompletionsUrl(baseUrl)),
|
|
264
|
+
data: this.buildOpenAIRequestBody(modelName, request),
|
|
265
|
+
headers: Object.assign({ "Content-Type": "application/json" }, (config.apiKey
|
|
266
|
+
? { Authorization: `Bearer ${config.apiKey}` }
|
|
267
|
+
: {})),
|
|
70
268
|
options: {
|
|
71
269
|
retries: 2,
|
|
72
270
|
exponentialBackoff: true,
|
|
@@ -82,23 +280,7 @@ class LLMService {
|
|
|
82
280
|
logger.error(response, logAttributes);
|
|
83
281
|
throw new BadDataException(`${config.llmType} API error: ${JSON.stringify(response.jsonData)}`);
|
|
84
282
|
}
|
|
85
|
-
|
|
86
|
-
const choices = jsonData["choices"];
|
|
87
|
-
if (!choices || choices.length === 0) {
|
|
88
|
-
throw new BadDataException(`No response from ${config.llmType}`);
|
|
89
|
-
}
|
|
90
|
-
const message = choices[0]["message"];
|
|
91
|
-
const usage = jsonData["usage"];
|
|
92
|
-
return {
|
|
93
|
-
content: message["content"],
|
|
94
|
-
usage: usage
|
|
95
|
-
? {
|
|
96
|
-
promptTokens: usage["prompt_tokens"],
|
|
97
|
-
completionTokens: usage["completion_tokens"],
|
|
98
|
-
totalTokens: usage["total_tokens"],
|
|
99
|
-
}
|
|
100
|
-
: undefined,
|
|
101
|
-
};
|
|
283
|
+
return this.parseOpenAIResponse(response.jsonData, config.llmType);
|
|
102
284
|
}
|
|
103
285
|
static buildAzureOpenAIChatCompletionsUrl(baseUrl) {
|
|
104
286
|
const trimmed = baseUrl.replace(/\/+$/, "");
|
|
@@ -112,7 +294,6 @@ class LLMService {
|
|
|
112
294
|
return `${pathPart}/chat/completions?${params.toString()}`;
|
|
113
295
|
}
|
|
114
296
|
static async getAzureOpenAICompletion(config, request) {
|
|
115
|
-
var _a;
|
|
116
297
|
if (!config.apiKey) {
|
|
117
298
|
throw new BadDataException("Azure OpenAI API key is required");
|
|
118
299
|
}
|
|
@@ -123,16 +304,7 @@ class LLMService {
|
|
|
123
304
|
const requestUrl = LLMService.buildAzureOpenAIChatCompletionsUrl(config.baseUrl);
|
|
124
305
|
const response = await API.post({
|
|
125
306
|
url: URL.fromString(requestUrl),
|
|
126
|
-
data:
|
|
127
|
-
model: modelName,
|
|
128
|
-
messages: request.messages.map((msg) => {
|
|
129
|
-
return {
|
|
130
|
-
role: msg.role,
|
|
131
|
-
content: msg.content,
|
|
132
|
-
};
|
|
133
|
-
}),
|
|
134
|
-
temperature: (_a = request.temperature) !== null && _a !== void 0 ? _a : 0.7,
|
|
135
|
-
},
|
|
307
|
+
data: this.buildOpenAIRequestBody(modelName, request),
|
|
136
308
|
headers: {
|
|
137
309
|
"api-key": config.apiKey,
|
|
138
310
|
"Content-Type": "application/json",
|
|
@@ -152,23 +324,60 @@ class LLMService {
|
|
|
152
324
|
logger.error(response, logAttributes);
|
|
153
325
|
throw new BadDataException(`Azure OpenAI API error: ${JSON.stringify(response.jsonData)}`);
|
|
154
326
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
completionTokens: usage["completion_tokens"],
|
|
168
|
-
totalTokens: usage["total_tokens"],
|
|
327
|
+
return this.parseOpenAIResponse(response.jsonData, "Azure OpenAI");
|
|
328
|
+
}
|
|
329
|
+
static toAnthropicMessages(messages) {
|
|
330
|
+
const anthropicMessages = [];
|
|
331
|
+
for (const msg of messages) {
|
|
332
|
+
if (msg.role === "system") {
|
|
333
|
+
continue; // hoisted separately
|
|
334
|
+
}
|
|
335
|
+
if (msg.role === "assistant" && msg.toolCalls && msg.toolCalls.length) {
|
|
336
|
+
const contentBlocks = [];
|
|
337
|
+
if (msg.content) {
|
|
338
|
+
contentBlocks.push({ type: "text", text: msg.content });
|
|
169
339
|
}
|
|
170
|
-
|
|
171
|
-
|
|
340
|
+
for (const toolCall of msg.toolCalls) {
|
|
341
|
+
contentBlocks.push({
|
|
342
|
+
type: "tool_use",
|
|
343
|
+
id: toolCall.id,
|
|
344
|
+
name: toolCall.name,
|
|
345
|
+
input: toolCall.arguments,
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
anthropicMessages.push({ role: "assistant", content: contentBlocks });
|
|
349
|
+
continue;
|
|
350
|
+
}
|
|
351
|
+
if (msg.role === "tool") {
|
|
352
|
+
const toolResultBlock = {
|
|
353
|
+
type: "tool_result",
|
|
354
|
+
tool_use_id: msg.toolCallId || "",
|
|
355
|
+
content: msg.content,
|
|
356
|
+
};
|
|
357
|
+
/*
|
|
358
|
+
* Tool results must be user messages. Merge consecutive tool
|
|
359
|
+
* results into one user message so roles keep alternating.
|
|
360
|
+
*/
|
|
361
|
+
const lastMessage = anthropicMessages[anthropicMessages.length - 1];
|
|
362
|
+
if (lastMessage &&
|
|
363
|
+
lastMessage["role"] === "user" &&
|
|
364
|
+
Array.isArray(lastMessage["content"])) {
|
|
365
|
+
lastMessage["content"].push(toolResultBlock);
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
anthropicMessages.push({
|
|
369
|
+
role: "user",
|
|
370
|
+
content: [toolResultBlock],
|
|
371
|
+
});
|
|
372
|
+
}
|
|
373
|
+
continue;
|
|
374
|
+
}
|
|
375
|
+
anthropicMessages.push({
|
|
376
|
+
role: msg.role,
|
|
377
|
+
content: msg.content,
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
return anthropicMessages;
|
|
172
381
|
}
|
|
173
382
|
static async getAnthropicCompletion(config, request) {
|
|
174
383
|
var _a;
|
|
@@ -177,28 +386,31 @@ class LLMService {
|
|
|
177
386
|
}
|
|
178
387
|
const baseUrl = config.baseUrl || "https://api.anthropic.com/v1";
|
|
179
388
|
const modelName = config.modelName || "claude-sonnet-4-20250514";
|
|
180
|
-
// Anthropic requires system message to be separate
|
|
181
389
|
let systemMessage = "";
|
|
182
|
-
const userMessages = [];
|
|
183
390
|
for (const msg of request.messages) {
|
|
184
391
|
if (msg.role === "system") {
|
|
185
392
|
systemMessage = msg.content;
|
|
186
393
|
}
|
|
187
|
-
else {
|
|
188
|
-
userMessages.push({
|
|
189
|
-
role: msg.role,
|
|
190
|
-
content: msg.content,
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
394
|
}
|
|
194
395
|
const requestData = {
|
|
195
396
|
model: modelName,
|
|
196
|
-
messages:
|
|
397
|
+
messages: this.toAnthropicMessages(request.messages),
|
|
197
398
|
temperature: (_a = request.temperature) !== null && _a !== void 0 ? _a : 0.7,
|
|
399
|
+
// Anthropic requires max_tokens on every request.
|
|
400
|
+
max_tokens: request.maxTokens || LLMService.ANTHROPIC_DEFAULT_MAX_TOKENS,
|
|
198
401
|
};
|
|
199
402
|
if (systemMessage) {
|
|
200
403
|
requestData["system"] = systemMessage;
|
|
201
404
|
}
|
|
405
|
+
if (request.tools && request.tools.length > 0) {
|
|
406
|
+
requestData["tools"] = request.tools.map((tool) => {
|
|
407
|
+
return {
|
|
408
|
+
name: tool.name,
|
|
409
|
+
description: tool.description,
|
|
410
|
+
input_schema: tool.inputSchema,
|
|
411
|
+
};
|
|
412
|
+
});
|
|
413
|
+
}
|
|
202
414
|
const response = await API.post({
|
|
203
415
|
url: URL.fromString(`${baseUrl}/messages`),
|
|
204
416
|
data: requestData,
|
|
@@ -227,15 +439,33 @@ class LLMService {
|
|
|
227
439
|
if (!content || content.length === 0) {
|
|
228
440
|
throw new BadDataException("No response from Anthropic");
|
|
229
441
|
}
|
|
230
|
-
const textContent = content
|
|
231
|
-
|
|
442
|
+
const textContent = content
|
|
443
|
+
.filter((block) => {
|
|
444
|
+
return block["type"] === "text";
|
|
445
|
+
})
|
|
446
|
+
.map((block) => {
|
|
447
|
+
return block["text"];
|
|
448
|
+
})
|
|
449
|
+
.join("");
|
|
450
|
+
const toolCalls = content
|
|
451
|
+
.filter((block) => {
|
|
452
|
+
return block["type"] === "tool_use";
|
|
453
|
+
})
|
|
454
|
+
.map((block) => {
|
|
455
|
+
return {
|
|
456
|
+
id: block["id"] || "",
|
|
457
|
+
name: block["name"] || "",
|
|
458
|
+
arguments: block["input"] || {},
|
|
459
|
+
};
|
|
232
460
|
});
|
|
233
|
-
if (!textContent) {
|
|
461
|
+
if (!textContent && toolCalls.length === 0) {
|
|
234
462
|
throw new BadDataException("No text content in Anthropic response");
|
|
235
463
|
}
|
|
236
464
|
const usage = jsonData["usage"];
|
|
237
465
|
return {
|
|
238
|
-
content: textContent
|
|
466
|
+
content: textContent,
|
|
467
|
+
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
468
|
+
stopReason: jsonData["stop_reason"] === "tool_use" ? "tool_use" : "stop",
|
|
239
469
|
usage: usage
|
|
240
470
|
? {
|
|
241
471
|
promptTokens: usage["input_tokens"],
|
|
@@ -246,27 +476,48 @@ class LLMService {
|
|
|
246
476
|
: undefined,
|
|
247
477
|
};
|
|
248
478
|
}
|
|
479
|
+
/*
|
|
480
|
+
* Ollama native /api/chat. Deliberately NOT routed through the
|
|
481
|
+
* OpenAI-compatible branch: Ollama deployments are keyless by design and
|
|
482
|
+
* the OpenAI branch requires an API key.
|
|
483
|
+
*/
|
|
249
484
|
static async getOllamaCompletion(config, request) {
|
|
250
485
|
var _a;
|
|
251
486
|
if (!config.baseUrl) {
|
|
252
487
|
throw new BadDataException("Ollama base URL is required");
|
|
253
488
|
}
|
|
254
489
|
const modelName = config.modelName || "llama2";
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
messages: request.messages.map((msg) => {
|
|
490
|
+
const requestData = {
|
|
491
|
+
model: modelName,
|
|
492
|
+
messages: request.messages.map((msg) => {
|
|
493
|
+
if (msg.role === "assistant" && msg.toolCalls && msg.toolCalls.length) {
|
|
260
494
|
return {
|
|
261
|
-
role:
|
|
262
|
-
content: msg.content,
|
|
495
|
+
role: "assistant",
|
|
496
|
+
content: msg.content || "",
|
|
497
|
+
tool_calls: msg.toolCalls.map((toolCall) => {
|
|
498
|
+
return {
|
|
499
|
+
function: {
|
|
500
|
+
name: toolCall.name,
|
|
501
|
+
arguments: toolCall.arguments,
|
|
502
|
+
},
|
|
503
|
+
};
|
|
504
|
+
}),
|
|
263
505
|
};
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
}
|
|
269
|
-
},
|
|
506
|
+
}
|
|
507
|
+
return {
|
|
508
|
+
role: msg.role,
|
|
509
|
+
content: msg.content,
|
|
510
|
+
};
|
|
511
|
+
}),
|
|
512
|
+
stream: false,
|
|
513
|
+
options: Object.assign({ temperature: (_a = request.temperature) !== null && _a !== void 0 ? _a : 0.7 }, (request.maxTokens ? { num_predict: request.maxTokens } : {})),
|
|
514
|
+
};
|
|
515
|
+
if (request.tools && request.tools.length > 0) {
|
|
516
|
+
requestData["tools"] = this.toOpenAITools(request.tools);
|
|
517
|
+
}
|
|
518
|
+
const response = await API.post({
|
|
519
|
+
url: URL.fromString(`${config.baseUrl}/api/chat`),
|
|
520
|
+
data: requestData,
|
|
270
521
|
headers: {
|
|
271
522
|
"Content-Type": "application/json",
|
|
272
523
|
},
|
|
@@ -290,8 +541,35 @@ class LLMService {
|
|
|
290
541
|
if (!message) {
|
|
291
542
|
throw new BadDataException("No response from Ollama");
|
|
292
543
|
}
|
|
544
|
+
const rawToolCalls = message["tool_calls"];
|
|
545
|
+
let toolCalls = undefined;
|
|
546
|
+
if (rawToolCalls && rawToolCalls.length > 0) {
|
|
547
|
+
toolCalls = rawToolCalls.map((rawToolCall, index) => {
|
|
548
|
+
const fn = rawToolCall["function"] || {};
|
|
549
|
+
let parsedArguments = {};
|
|
550
|
+
let parseError = undefined;
|
|
551
|
+
const rawArguments = fn["arguments"];
|
|
552
|
+
if (typeof rawArguments === "string") {
|
|
553
|
+
const parsed = this.parseToolCallArguments(rawArguments);
|
|
554
|
+
parsedArguments = parsed.arguments;
|
|
555
|
+
parseError = parsed.error;
|
|
556
|
+
}
|
|
557
|
+
else if (rawArguments && typeof rawArguments === "object") {
|
|
558
|
+
parsedArguments = rawArguments;
|
|
559
|
+
}
|
|
560
|
+
// Ollama does not return tool-call ids; synthesize stable ones.
|
|
561
|
+
return {
|
|
562
|
+
id: `tool_call_${index}`,
|
|
563
|
+
name: fn["name"] || "",
|
|
564
|
+
arguments: parsedArguments,
|
|
565
|
+
argumentsParseError: parseError,
|
|
566
|
+
};
|
|
567
|
+
});
|
|
568
|
+
}
|
|
293
569
|
return {
|
|
294
|
-
content: message["content"],
|
|
570
|
+
content: message["content"] || "",
|
|
571
|
+
toolCalls: toolCalls,
|
|
572
|
+
stopReason: toolCalls && toolCalls.length > 0 ? "tool_use" : "stop",
|
|
295
573
|
usage: undefined, // Ollama doesn't provide token usage in the same way
|
|
296
574
|
};
|
|
297
575
|
}
|
|
@@ -301,6 +579,12 @@ class LLMService {
|
|
|
301
579
|
* ?api-version=... in their configured base URL.
|
|
302
580
|
*/
|
|
303
581
|
LLMService.AZURE_OPENAI_DEFAULT_API_VERSION = "2024-10-21";
|
|
582
|
+
/*
|
|
583
|
+
* Anthropic wire format. System message is hoisted, tool results ride in
|
|
584
|
+
* user messages as tool_result blocks, and max_tokens is required by the
|
|
585
|
+
* API.
|
|
586
|
+
*/
|
|
587
|
+
LLMService.ANTHROPIC_DEFAULT_MAX_TOKENS = 4096;
|
|
304
588
|
export default LLMService;
|
|
305
589
|
__decorate([
|
|
306
590
|
CaptureSpan(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMService.js","sourceRoot":"","sources":["../../../../../Server/Utils/LLM/LLMService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LLMService.js","sourceRoot":"","sources":["../../../../../Server/Utils/LLM/LLMService.ts"],"names":[],"mappings":"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"}
|