@loonylabs/llm-middleware 2.10.0 → 2.11.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/README.md +16 -0
- package/dist/middleware/usecases/base/base-ai.usecase.d.ts +28 -0
- package/dist/middleware/usecases/base/base-ai.usecase.d.ts.map +1 -1
- package/dist/middleware/usecases/base/base-ai.usecase.js +32 -3
- package/dist/middleware/usecases/base/base-ai.usecase.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
## ✨ Features
|
|
39
39
|
|
|
40
40
|
- 🏗️ **Clean Architecture**: Base classes and interfaces for scalable AI applications
|
|
41
|
+
- ✨ **v2.11.0**: Dynamic system messages via `getSystemMessage(request)` override
|
|
41
42
|
- 🤖 **Multi-Provider Architecture**: Extensible provider system with strategy pattern
|
|
42
43
|
- ✅ **Ollama**: Fully supported with comprehensive parameter control
|
|
43
44
|
- ✅ **Anthropic Claude**: Complete support for Claude models (Opus, Sonnet, Haiku)
|
|
@@ -120,6 +121,21 @@ class MyAnthropicChatUseCase extends MyChatUseCase {
|
|
|
120
121
|
return LLMProvider.ANTHROPIC; // Use Claude instead of Ollama
|
|
121
122
|
}
|
|
122
123
|
}
|
|
124
|
+
|
|
125
|
+
// Dynamic system message based on request data (v2.11.0+)
|
|
126
|
+
class DynamicSystemMessageUseCase extends BaseAIUseCase<MyPrompt, MyRequest, MyResult> {
|
|
127
|
+
protected readonly systemMessage = "Default system message";
|
|
128
|
+
|
|
129
|
+
// Override to customize system message per-request
|
|
130
|
+
protected getSystemMessage(request?: MyRequest): string {
|
|
131
|
+
const context = request?.prompt?.context;
|
|
132
|
+
if (context === 'technical') {
|
|
133
|
+
return "You are a technical expert. Be precise and detailed.";
|
|
134
|
+
}
|
|
135
|
+
return this.systemMessage;
|
|
136
|
+
}
|
|
137
|
+
// ... other methods
|
|
138
|
+
}
|
|
123
139
|
```
|
|
124
140
|
|
|
125
141
|
<details>
|
|
@@ -16,6 +16,34 @@ export declare abstract class BaseAIUseCase<TPrompt = string, TRequest extends B
|
|
|
16
16
|
* Must be defined by each specific use case
|
|
17
17
|
*/
|
|
18
18
|
protected abstract readonly systemMessage: string;
|
|
19
|
+
/**
|
|
20
|
+
* Stores the current request during execution for access in getSystemMessage()
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
private _currentRequest?;
|
|
24
|
+
/**
|
|
25
|
+
* Get the system message for a specific request.
|
|
26
|
+
* Override this method in child classes to customize the system message per-request.
|
|
27
|
+
* Default implementation returns the static systemMessage property.
|
|
28
|
+
*
|
|
29
|
+
* @param request - The current request (optional for backward compatibility)
|
|
30
|
+
* @returns The system message to use for this request
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // Dynamic system message based on request data
|
|
35
|
+
* protected getSystemMessage(request?: MyRequest): string {
|
|
36
|
+
* const bookType = request?.data?.bookType;
|
|
37
|
+
* if (bookType) {
|
|
38
|
+
* return generateSystemMessageForBookType(bookType);
|
|
39
|
+
* }
|
|
40
|
+
* return this.systemMessage;
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @since 2.11.0
|
|
45
|
+
*/
|
|
46
|
+
protected getSystemMessage(request?: TRequest): string;
|
|
19
47
|
/**
|
|
20
48
|
* Default model configuration key to use across all use cases
|
|
21
49
|
* Can be overridden by specific use cases if needed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-ai.usecase.d.ts","sourceRoot":"","sources":["../../../../src/middleware/usecases/base/base-ai.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAkB,cAAc,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAEpF,OAAO,EAAgC,uBAAuB,EAAE,MAAM,wEAAwE,CAAC;AAG/I;;;;;;GAMG;AACH,8BAAsB,aAAa,CACjC,OAAO,GAAG,MAAM,EAChB,QAAQ,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAChE,OAAO,SAAS,YAAY,GAAG,YAAY;IAE3C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAElD;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,cAAc,CAAY;IAE9E;;;OAGG;IACH,SAAS,KAAK,cAAc,IAAI,cAAc,CAE7C;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,uBAAuB;IAI9E;;;OAGG;IACH,SAAS,KAAK,WAAW,IAAI,uBAAuB,CAEnD;IAED;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAShD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM;IAEzE;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,uBAAuB;IAI1D;;;;OAIG;IACH,SAAS,CAAC,WAAW,IAAI,WAAW;IAIpC;;;;OAIG;IACU,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"base-ai.usecase.d.ts","sourceRoot":"","sources":["../../../../src/middleware/usecases/base/base-ai.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAkB,cAAc,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAE5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAEpF,OAAO,EAAgC,uBAAuB,EAAE,MAAM,wEAAwE,CAAC;AAG/I;;;;;;GAMG;AACH,8BAAsB,aAAa,CACjC,OAAO,GAAG,MAAM,EAChB,QAAQ,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAChE,OAAO,SAAS,YAAY,GAAG,YAAY;IAE3C;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAElD;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAC,CAAW;IAEnC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM;IAItD;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,cAAc,CAAY;IAE9E;;;OAGG;IACH,SAAS,KAAK,cAAc,IAAI,cAAc,CAE7C;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,uBAAuB;IAI9E;;;OAGG;IACH,SAAS,KAAK,WAAW,IAAI,uBAAuB,CAEnD;IAED;;;OAGG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAShD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM;IAEzE;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,uBAAuB;IAI1D;;;;OAIG;IACH,SAAS,CAAC,WAAW,IAAI,WAAW;IAIpC;;;;OAIG;IACU,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IA0IzD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,SAAS,CAAC,4BAA4B,IAAI,yBAAyB;IAKnE;;;;;OAKG;cACa,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAKrG;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAC7B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAAE,GACxG,OAAO;CACX"}
|
|
@@ -14,6 +14,31 @@ const use_case_metrics_logger_1 = require("../../services/use-case-metrics-logge
|
|
|
14
14
|
* TResult: The result type (must extend BaseAIResult)
|
|
15
15
|
*/
|
|
16
16
|
class BaseAIUseCase {
|
|
17
|
+
/**
|
|
18
|
+
* Get the system message for a specific request.
|
|
19
|
+
* Override this method in child classes to customize the system message per-request.
|
|
20
|
+
* Default implementation returns the static systemMessage property.
|
|
21
|
+
*
|
|
22
|
+
* @param request - The current request (optional for backward compatibility)
|
|
23
|
+
* @returns The system message to use for this request
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* // Dynamic system message based on request data
|
|
28
|
+
* protected getSystemMessage(request?: MyRequest): string {
|
|
29
|
+
* const bookType = request?.data?.bookType;
|
|
30
|
+
* if (bookType) {
|
|
31
|
+
* return generateSystemMessageForBookType(bookType);
|
|
32
|
+
* }
|
|
33
|
+
* return this.systemMessage;
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @since 2.11.0
|
|
38
|
+
*/
|
|
39
|
+
getSystemMessage(request) {
|
|
40
|
+
return this.systemMessage;
|
|
41
|
+
}
|
|
17
42
|
/**
|
|
18
43
|
* The model configuration key to use for this specific use case
|
|
19
44
|
* If not overridden, uses the default model config key
|
|
@@ -82,6 +107,10 @@ class BaseAIUseCase {
|
|
|
82
107
|
if (!request.prompt) {
|
|
83
108
|
throw new Error('Valid prompt must be provided');
|
|
84
109
|
}
|
|
110
|
+
// Store current request for getSystemMessage() access
|
|
111
|
+
this._currentRequest = request;
|
|
112
|
+
// Get effective system message (may be dynamic based on request)
|
|
113
|
+
const effectiveSystemMessage = this.getSystemMessage(request);
|
|
85
114
|
// Format the raw prompt using formatUserMessage
|
|
86
115
|
const formattedPrompt = this.formatUserMessage(request.prompt);
|
|
87
116
|
// Apply the user template to create the final message
|
|
@@ -106,7 +135,7 @@ class BaseAIUseCase {
|
|
|
106
135
|
// Get the provider for this use case
|
|
107
136
|
const provider = this.getProvider();
|
|
108
137
|
// Call the LLM service with the configured provider
|
|
109
|
-
const result = await llm_1.llmService.callWithSystemMessage(formattedUserMessage,
|
|
138
|
+
const result = await llm_1.llmService.callWithSystemMessage(formattedUserMessage, effectiveSystemMessage, {
|
|
110
139
|
model: this.modelConfig.name,
|
|
111
140
|
temperature: validatedParams.temperature,
|
|
112
141
|
authToken: this.modelConfig.bearerToken,
|
|
@@ -136,7 +165,7 @@ class BaseAIUseCase {
|
|
|
136
165
|
};
|
|
137
166
|
}
|
|
138
167
|
// Calculate and log metrics
|
|
139
|
-
const metrics = use_case_metrics_logger_1.UseCaseMetricsLoggerService.calculateMetrics(startTime,
|
|
168
|
+
const metrics = use_case_metrics_logger_1.UseCaseMetricsLoggerService.calculateMetrics(startTime, effectiveSystemMessage, formattedUserMessage, result.message.content, thinking, this.modelConfig.name, success, errorMessage, definedParams, actualTokens // Pass actual tokens from provider
|
|
140
169
|
);
|
|
141
170
|
// Log completion with metrics
|
|
142
171
|
use_case_metrics_logger_1.UseCaseMetricsLoggerService.logCompletion(this.constructor.name, metrics);
|
|
@@ -146,7 +175,7 @@ class BaseAIUseCase {
|
|
|
146
175
|
catch (error) {
|
|
147
176
|
errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
148
177
|
// Calculate metrics for failed execution
|
|
149
|
-
const metrics = use_case_metrics_logger_1.UseCaseMetricsLoggerService.calculateMetrics(startTime,
|
|
178
|
+
const metrics = use_case_metrics_logger_1.UseCaseMetricsLoggerService.calculateMetrics(startTime, effectiveSystemMessage, formattedUserMessage, '', thinking, this.modelConfig.name, false, errorMessage, definedParams);
|
|
150
179
|
// Log completion with error
|
|
151
180
|
use_case_metrics_logger_1.UseCaseMetricsLoggerService.logCompletion(this.constructor.name, metrics);
|
|
152
181
|
throw error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-ai.usecase.js","sourceRoot":"","sources":["../../../../src/middleware/usecases/base/base-ai.usecase.ts"],"names":[],"mappings":";;;AAAA,4CAA6D;AAC7D,qEAA4G;AAC5G,0FAAqF;AAIrF,4HAA+I;AAC/I,oFAAqF;AAErF;;;;;;GAMG;AACH,MAAsB,aAAa;IAiBjC;;;OAGG;IACH,IAAc,cAAc;QAC1B,OAAQ,IAAI,CAAC,WAAoC,CAAC,wBAAwB,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACO,sBAAsB,CAAC,GAAmB;QAClD,OAAO,IAAA,8BAAc,EAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,IAAc,WAAW;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACO,iBAAiB,CAAC,MAAW;QACrC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,4CAA4C;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IASD;;;;OAIG;IACO,qBAAqB;QAC7B,OAAO,EAAE,CAAC,CAAC,wBAAwB;IACrC,CAAC;IAED;;;;OAIG;IACO,WAAW;QACnB,OAAO,iBAAW,CAAC,MAAM,CAAC,CAAC,6CAA6C;IAC1E,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO,CAAC,OAAiB;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,gDAAgD;QAChD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/D,sDAAsD;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,oBAAoB,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,4CAA4C;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE/C,6DAA6D;QAC7D,MAAM,eAAe,GAAG,8DAA4B,CAAC,sBAAsB,CACzE;YACE,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;SAC1C,EACD,SAAS,CACV,CAAC;QAEF,sBAAsB;QACtB,MAAM,eAAe,GAAG,8DAA4B,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACzF,MAAM,aAAa,GAAG,8DAA4B,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAEzF,0CAA0C;QAC1C,qDAA2B,CAAC,QAAQ,CAClC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,oBAAoB,CAAC,MAAM,EAC3B,eAAe,CAAC,WAAW,EAC3B,aAAa,CACd,CAAC;QAEF,IAAI,CAAC;YACH,qCAAqC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAEpC,oDAAoD;YACpD,MAAM,MAAM,GAAG,MAAM,gBAAU,CAAC,qBAAqB,CACnD,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"base-ai.usecase.js","sourceRoot":"","sources":["../../../../src/middleware/usecases/base/base-ai.usecase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loonylabs/llm-middleware",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.0",
|
|
4
4
|
"description": "Complete middleware infrastructure for LLM-based backends with multi-provider support (Ollama, Anthropic, OpenAI, Google)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|