@loonylabs/llm-middleware 2.0.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/.env.example +21 -0
- package/LICENSE +21 -0
- package/README.md +629 -0
- package/dist/examples/character-generator/character-generator.messages.d.ts +9 -0
- package/dist/examples/character-generator/character-generator.messages.d.ts.map +1 -0
- package/dist/examples/character-generator/character-generator.messages.js +54 -0
- package/dist/examples/character-generator/character-generator.messages.js.map +1 -0
- package/dist/examples/character-generator/character-generator.usecase.d.ts +129 -0
- package/dist/examples/character-generator/character-generator.usecase.d.ts.map +1 -0
- package/dist/examples/character-generator/character-generator.usecase.js +209 -0
- package/dist/examples/character-generator/character-generator.usecase.js.map +1 -0
- package/dist/examples/character-generator/create-character.messages.d.ts +11 -0
- package/dist/examples/character-generator/create-character.messages.d.ts.map +1 -0
- package/dist/examples/character-generator/create-character.messages.js +38 -0
- package/dist/examples/character-generator/create-character.messages.js.map +1 -0
- package/dist/examples/flat-formatter-demo/product-preset.example.d.ts +99 -0
- package/dist/examples/flat-formatter-demo/product-preset.example.d.ts.map +1 -0
- package/dist/examples/flat-formatter-demo/product-preset.example.js +85 -0
- package/dist/examples/flat-formatter-demo/product-preset.example.js.map +1 -0
- package/dist/examples/simple-chat/chat.controller.d.ts +15 -0
- package/dist/examples/simple-chat/chat.controller.d.ts.map +1 -0
- package/dist/examples/simple-chat/chat.controller.js +39 -0
- package/dist/examples/simple-chat/chat.controller.js.map +1 -0
- package/dist/examples/simple-chat/chat.messages.d.ts +10 -0
- package/dist/examples/simple-chat/chat.messages.d.ts.map +1 -0
- package/dist/examples/simple-chat/chat.messages.js +17 -0
- package/dist/examples/simple-chat/chat.messages.js.map +1 -0
- package/dist/examples/simple-chat/chat.usecase.d.ts +33 -0
- package/dist/examples/simple-chat/chat.usecase.d.ts.map +1 -0
- package/dist/examples/simple-chat/chat.usecase.js +40 -0
- package/dist/examples/simple-chat/chat.usecase.js.map +1 -0
- package/dist/examples/simple-chat/index.d.ts +3 -0
- package/dist/examples/simple-chat/index.d.ts.map +1 -0
- package/dist/examples/simple-chat/index.js +57 -0
- package/dist/examples/simple-chat/index.js.map +1 -0
- package/dist/examples/story-generator/story-generator.messages.d.ts +13 -0
- package/dist/examples/story-generator/story-generator.messages.d.ts.map +1 -0
- package/dist/examples/story-generator/story-generator.messages.js +41 -0
- package/dist/examples/story-generator/story-generator.messages.js.map +1 -0
- package/dist/examples/story-generator/story-generator.usecase.d.ts +115 -0
- package/dist/examples/story-generator/story-generator.usecase.d.ts.map +1 -0
- package/dist/examples/story-generator/story-generator.usecase.js +121 -0
- package/dist/examples/story-generator/story-generator.usecase.js.map +1 -0
- package/dist/examples/tweet-generator/tweet-generator.messages.d.ts +15 -0
- package/dist/examples/tweet-generator/tweet-generator.messages.d.ts.map +1 -0
- package/dist/examples/tweet-generator/tweet-generator.messages.js +40 -0
- package/dist/examples/tweet-generator/tweet-generator.messages.js.map +1 -0
- package/dist/examples/tweet-generator/tweet-generator.usecase.d.ts +92 -0
- package/dist/examples/tweet-generator/tweet-generator.usecase.d.ts.map +1 -0
- package/dist/examples/tweet-generator/tweet-generator.usecase.js +116 -0
- package/dist/examples/tweet-generator/tweet-generator.usecase.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/controllers/base/base.controller.d.ts +16 -0
- package/dist/middleware/controllers/base/base.controller.d.ts.map +1 -0
- package/dist/middleware/controllers/base/base.controller.js +38 -0
- package/dist/middleware/controllers/base/base.controller.js.map +1 -0
- package/dist/middleware/controllers/base/index.d.ts +2 -0
- package/dist/middleware/controllers/base/index.d.ts.map +1 -0
- package/dist/middleware/controllers/base/index.js +19 -0
- package/dist/middleware/controllers/base/index.js.map +1 -0
- package/dist/middleware/index.d.ts +7 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +27 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/services/data-flow-logger/data-flow-logger.service.d.ts +127 -0
- package/dist/middleware/services/data-flow-logger/data-flow-logger.service.d.ts.map +1 -0
- package/dist/middleware/services/data-flow-logger/data-flow-logger.service.js +341 -0
- package/dist/middleware/services/data-flow-logger/data-flow-logger.service.js.map +1 -0
- package/dist/middleware/services/data-flow-logger/index.d.ts +2 -0
- package/dist/middleware/services/data-flow-logger/index.d.ts.map +1 -0
- package/dist/middleware/services/data-flow-logger/index.js +18 -0
- package/dist/middleware/services/data-flow-logger/index.js.map +1 -0
- package/dist/middleware/services/flat-formatter/flat-formatter.service.d.ts +86 -0
- package/dist/middleware/services/flat-formatter/flat-formatter.service.d.ts.map +1 -0
- package/dist/middleware/services/flat-formatter/flat-formatter.service.js +333 -0
- package/dist/middleware/services/flat-formatter/flat-formatter.service.js.map +1 -0
- package/dist/middleware/services/flat-formatter/index.d.ts +4 -0
- package/dist/middleware/services/flat-formatter/index.d.ts.map +1 -0
- package/dist/middleware/services/flat-formatter/index.js +28 -0
- package/dist/middleware/services/flat-formatter/index.js.map +1 -0
- package/dist/middleware/services/flat-formatter/presets/base-preset.d.ts +68 -0
- package/dist/middleware/services/flat-formatter/presets/base-preset.d.ts.map +1 -0
- package/dist/middleware/services/flat-formatter/presets/base-preset.js +238 -0
- package/dist/middleware/services/flat-formatter/presets/base-preset.js.map +1 -0
- package/dist/middleware/services/flat-formatter/presets/index.d.ts +5 -0
- package/dist/middleware/services/flat-formatter/presets/index.d.ts.map +1 -0
- package/dist/middleware/services/flat-formatter/presets/index.js +28 -0
- package/dist/middleware/services/flat-formatter/presets/index.js.map +1 -0
- package/dist/middleware/services/flat-formatter/presets/types/entity-types.d.ts +23 -0
- package/dist/middleware/services/flat-formatter/presets/types/entity-types.d.ts.map +1 -0
- package/dist/middleware/services/flat-formatter/presets/types/entity-types.js +3 -0
- package/dist/middleware/services/flat-formatter/presets/types/entity-types.js.map +1 -0
- package/dist/middleware/services/flat-formatter/presets/types/processed-entity-types.d.ts +30 -0
- package/dist/middleware/services/flat-formatter/presets/types/processed-entity-types.d.ts.map +1 -0
- package/dist/middleware/services/flat-formatter/presets/types/processed-entity-types.js +3 -0
- package/dist/middleware/services/flat-formatter/presets/types/processed-entity-types.js.map +1 -0
- package/dist/middleware/services/index.d.ts +10 -0
- package/dist/middleware/services/index.d.ts.map +1 -0
- package/dist/middleware/services/index.js +28 -0
- package/dist/middleware/services/index.js.map +1 -0
- package/dist/middleware/services/json-cleaner/helpers/index.d.ts +3 -0
- package/dist/middleware/services/json-cleaner/helpers/index.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/helpers/index.js +19 -0
- package/dist/middleware/services/json-cleaner/helpers/index.js.map +1 -0
- package/dist/middleware/services/json-cleaner/helpers/json-cleaner.analyzer.d.ts +52 -0
- package/dist/middleware/services/json-cleaner/helpers/json-cleaner.analyzer.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/helpers/json-cleaner.analyzer.js +271 -0
- package/dist/middleware/services/json-cleaner/helpers/json-cleaner.analyzer.js.map +1 -0
- package/dist/middleware/services/json-cleaner/helpers/json-validation.helper.d.ts +83 -0
- package/dist/middleware/services/json-cleaner/helpers/json-validation.helper.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/helpers/json-validation.helper.js +326 -0
- package/dist/middleware/services/json-cleaner/helpers/json-validation.helper.js.map +1 -0
- package/dist/middleware/services/json-cleaner/index.d.ts +9 -0
- package/dist/middleware/services/json-cleaner/index.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/index.js +31 -0
- package/dist/middleware/services/json-cleaner/index.js.map +1 -0
- package/dist/middleware/services/json-cleaner/json-cleaner-logger.d.ts +59 -0
- package/dist/middleware/services/json-cleaner/json-cleaner-logger.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/json-cleaner-logger.js +164 -0
- package/dist/middleware/services/json-cleaner/json-cleaner-logger.js.map +1 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.orchestrator.d.ts +56 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.orchestrator.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.orchestrator.js +178 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.orchestrator.js.map +1 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.service.d.ts +94 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.service.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.service.js +175 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.service.js.map +1 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.types.d.ts +92 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.types.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.types.js +3 -0
- package/dist/middleware/services/json-cleaner/json-cleaner.types.js.map +1 -0
- package/dist/middleware/services/json-cleaner/parsers/index.d.ts +4 -0
- package/dist/middleware/services/json-cleaner/parsers/index.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/parsers/index.js +20 -0
- package/dist/middleware/services/json-cleaner/parsers/index.js.map +1 -0
- package/dist/middleware/services/json-cleaner/parsers/json-extractor.parser.d.ts +32 -0
- package/dist/middleware/services/json-cleaner/parsers/json-extractor.parser.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/parsers/json-extractor.parser.js +148 -0
- package/dist/middleware/services/json-cleaner/parsers/json-extractor.parser.js.map +1 -0
- package/dist/middleware/services/json-cleaner/parsers/markdown.parser.d.ts +19 -0
- package/dist/middleware/services/json-cleaner/parsers/markdown.parser.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/parsers/markdown.parser.js +43 -0
- package/dist/middleware/services/json-cleaner/parsers/markdown.parser.js.map +1 -0
- package/dist/middleware/services/json-cleaner/parsers/think-tag.parser.d.ts +19 -0
- package/dist/middleware/services/json-cleaner/parsers/think-tag.parser.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/parsers/think-tag.parser.js +37 -0
- package/dist/middleware/services/json-cleaner/parsers/think-tag.parser.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-context.d.ts +40 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-context.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-context.js +138 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-context.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-engine.d.ts +74 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-engine.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-engine.js +230 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-engine.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-recipe.d.ts +16 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-recipe.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-recipe.js +179 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/cleaning-recipe.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/conditions.d.ts +88 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/conditions.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/conditions.js +178 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/conditions.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-builder.d.ts +51 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-builder.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-builder.js +219 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-builder.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-steps.d.ts +62 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-steps.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-steps.js +217 -0
- package/dist/middleware/services/json-cleaner/recipe-system/core/recipe-steps.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/factory.d.ts +46 -0
- package/dist/middleware/services/json-cleaner/recipe-system/factory.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/factory.js +52 -0
- package/dist/middleware/services/json-cleaner/recipe-system/factory.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/index.d.ts +12 -0
- package/dist/middleware/services/json-cleaner/recipe-system/index.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/index.js +28 -0
- package/dist/middleware/services/json-cleaner/recipe-system/index.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/operations/detectors.d.ts +55 -0
- package/dist/middleware/services/json-cleaner/recipe-system/operations/detectors.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/operations/detectors.js +348 -0
- package/dist/middleware/services/json-cleaner/recipe-system/operations/detectors.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/operations/fixers.d.ts +70 -0
- package/dist/middleware/services/json-cleaner/recipe-system/operations/fixers.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/operations/fixers.js +568 -0
- package/dist/middleware/services/json-cleaner/recipe-system/operations/fixers.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/recipes/templates.d.ts +11 -0
- package/dist/middleware/services/json-cleaner/recipe-system/recipes/templates.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/recipes/templates.js +103 -0
- package/dist/middleware/services/json-cleaner/recipe-system/recipes/templates.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/types/operation.types.d.ts +171 -0
- package/dist/middleware/services/json-cleaner/recipe-system/types/operation.types.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/types/operation.types.js +3 -0
- package/dist/middleware/services/json-cleaner/recipe-system/types/operation.types.js.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/types/recipe.types.d.ts +224 -0
- package/dist/middleware/services/json-cleaner/recipe-system/types/recipe.types.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/recipe-system/types/recipe.types.js +3 -0
- package/dist/middleware/services/json-cleaner/recipe-system/types/recipe.types.js.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/aggressive.cleaner.d.ts +29 -0
- package/dist/middleware/services/json-cleaner/strategies/aggressive.cleaner.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/aggressive.cleaner.js +128 -0
- package/dist/middleware/services/json-cleaner/strategies/aggressive.cleaner.js.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/base-cleaner.strategy.d.ts +38 -0
- package/dist/middleware/services/json-cleaner/strategies/base-cleaner.strategy.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/base-cleaner.strategy.js +18 -0
- package/dist/middleware/services/json-cleaner/strategies/base-cleaner.strategy.js.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/comma-fixer.cleaner.d.ts +65 -0
- package/dist/middleware/services/json-cleaner/strategies/comma-fixer.cleaner.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/comma-fixer.cleaner.js +420 -0
- package/dist/middleware/services/json-cleaner/strategies/comma-fixer.cleaner.js.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/control-character.cleaner.d.ts +50 -0
- package/dist/middleware/services/json-cleaner/strategies/control-character.cleaner.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/control-character.cleaner.js +416 -0
- package/dist/middleware/services/json-cleaner/strategies/control-character.cleaner.js.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/duplicate-key.cleaner.d.ts +27 -0
- package/dist/middleware/services/json-cleaner/strategies/duplicate-key.cleaner.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/duplicate-key.cleaner.js +84 -0
- package/dist/middleware/services/json-cleaner/strategies/duplicate-key.cleaner.js.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/index.d.ts +8 -0
- package/dist/middleware/services/json-cleaner/strategies/index.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/index.js +24 -0
- package/dist/middleware/services/json-cleaner/strategies/index.js.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/string-escaper.cleaner.d.ts +23 -0
- package/dist/middleware/services/json-cleaner/strategies/string-escaper.cleaner.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/string-escaper.cleaner.js +65 -0
- package/dist/middleware/services/json-cleaner/strategies/string-escaper.cleaner.js.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/structural-repair.cleaner.d.ts +48 -0
- package/dist/middleware/services/json-cleaner/strategies/structural-repair.cleaner.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/strategies/structural-repair.cleaner.js +188 -0
- package/dist/middleware/services/json-cleaner/strategies/structural-repair.cleaner.js.map +1 -0
- package/dist/middleware/services/json-cleaner/utils/console-logger.util.d.ts +50 -0
- package/dist/middleware/services/json-cleaner/utils/console-logger.util.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/utils/console-logger.util.js +95 -0
- package/dist/middleware/services/json-cleaner/utils/console-logger.util.js.map +1 -0
- package/dist/middleware/services/json-cleaner/utils/control-char-diagnostics.util.d.ts +59 -0
- package/dist/middleware/services/json-cleaner/utils/control-char-diagnostics.util.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/utils/control-char-diagnostics.util.js +326 -0
- package/dist/middleware/services/json-cleaner/utils/control-char-diagnostics.util.js.map +1 -0
- package/dist/middleware/services/json-cleaner/utils/index.d.ts +3 -0
- package/dist/middleware/services/json-cleaner/utils/index.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/utils/index.js +19 -0
- package/dist/middleware/services/json-cleaner/utils/index.js.map +1 -0
- package/dist/middleware/services/json-cleaner/utils/json-inspector.util.d.ts +27 -0
- package/dist/middleware/services/json-cleaner/utils/json-inspector.util.d.ts.map +1 -0
- package/dist/middleware/services/json-cleaner/utils/json-inspector.util.js +139 -0
- package/dist/middleware/services/json-cleaner/utils/json-inspector.util.js.map +1 -0
- package/dist/middleware/services/llm/index.d.ts +5 -0
- package/dist/middleware/services/llm/index.d.ts.map +1 -0
- package/dist/middleware/services/llm/index.js +25 -0
- package/dist/middleware/services/llm/index.js.map +1 -0
- package/dist/middleware/services/llm/llm.service.d.ts +43 -0
- package/dist/middleware/services/llm/llm.service.d.ts.map +1 -0
- package/dist/middleware/services/llm/llm.service.js +70 -0
- package/dist/middleware/services/llm/llm.service.js.map +1 -0
- package/dist/middleware/services/llm/providers/base-llm-provider.d.ts +37 -0
- package/dist/middleware/services/llm/providers/base-llm-provider.d.ts.map +1 -0
- package/dist/middleware/services/llm/providers/base-llm-provider.js +41 -0
- package/dist/middleware/services/llm/providers/base-llm-provider.js.map +1 -0
- package/dist/middleware/services/llm/providers/index.d.ts +3 -0
- package/dist/middleware/services/llm/providers/index.d.ts.map +1 -0
- package/dist/middleware/services/llm/providers/index.js +25 -0
- package/dist/middleware/services/llm/providers/index.js.map +1 -0
- package/dist/middleware/services/llm/providers/ollama-provider.d.ts +39 -0
- package/dist/middleware/services/llm/providers/ollama-provider.d.ts.map +1 -0
- package/dist/middleware/services/llm/providers/ollama-provider.js +398 -0
- package/dist/middleware/services/llm/providers/ollama-provider.js.map +1 -0
- package/dist/middleware/services/llm/types/common.types.d.ts +81 -0
- package/dist/middleware/services/llm/types/common.types.d.ts.map +1 -0
- package/dist/middleware/services/llm/types/common.types.js +17 -0
- package/dist/middleware/services/llm/types/common.types.js.map +1 -0
- package/dist/middleware/services/llm/types/index.d.ts +3 -0
- package/dist/middleware/services/llm/types/index.d.ts.map +1 -0
- package/dist/middleware/services/llm/types/index.js +21 -0
- package/dist/middleware/services/llm/types/index.js.map +1 -0
- package/dist/middleware/services/llm/types/ollama.types.d.ts +48 -0
- package/dist/middleware/services/llm/types/ollama.types.d.ts.map +1 -0
- package/dist/middleware/services/llm/types/ollama.types.js +8 -0
- package/dist/middleware/services/llm/types/ollama.types.js.map +1 -0
- package/dist/middleware/services/llm/utils/debug-llm.utils.d.ts +42 -0
- package/dist/middleware/services/llm/utils/debug-llm.utils.d.ts.map +1 -0
- package/dist/middleware/services/llm/utils/debug-llm.utils.js +325 -0
- package/dist/middleware/services/llm/utils/debug-llm.utils.js.map +1 -0
- package/dist/middleware/services/llm/utils/index.d.ts +3 -0
- package/dist/middleware/services/llm/utils/index.d.ts.map +1 -0
- package/dist/middleware/services/llm/utils/index.js +19 -0
- package/dist/middleware/services/llm/utils/index.js.map +1 -0
- package/dist/middleware/services/llm/utils/text-analysis.utils.d.ts +75 -0
- package/dist/middleware/services/llm/utils/text-analysis.utils.d.ts.map +1 -0
- package/dist/middleware/services/llm/utils/text-analysis.utils.js +197 -0
- package/dist/middleware/services/llm/utils/text-analysis.utils.js.map +1 -0
- package/dist/middleware/services/model-parameter-manager/index.d.ts +2 -0
- package/dist/middleware/services/model-parameter-manager/index.d.ts.map +1 -0
- package/dist/middleware/services/model-parameter-manager/index.js +18 -0
- package/dist/middleware/services/model-parameter-manager/index.js.map +1 -0
- package/dist/middleware/services/model-parameter-manager/model-parameter-manager.service.d.ts +165 -0
- package/dist/middleware/services/model-parameter-manager/model-parameter-manager.service.d.ts.map +1 -0
- package/dist/middleware/services/model-parameter-manager/model-parameter-manager.service.js +325 -0
- package/dist/middleware/services/model-parameter-manager/model-parameter-manager.service.js.map +1 -0
- package/dist/middleware/services/request-formatter/index.d.ts +2 -0
- package/dist/middleware/services/request-formatter/index.d.ts.map +1 -0
- package/dist/middleware/services/request-formatter/index.js +18 -0
- package/dist/middleware/services/request-formatter/index.js.map +1 -0
- package/dist/middleware/services/request-formatter/request-formatter.service.d.ts +71 -0
- package/dist/middleware/services/request-formatter/request-formatter.service.d.ts.map +1 -0
- package/dist/middleware/services/request-formatter/request-formatter.service.js +230 -0
- package/dist/middleware/services/request-formatter/request-formatter.service.js.map +1 -0
- package/dist/middleware/services/response-processor.service.d.ts +106 -0
- package/dist/middleware/services/response-processor.service.d.ts.map +1 -0
- package/dist/middleware/services/response-processor.service.js +236 -0
- package/dist/middleware/services/response-processor.service.js.map +1 -0
- package/dist/middleware/services/token-estimator/index.d.ts +2 -0
- package/dist/middleware/services/token-estimator/index.d.ts.map +1 -0
- package/dist/middleware/services/token-estimator/index.js +18 -0
- package/dist/middleware/services/token-estimator/index.js.map +1 -0
- package/dist/middleware/services/token-estimator/token-estimator.service.d.ts +97 -0
- package/dist/middleware/services/token-estimator/token-estimator.service.d.ts.map +1 -0
- package/dist/middleware/services/token-estimator/token-estimator.service.js +190 -0
- package/dist/middleware/services/token-estimator/token-estimator.service.js.map +1 -0
- package/dist/middleware/services/use-case-metrics-logger/index.d.ts +2 -0
- package/dist/middleware/services/use-case-metrics-logger/index.d.ts.map +1 -0
- package/dist/middleware/services/use-case-metrics-logger/index.js +18 -0
- package/dist/middleware/services/use-case-metrics-logger/index.js.map +1 -0
- package/dist/middleware/services/use-case-metrics-logger/use-case-metrics-logger.service.d.ts +89 -0
- package/dist/middleware/services/use-case-metrics-logger/use-case-metrics-logger.service.d.ts.map +1 -0
- package/dist/middleware/services/use-case-metrics-logger/use-case-metrics-logger.service.js +112 -0
- package/dist/middleware/services/use-case-metrics-logger/use-case-metrics-logger.service.js.map +1 -0
- package/dist/middleware/shared/config/app.config.d.ts +3 -0
- package/dist/middleware/shared/config/app.config.d.ts.map +1 -0
- package/dist/middleware/shared/config/app.config.js +76 -0
- package/dist/middleware/shared/config/app.config.js.map +1 -0
- package/dist/middleware/shared/config/index.d.ts +4 -0
- package/dist/middleware/shared/config/index.d.ts.map +1 -0
- package/dist/middleware/shared/config/index.js +21 -0
- package/dist/middleware/shared/config/index.js.map +1 -0
- package/dist/middleware/shared/config/logging.config.d.ts +49 -0
- package/dist/middleware/shared/config/logging.config.d.ts.map +1 -0
- package/dist/middleware/shared/config/logging.config.js +16 -0
- package/dist/middleware/shared/config/logging.config.js.map +1 -0
- package/dist/middleware/shared/config/models.config.d.ts +19 -0
- package/dist/middleware/shared/config/models.config.d.ts.map +1 -0
- package/dist/middleware/shared/config/models.config.js +39 -0
- package/dist/middleware/shared/config/models.config.js.map +1 -0
- package/dist/middleware/shared/constants/index.d.ts +2 -0
- package/dist/middleware/shared/constants/index.d.ts.map +1 -0
- package/dist/middleware/shared/constants/index.js +19 -0
- package/dist/middleware/shared/constants/index.js.map +1 -0
- package/dist/middleware/shared/constants/json-formatting.constants.d.ts +36 -0
- package/dist/middleware/shared/constants/json-formatting.constants.d.ts.map +1 -0
- package/dist/middleware/shared/constants/json-formatting.constants.js +81 -0
- package/dist/middleware/shared/constants/json-formatting.constants.js.map +1 -0
- package/dist/middleware/shared/types/base-request.types.d.ts +27 -0
- package/dist/middleware/shared/types/base-request.types.d.ts.map +1 -0
- package/dist/middleware/shared/types/base-request.types.js +3 -0
- package/dist/middleware/shared/types/base-request.types.js.map +1 -0
- package/dist/middleware/shared/types/client-info.d.ts +8 -0
- package/dist/middleware/shared/types/client-info.d.ts.map +1 -0
- package/dist/middleware/shared/types/client-info.js +3 -0
- package/dist/middleware/shared/types/client-info.js.map +1 -0
- package/dist/middleware/shared/types/index.d.ts +43 -0
- package/dist/middleware/shared/types/index.d.ts.map +1 -0
- package/dist/middleware/shared/types/index.js +20 -0
- package/dist/middleware/shared/types/index.js.map +1 -0
- package/dist/middleware/shared/utils/http.utils.d.ts +25 -0
- package/dist/middleware/shared/utils/http.utils.d.ts.map +1 -0
- package/dist/middleware/shared/utils/http.utils.js +44 -0
- package/dist/middleware/shared/utils/http.utils.js.map +1 -0
- package/dist/middleware/shared/utils/index.d.ts +5 -0
- package/dist/middleware/shared/utils/index.d.ts.map +1 -0
- package/dist/middleware/shared/utils/index.js +22 -0
- package/dist/middleware/shared/utils/index.js.map +1 -0
- package/dist/middleware/shared/utils/logging.utils.d.ts +30 -0
- package/dist/middleware/shared/utils/logging.utils.d.ts.map +1 -0
- package/dist/middleware/shared/utils/logging.utils.js +91 -0
- package/dist/middleware/shared/utils/logging.utils.js.map +1 -0
- package/dist/middleware/shared/utils/memory-management.utils.d.ts +10 -0
- package/dist/middleware/shared/utils/memory-management.utils.d.ts.map +1 -0
- package/dist/middleware/shared/utils/memory-management.utils.js +31 -0
- package/dist/middleware/shared/utils/memory-management.utils.js.map +1 -0
- package/dist/middleware/shared/utils/validation.utils.d.ts +12 -0
- package/dist/middleware/shared/utils/validation.utils.d.ts.map +1 -0
- package/dist/middleware/shared/utils/validation.utils.js +36 -0
- package/dist/middleware/shared/utils/validation.utils.js.map +1 -0
- package/dist/middleware/usecases/base/base-ai.usecase.d.ts +72 -0
- package/dist/middleware/usecases/base/base-ai.usecase.d.ts.map +1 -0
- package/dist/middleware/usecases/base/base-ai.usecase.js +125 -0
- package/dist/middleware/usecases/base/base-ai.usecase.js.map +1 -0
- package/dist/middleware/usecases/base/index.d.ts +2 -0
- package/dist/middleware/usecases/base/index.d.ts.map +1 -0
- package/dist/middleware/usecases/base/index.js +18 -0
- package/dist/middleware/usecases/base/index.js.map +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModelParameterManagerService = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Service for managing and validating model parameters for AI requests
|
|
6
|
+
* Handles parameter combination, validation, and conversion to API formats
|
|
7
|
+
*/
|
|
8
|
+
class ModelParameterManagerService {
|
|
9
|
+
/**
|
|
10
|
+
* Get the effective model parameters, combining config defaults and use case overrides
|
|
11
|
+
* @param modelConfig The model configuration from models.config
|
|
12
|
+
* @param overrides Optional overrides from the use case
|
|
13
|
+
* @returns Final model parameters to use
|
|
14
|
+
*/
|
|
15
|
+
static getEffectiveParameters(modelConfig, overrides = {}) {
|
|
16
|
+
return {
|
|
17
|
+
temperature: overrides.temperatureOverride ?? modelConfig.temperature ?? this.DEFAULT_TEMPERATURE,
|
|
18
|
+
repeatPenalty: overrides.repeatPenalty,
|
|
19
|
+
topP: overrides.topP,
|
|
20
|
+
topK: overrides.topK,
|
|
21
|
+
frequencyPenalty: overrides.frequencyPenalty,
|
|
22
|
+
presencePenalty: overrides.presencePenalty,
|
|
23
|
+
repeatLastN: overrides.repeatLastN,
|
|
24
|
+
numPredict: overrides.num_predict,
|
|
25
|
+
numCtx: overrides.num_ctx,
|
|
26
|
+
numBatch: overrides.num_batch
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate parameter values are within acceptable ranges
|
|
31
|
+
* @param parameters The parameters to validate
|
|
32
|
+
* @returns Validated parameters with any out-of-range values corrected
|
|
33
|
+
*/
|
|
34
|
+
static validateParameters(parameters) {
|
|
35
|
+
const validated = { ...parameters };
|
|
36
|
+
// Temperature should be between 0 and 2
|
|
37
|
+
if (validated.temperature < 0)
|
|
38
|
+
validated.temperature = 0;
|
|
39
|
+
if (validated.temperature > 2)
|
|
40
|
+
validated.temperature = 2;
|
|
41
|
+
// Repeat penalty should be > 0
|
|
42
|
+
if (validated.repeatPenalty !== undefined) {
|
|
43
|
+
if (validated.repeatPenalty <= 0)
|
|
44
|
+
validated.repeatPenalty = 1.0;
|
|
45
|
+
}
|
|
46
|
+
// Top-p should be between 0 and 1
|
|
47
|
+
if (validated.topP !== undefined) {
|
|
48
|
+
if (validated.topP < 0)
|
|
49
|
+
validated.topP = 0;
|
|
50
|
+
if (validated.topP > 1)
|
|
51
|
+
validated.topP = 1;
|
|
52
|
+
}
|
|
53
|
+
// Top-k should be positive integer
|
|
54
|
+
if (validated.topK !== undefined) {
|
|
55
|
+
if (validated.topK < 1)
|
|
56
|
+
validated.topK = 1;
|
|
57
|
+
validated.topK = Math.round(validated.topK);
|
|
58
|
+
}
|
|
59
|
+
// Frequency penalty should be between 0 and 2
|
|
60
|
+
if (validated.frequencyPenalty !== undefined) {
|
|
61
|
+
if (validated.frequencyPenalty < 0)
|
|
62
|
+
validated.frequencyPenalty = 0;
|
|
63
|
+
if (validated.frequencyPenalty > 2)
|
|
64
|
+
validated.frequencyPenalty = 2;
|
|
65
|
+
}
|
|
66
|
+
// Presence penalty should be between 0 and 2
|
|
67
|
+
if (validated.presencePenalty !== undefined) {
|
|
68
|
+
if (validated.presencePenalty < 0)
|
|
69
|
+
validated.presencePenalty = 0;
|
|
70
|
+
if (validated.presencePenalty > 2)
|
|
71
|
+
validated.presencePenalty = 2;
|
|
72
|
+
}
|
|
73
|
+
// repeatLastN should be a positive number or -1 for num_ctx
|
|
74
|
+
if (validated.repeatLastN !== undefined) {
|
|
75
|
+
if (validated.repeatLastN < -1)
|
|
76
|
+
validated.repeatLastN = 64; // Default fallback
|
|
77
|
+
// If not -1 (for num_ctx), round to whole number
|
|
78
|
+
if (validated.repeatLastN !== -1) {
|
|
79
|
+
validated.repeatLastN = Math.round(validated.repeatLastN);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// numPredict should be a positive integer (max tokens to generate)
|
|
83
|
+
if (validated.numPredict !== undefined) {
|
|
84
|
+
if (validated.numPredict < 1)
|
|
85
|
+
validated.numPredict = 1;
|
|
86
|
+
validated.numPredict = Math.round(validated.numPredict);
|
|
87
|
+
}
|
|
88
|
+
// numCtx should be a positive integer (context window size)
|
|
89
|
+
if (validated.numCtx !== undefined) {
|
|
90
|
+
if (validated.numCtx < 128)
|
|
91
|
+
validated.numCtx = 128; // Minimum context
|
|
92
|
+
validated.numCtx = Math.round(validated.numCtx);
|
|
93
|
+
}
|
|
94
|
+
// numBatch should be a positive integer (batch size)
|
|
95
|
+
if (validated.numBatch !== undefined) {
|
|
96
|
+
if (validated.numBatch < 1)
|
|
97
|
+
validated.numBatch = 1;
|
|
98
|
+
validated.numBatch = Math.round(validated.numBatch);
|
|
99
|
+
}
|
|
100
|
+
return validated;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Create parameter subset for logging (only non-undefined values)
|
|
104
|
+
* @param parameters The parameters to filter
|
|
105
|
+
* @returns Object with only defined parameters
|
|
106
|
+
*/
|
|
107
|
+
static getDefinedParameters(parameters) {
|
|
108
|
+
const result = {
|
|
109
|
+
temperature: parameters.temperature
|
|
110
|
+
};
|
|
111
|
+
if (parameters.repeatPenalty !== undefined) {
|
|
112
|
+
result.repeatPenalty = parameters.repeatPenalty;
|
|
113
|
+
}
|
|
114
|
+
if (parameters.topP !== undefined) {
|
|
115
|
+
result.topP = parameters.topP;
|
|
116
|
+
}
|
|
117
|
+
if (parameters.topK !== undefined) {
|
|
118
|
+
result.topK = parameters.topK;
|
|
119
|
+
}
|
|
120
|
+
if (parameters.frequencyPenalty !== undefined) {
|
|
121
|
+
result.frequencyPenalty = parameters.frequencyPenalty;
|
|
122
|
+
}
|
|
123
|
+
if (parameters.presencePenalty !== undefined) {
|
|
124
|
+
result.presencePenalty = parameters.presencePenalty;
|
|
125
|
+
}
|
|
126
|
+
if (parameters.repeatLastN !== undefined) {
|
|
127
|
+
result.repeatLastN = parameters.repeatLastN;
|
|
128
|
+
}
|
|
129
|
+
if (parameters.numPredict !== undefined) {
|
|
130
|
+
result.numPredict = parameters.numPredict;
|
|
131
|
+
}
|
|
132
|
+
if (parameters.numCtx !== undefined) {
|
|
133
|
+
result.numCtx = parameters.numCtx;
|
|
134
|
+
}
|
|
135
|
+
if (parameters.numBatch !== undefined) {
|
|
136
|
+
result.numBatch = parameters.numBatch;
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Create parameter object for Ollama API request
|
|
142
|
+
* @param parameters The validated parameters
|
|
143
|
+
* @returns Object suitable for the Ollama API options field
|
|
144
|
+
*/
|
|
145
|
+
static toOllamaOptions(parameters) {
|
|
146
|
+
const options = {};
|
|
147
|
+
// Add temperature (always included)
|
|
148
|
+
options.temperature = parameters.temperature;
|
|
149
|
+
// Add optional parameters with correct Ollama API names
|
|
150
|
+
if (parameters.repeatPenalty !== undefined) {
|
|
151
|
+
options.repeat_penalty = parameters.repeatPenalty;
|
|
152
|
+
}
|
|
153
|
+
if (parameters.topP !== undefined) {
|
|
154
|
+
options.top_p = parameters.topP;
|
|
155
|
+
}
|
|
156
|
+
if (parameters.topK !== undefined) {
|
|
157
|
+
options.top_k = parameters.topK;
|
|
158
|
+
}
|
|
159
|
+
if (parameters.frequencyPenalty !== undefined) {
|
|
160
|
+
options.frequency_penalty = parameters.frequencyPenalty;
|
|
161
|
+
}
|
|
162
|
+
if (parameters.presencePenalty !== undefined) {
|
|
163
|
+
options.presence_penalty = parameters.presencePenalty;
|
|
164
|
+
}
|
|
165
|
+
if (parameters.repeatLastN !== undefined) {
|
|
166
|
+
options.repeat_last_n = parameters.repeatLastN;
|
|
167
|
+
}
|
|
168
|
+
if (parameters.numPredict !== undefined) {
|
|
169
|
+
options.num_predict = parameters.numPredict;
|
|
170
|
+
}
|
|
171
|
+
if (parameters.numCtx !== undefined) {
|
|
172
|
+
options.num_ctx = parameters.numCtx;
|
|
173
|
+
}
|
|
174
|
+
if (parameters.numBatch !== undefined) {
|
|
175
|
+
options.num_batch = parameters.numBatch;
|
|
176
|
+
}
|
|
177
|
+
return options;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Create default parameters for a given model type or use case
|
|
181
|
+
*
|
|
182
|
+
* Available presets:
|
|
183
|
+
* - 'creative' / 'creative_writing': Optimized for novels, stories, narrative fiction
|
|
184
|
+
* - 'factual': Optimized for reports, documentation, journalism
|
|
185
|
+
* - 'poetic': Optimized for poetry, lyrics, artistic expression
|
|
186
|
+
* - 'dialogue': Optimized for character dialogue, conversational content
|
|
187
|
+
* - 'technical': Optimized for code documentation, technical guides
|
|
188
|
+
* - 'marketing': Optimized for advertisements, promotional content
|
|
189
|
+
* - 'analytical': General analytical tasks (legacy)
|
|
190
|
+
* - 'balanced': General balanced approach (default)
|
|
191
|
+
*
|
|
192
|
+
* @param modelType The type of model or use case
|
|
193
|
+
* @returns Default parameters for the model type
|
|
194
|
+
*
|
|
195
|
+
* For detailed documentation about each preset, see docs/OLLAMA_PARAMETERS.md
|
|
196
|
+
*/
|
|
197
|
+
static getDefaultParametersForType(modelType) {
|
|
198
|
+
switch (modelType.toLowerCase()) {
|
|
199
|
+
// Creative Writing preset - for novels, stories, narrative fiction
|
|
200
|
+
case 'creative':
|
|
201
|
+
case 'creative_writing':
|
|
202
|
+
return {
|
|
203
|
+
temperature: 0.8,
|
|
204
|
+
repeatPenalty: 1.3,
|
|
205
|
+
frequencyPenalty: 0.2,
|
|
206
|
+
presencePenalty: 0.2,
|
|
207
|
+
topP: 0.92,
|
|
208
|
+
topK: 60,
|
|
209
|
+
repeatLastN: 128
|
|
210
|
+
};
|
|
211
|
+
// Factual Content preset - for reports, documentation, journalism
|
|
212
|
+
case 'factual':
|
|
213
|
+
return {
|
|
214
|
+
temperature: 0.4,
|
|
215
|
+
repeatPenalty: 1.2,
|
|
216
|
+
frequencyPenalty: 0.1,
|
|
217
|
+
presencePenalty: 0.1,
|
|
218
|
+
topP: 0.85,
|
|
219
|
+
topK: 40,
|
|
220
|
+
repeatLastN: 96
|
|
221
|
+
};
|
|
222
|
+
// Poetic Text preset - for poetry, lyrics, artistic expression
|
|
223
|
+
case 'poetic':
|
|
224
|
+
case 'poetry':
|
|
225
|
+
return {
|
|
226
|
+
temperature: 1.0,
|
|
227
|
+
repeatPenalty: 1.2,
|
|
228
|
+
frequencyPenalty: 0.3,
|
|
229
|
+
presencePenalty: 0.2,
|
|
230
|
+
topP: 0.95,
|
|
231
|
+
topK: 80,
|
|
232
|
+
repeatLastN: 64
|
|
233
|
+
};
|
|
234
|
+
// Dialogue & Conversation preset - for character dialogue, chat
|
|
235
|
+
case 'dialogue':
|
|
236
|
+
case 'conversation':
|
|
237
|
+
case 'conversational':
|
|
238
|
+
return {
|
|
239
|
+
temperature: 0.7,
|
|
240
|
+
repeatPenalty: 1.1,
|
|
241
|
+
frequencyPenalty: 0.3,
|
|
242
|
+
presencePenalty: 0.0,
|
|
243
|
+
topP: 0.9,
|
|
244
|
+
topK: 50,
|
|
245
|
+
repeatLastN: 32
|
|
246
|
+
};
|
|
247
|
+
// Technical Documentation preset - for code docs, API references
|
|
248
|
+
case 'technical':
|
|
249
|
+
case 'tech':
|
|
250
|
+
case 'documentation':
|
|
251
|
+
return {
|
|
252
|
+
temperature: 0.3,
|
|
253
|
+
repeatPenalty: 1.05,
|
|
254
|
+
frequencyPenalty: 0.0,
|
|
255
|
+
presencePenalty: 0.1,
|
|
256
|
+
topP: 0.8,
|
|
257
|
+
topK: 30,
|
|
258
|
+
repeatLastN: 128
|
|
259
|
+
};
|
|
260
|
+
// Marketing Copy preset - for ads, sales copy, promotional content
|
|
261
|
+
case 'marketing':
|
|
262
|
+
case 'advertising':
|
|
263
|
+
case 'promotional':
|
|
264
|
+
return {
|
|
265
|
+
temperature: 0.7,
|
|
266
|
+
repeatPenalty: 1.3,
|
|
267
|
+
frequencyPenalty: 0.4,
|
|
268
|
+
presencePenalty: 0.3,
|
|
269
|
+
topP: 0.9,
|
|
270
|
+
topK: 60,
|
|
271
|
+
repeatLastN: 96
|
|
272
|
+
};
|
|
273
|
+
// Legacy presets for backward compatibility
|
|
274
|
+
case 'analytical':
|
|
275
|
+
return {
|
|
276
|
+
temperature: 0.3,
|
|
277
|
+
topP: 0.8,
|
|
278
|
+
repeatPenalty: 1.05
|
|
279
|
+
};
|
|
280
|
+
// Balanced preset (default)
|
|
281
|
+
case 'balanced':
|
|
282
|
+
default:
|
|
283
|
+
return {
|
|
284
|
+
temperature: this.DEFAULT_TEMPERATURE,
|
|
285
|
+
topP: 0.9,
|
|
286
|
+
repeatPenalty: 1.1
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Compare two parameter sets and return the differences
|
|
292
|
+
* @param params1 First parameter set
|
|
293
|
+
* @param params2 Second parameter set
|
|
294
|
+
* @returns Object showing differences
|
|
295
|
+
*/
|
|
296
|
+
static compareParameters(params1, params2) {
|
|
297
|
+
const differences = {};
|
|
298
|
+
const allKeys = new Set([
|
|
299
|
+
...Object.keys(params1),
|
|
300
|
+
...Object.keys(params2)
|
|
301
|
+
]);
|
|
302
|
+
for (const key of allKeys) {
|
|
303
|
+
if (params1[key] !== params2[key]) {
|
|
304
|
+
differences[key] = {
|
|
305
|
+
from: params1[key],
|
|
306
|
+
to: params2[key]
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
return differences;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Generate a summary string of the parameters for logging
|
|
314
|
+
* @param parameters The parameters to summarize
|
|
315
|
+
* @returns Human-readable parameter summary
|
|
316
|
+
*/
|
|
317
|
+
static summarizeParameters(parameters) {
|
|
318
|
+
const defined = this.getDefinedParameters(parameters);
|
|
319
|
+
const parts = Object.entries(defined).map(([key, value]) => `${key}=${value}`);
|
|
320
|
+
return parts.join(', ');
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
exports.ModelParameterManagerService = ModelParameterManagerService;
|
|
324
|
+
ModelParameterManagerService.DEFAULT_TEMPERATURE = 0.7;
|
|
325
|
+
//# sourceMappingURL=model-parameter-manager.service.js.map
|
package/dist/middleware/services/model-parameter-manager/model-parameter-manager.service.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-parameter-manager.service.js","sourceRoot":"","sources":["../../../../src/middleware/services/model-parameter-manager/model-parameter-manager.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/middleware/services/request-formatter/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./request-formatter.service"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/middleware/services/request-formatter/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic RequestFormatterService for handling complex prompt objects.
|
|
3
|
+
* - Removes domain-specific dependencies (no book-specific fields)
|
|
4
|
+
* - Supports flexible extraction and formatting of nested request structures
|
|
5
|
+
*/
|
|
6
|
+
export declare class RequestFormatterService {
|
|
7
|
+
/**
|
|
8
|
+
* Format user message based on the prompt type and use case template.
|
|
9
|
+
* Handles strings directly and formats objects into structured sections.
|
|
10
|
+
*/
|
|
11
|
+
static formatUserMessage(prompt: any, templateFunction: (formattedPrompt: string) => string, useCaseName: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Validate that a prompt is not empty
|
|
14
|
+
*/
|
|
15
|
+
static isValidPrompt(prompt: any): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Extract context information from various prompt formats (generic)
|
|
18
|
+
*/
|
|
19
|
+
static extractContext(prompt: any): any | null;
|
|
20
|
+
/**
|
|
21
|
+
* Extract user instruction from various prompt formats (generic)
|
|
22
|
+
*/
|
|
23
|
+
static extractInstruction(prompt: any): string;
|
|
24
|
+
/**
|
|
25
|
+
* Backward-compat alias for extractInstruction()
|
|
26
|
+
*/
|
|
27
|
+
static extractUserInstruction(prompt: any): string;
|
|
28
|
+
/**
|
|
29
|
+
* Create a structured prompt object from simple inputs
|
|
30
|
+
*/
|
|
31
|
+
static createStructuredPrompt(instruction: string, context?: any): object;
|
|
32
|
+
/**
|
|
33
|
+
* Merge multiple prompt components into a single formatted prompt string
|
|
34
|
+
*/
|
|
35
|
+
static mergePromptComponents(components: Array<string | object>): string;
|
|
36
|
+
/**
|
|
37
|
+
* Sanitize prompt content to remove potentially problematic characters
|
|
38
|
+
*/
|
|
39
|
+
static sanitizePrompt(prompt: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* Get statistics about a prompt
|
|
42
|
+
*/
|
|
43
|
+
static getPromptStats(prompt: any): {
|
|
44
|
+
type: 'string' | 'object' | 'unknown';
|
|
45
|
+
charCount: number;
|
|
46
|
+
wordCount: number;
|
|
47
|
+
hasContext: boolean;
|
|
48
|
+
isValid: boolean;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Extract data from various prompt formats (context + instruction + raw)
|
|
52
|
+
*/
|
|
53
|
+
private static extractPromptData;
|
|
54
|
+
/**
|
|
55
|
+
* Build formatted prompt string from extracted data using FlatFormatter for context
|
|
56
|
+
*/
|
|
57
|
+
private static buildFormattedPrompt;
|
|
58
|
+
/**
|
|
59
|
+
* Format a context object using FlatFormatter
|
|
60
|
+
*/
|
|
61
|
+
private static formatContext;
|
|
62
|
+
/**
|
|
63
|
+
* Format a raw prompt object that doesn't match expected structure
|
|
64
|
+
*/
|
|
65
|
+
private static formatRawPrompt;
|
|
66
|
+
/**
|
|
67
|
+
* Extract text content from various object structures (used by stats/merge fallbacks)
|
|
68
|
+
*/
|
|
69
|
+
private static extractTextFromObject;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=request-formatter.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-formatter.service.d.ts","sourceRoot":"","sources":["../../../../src/middleware/services/request-formatter/request-formatter.service.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC;;;OAGG;WACW,iBAAiB,CAC7B,MAAM,EAAE,GAAG,EACX,gBAAgB,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,EACrD,WAAW,EAAE,MAAM,GAClB,MAAM;IAUT;;OAEG;WACW,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO;IAmBjD;;OAEG;WACW,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI;IAmBrD;;OAEG;WACW,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAoBrD;;OAEG;WACW,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAIzD;;OAEG;WACW,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,MAAM;IAMhF;;OAEG;WACW,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM;IAe/E;;OAEG;WACW,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQpD;;OAEG;WACW,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG;QACzC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QACtC,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;KAClB;IAeD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAoBhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAsBnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAY5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAa9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;CAwBrC"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequestFormatterService = void 0;
|
|
4
|
+
const flat_formatter_1 = require("../flat-formatter");
|
|
5
|
+
/**
|
|
6
|
+
* Generic RequestFormatterService for handling complex prompt objects.
|
|
7
|
+
* - Removes domain-specific dependencies (no book-specific fields)
|
|
8
|
+
* - Supports flexible extraction and formatting of nested request structures
|
|
9
|
+
*/
|
|
10
|
+
class RequestFormatterService {
|
|
11
|
+
/**
|
|
12
|
+
* Format user message based on the prompt type and use case template.
|
|
13
|
+
* Handles strings directly and formats objects into structured sections.
|
|
14
|
+
*/
|
|
15
|
+
static formatUserMessage(prompt, templateFunction, useCaseName) {
|
|
16
|
+
if (typeof prompt === 'string') {
|
|
17
|
+
return templateFunction(prompt);
|
|
18
|
+
}
|
|
19
|
+
const extracted = this.extractPromptData(prompt);
|
|
20
|
+
const formattedPrompt = this.buildFormattedPrompt(extracted, useCaseName);
|
|
21
|
+
return templateFunction(formattedPrompt);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Validate that a prompt is not empty
|
|
25
|
+
*/
|
|
26
|
+
static isValidPrompt(prompt) {
|
|
27
|
+
if (!prompt)
|
|
28
|
+
return false;
|
|
29
|
+
if (typeof prompt === 'string') {
|
|
30
|
+
return prompt.trim().length > 0;
|
|
31
|
+
}
|
|
32
|
+
if (typeof prompt === 'object') {
|
|
33
|
+
return Object.keys(prompt).some(key => {
|
|
34
|
+
const value = prompt[key];
|
|
35
|
+
if (typeof value === 'string')
|
|
36
|
+
return value.trim().length > 0;
|
|
37
|
+
if (typeof value === 'object' && value !== null)
|
|
38
|
+
return Object.keys(value).length > 0;
|
|
39
|
+
return false;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extract context information from various prompt formats (generic)
|
|
46
|
+
*/
|
|
47
|
+
static extractContext(prompt) {
|
|
48
|
+
if (typeof prompt !== 'object' || prompt === null)
|
|
49
|
+
return null;
|
|
50
|
+
// Prefer explicit, generic context fields
|
|
51
|
+
const contextFields = ['context', 'sessionContext', 'metadata'];
|
|
52
|
+
for (const field of contextFields) {
|
|
53
|
+
if (prompt[field]) {
|
|
54
|
+
return prompt[field];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Nested prompt structure
|
|
58
|
+
if (prompt.prompt && typeof prompt.prompt === 'object') {
|
|
59
|
+
return this.extractContext(prompt.prompt);
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Extract user instruction from various prompt formats (generic)
|
|
65
|
+
*/
|
|
66
|
+
static extractInstruction(prompt) {
|
|
67
|
+
if (typeof prompt === 'string')
|
|
68
|
+
return prompt;
|
|
69
|
+
if (typeof prompt !== 'object' || prompt === null)
|
|
70
|
+
return '';
|
|
71
|
+
// Nested prompt structure support
|
|
72
|
+
if (prompt.prompt?.instruction) {
|
|
73
|
+
return prompt.prompt.instruction;
|
|
74
|
+
}
|
|
75
|
+
// Common instruction field names
|
|
76
|
+
const candidates = ['instruction', 'userInstruction', 'task', 'message', 'text', 'content', 'query', 'input', 'description'];
|
|
77
|
+
for (const key of candidates) {
|
|
78
|
+
const v = prompt[key];
|
|
79
|
+
if (typeof v === 'string' && v.trim())
|
|
80
|
+
return v;
|
|
81
|
+
}
|
|
82
|
+
// Fallback to general text extraction
|
|
83
|
+
return this.extractTextFromObject(prompt, 'instruction');
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Backward-compat alias for extractInstruction()
|
|
87
|
+
*/
|
|
88
|
+
static extractUserInstruction(prompt) {
|
|
89
|
+
return this.extractInstruction(prompt);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Create a structured prompt object from simple inputs
|
|
93
|
+
*/
|
|
94
|
+
static createStructuredPrompt(instruction, context) {
|
|
95
|
+
const prompt = { userInstruction: instruction };
|
|
96
|
+
if (context)
|
|
97
|
+
prompt.context = context;
|
|
98
|
+
return prompt;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Merge multiple prompt components into a single formatted prompt string
|
|
102
|
+
*/
|
|
103
|
+
static mergePromptComponents(components) {
|
|
104
|
+
const textParts = [];
|
|
105
|
+
for (const component of components) {
|
|
106
|
+
if (typeof component === 'string' && component.trim()) {
|
|
107
|
+
textParts.push(component.trim());
|
|
108
|
+
}
|
|
109
|
+
else if (typeof component === 'object' && component !== null) {
|
|
110
|
+
const extracted = this.extractTextFromObject(component, 'merge');
|
|
111
|
+
if (extracted.trim())
|
|
112
|
+
textParts.push(extracted.trim());
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return textParts.join('\n\n');
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Sanitize prompt content to remove potentially problematic characters
|
|
119
|
+
*/
|
|
120
|
+
static sanitizePrompt(prompt) {
|
|
121
|
+
return prompt
|
|
122
|
+
.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g, '')
|
|
123
|
+
.replace(/\r\n/g, '\n')
|
|
124
|
+
.replace(/\r/g, '\n')
|
|
125
|
+
.trim();
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get statistics about a prompt
|
|
129
|
+
*/
|
|
130
|
+
static getPromptStats(prompt) {
|
|
131
|
+
const type = typeof prompt === 'string' ? 'string' : typeof prompt === 'object' && prompt !== null ? 'object' : 'unknown';
|
|
132
|
+
const text = type === 'string' ? prompt : this.extractTextFromObject(prompt, 'stats');
|
|
133
|
+
const charCount = text.length;
|
|
134
|
+
const wordCount = text.trim() ? text.trim().split(/\s+/).length : 0;
|
|
135
|
+
const hasContext = type === 'object' && this.extractContext(prompt) !== null;
|
|
136
|
+
const isValid = this.isValidPrompt(prompt);
|
|
137
|
+
return { type, charCount, wordCount, hasContext, isValid };
|
|
138
|
+
}
|
|
139
|
+
// ===============
|
|
140
|
+
// Internal helpers
|
|
141
|
+
// ===============
|
|
142
|
+
/**
|
|
143
|
+
* Extract data from various prompt formats (context + instruction + raw)
|
|
144
|
+
*/
|
|
145
|
+
static extractPromptData(prompt) {
|
|
146
|
+
if (prompt?.prompt && typeof prompt.prompt === 'object') {
|
|
147
|
+
return {
|
|
148
|
+
context: prompt.prompt.context ?? prompt.context,
|
|
149
|
+
instruction: prompt.prompt.instruction ?? prompt.instruction ?? prompt.userInstruction,
|
|
150
|
+
rawPrompt: prompt.prompt
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
context: prompt?.context,
|
|
155
|
+
instruction: prompt?.instruction ?? prompt?.userInstruction,
|
|
156
|
+
rawPrompt: prompt
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Build formatted prompt string from extracted data using FlatFormatter for context
|
|
161
|
+
*/
|
|
162
|
+
static buildFormattedPrompt(extracted, useCaseName) {
|
|
163
|
+
const sections = [];
|
|
164
|
+
if (extracted.context && typeof extracted.context === 'object') {
|
|
165
|
+
const contextStr = this.formatContext(extracted.context);
|
|
166
|
+
if (contextStr)
|
|
167
|
+
sections.push(`## CONTEXT:\n${contextStr}`);
|
|
168
|
+
}
|
|
169
|
+
if (extracted.instruction && typeof extracted.instruction === 'string') {
|
|
170
|
+
sections.push(`## INSTRUCTION:\n${extracted.instruction}`);
|
|
171
|
+
}
|
|
172
|
+
if (sections.length === 0 && extracted.rawPrompt) {
|
|
173
|
+
return this.formatRawPrompt(extracted.rawPrompt);
|
|
174
|
+
}
|
|
175
|
+
return sections.join('\n\n');
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Format a context object using FlatFormatter
|
|
179
|
+
*/
|
|
180
|
+
static formatContext(context) {
|
|
181
|
+
if (typeof context !== 'object' || context === null) {
|
|
182
|
+
return String(context);
|
|
183
|
+
}
|
|
184
|
+
return flat_formatter_1.FlatFormatter.flatten(context, {
|
|
185
|
+
format: 'numbered',
|
|
186
|
+
ignoreEmptyValues: true,
|
|
187
|
+
keyValueSeparator: ': '
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Format a raw prompt object that doesn't match expected structure
|
|
192
|
+
*/
|
|
193
|
+
static formatRawPrompt(rawPrompt) {
|
|
194
|
+
if (typeof rawPrompt === 'string')
|
|
195
|
+
return rawPrompt;
|
|
196
|
+
if (typeof rawPrompt === 'object' && rawPrompt !== null) {
|
|
197
|
+
return flat_formatter_1.FlatFormatter.flatten(rawPrompt, {
|
|
198
|
+
format: 'numbered',
|
|
199
|
+
ignoreEmptyValues: true
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
return String(rawPrompt);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Extract text content from various object structures (used by stats/merge fallbacks)
|
|
206
|
+
*/
|
|
207
|
+
static extractTextFromObject(obj, context) {
|
|
208
|
+
if (typeof obj === 'string')
|
|
209
|
+
return obj;
|
|
210
|
+
if (!obj || typeof obj !== 'object')
|
|
211
|
+
return '';
|
|
212
|
+
const textFields = [
|
|
213
|
+
'instruction', 'userInstruction', 'task', 'message', 'text', 'content', 'query', 'input', 'description'
|
|
214
|
+
];
|
|
215
|
+
for (const field of textFields) {
|
|
216
|
+
if (obj[field] && typeof obj[field] === 'string') {
|
|
217
|
+
return obj[field];
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (obj.prompt && typeof obj.prompt === 'object') {
|
|
221
|
+
return this.extractTextFromObject(obj.prompt, context);
|
|
222
|
+
}
|
|
223
|
+
const stringValues = Object.values(obj)
|
|
224
|
+
.filter((value) => typeof value === 'string' && value.trim().length > 0)
|
|
225
|
+
.join(' ');
|
|
226
|
+
return stringValues || '';
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
exports.RequestFormatterService = RequestFormatterService;
|
|
230
|
+
//# sourceMappingURL=request-formatter.service.js.map
|