@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 @@
|
|
|
1
|
+
{"version":3,"file":"product-preset.example.js","sourceRoot":"","sources":["../../../src/examples/flat-formatter-demo/product-preset.example.ts"],"names":[],"mappings":";;;AAAA,6EAAuF;AA0FvF;;;;;;;;;GASG;AACH,MAAa,aAAc,SAAQ,2BAAqC;IACtE;QACE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnB,CAAC;IAES,gBAAgB,CAAC,OAAgB;QACzC,oBAAoB;QACpB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC;QAEpD,kBAAkB;QAClB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAClC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7E,CAAC,CAAC,YAAY,CAAC;QAEjB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YACtC,CAAC,CAAC,OAAO;iBACJ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,kBAAkB;iBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;iBAC7E,IAAI,CAAC,IAAI,CAAC;YACf,CAAC,CAAC,gBAAgB,CAAC;QAErB,yBAAyB;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,OAAO;YAC1B,CAAC,CAAC,aAAa,QAAQ,mBAAmB;YAC1C,CAAC,CAAC,cAAc,CAAC;QAEnB,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,aAAa,EAAE,OAAO,CAAC,WAAW;YAClC,UAAU,EAAE,OAAO,CAAC,QAAQ;YAE5B,UAAU;YACV,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;YAC9C,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,CAAC,CAAC,CAAC,aAAa;YAC7D,aAAa,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;YAErD,4BAA4B;YAC5B,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB;YAChE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;YAE7C,mCAAmC;YACnC,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE,YAAY,IAAI,SAAS;YAC3D,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,SAAS;YAC/C,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM;YAExE,2BAA2B;YAC3B,gBAAgB,EAAE,SAAS,GAAG,MAAM;YACpC,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5E,gBAAgB,EAAE,aAAa;YAE/B,eAAe;YACf,cAAc,EAAE,YAAY;SAC7B,CAAC;IACJ,CAAC;CACF;AA5DD,sCA4DC;AAED;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Response } from 'express';
|
|
2
|
+
import { BaseController } from '../../middleware/controllers/base/base.controller';
|
|
3
|
+
import { RequestWithUser } from '../../middleware/shared/types/base-request.types';
|
|
4
|
+
/**
|
|
5
|
+
* Simple chat controller for testing the middleware
|
|
6
|
+
*/
|
|
7
|
+
export declare class ChatController extends BaseController {
|
|
8
|
+
private chatUseCase;
|
|
9
|
+
/**
|
|
10
|
+
* Handle chat message endpoint
|
|
11
|
+
* POST /api/chat
|
|
12
|
+
*/
|
|
13
|
+
chat(req: RequestWithUser, res: Response): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=chat.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.controller.d.ts","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAGnF;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAc;IAChD,OAAO,CAAC,WAAW,CAA2B;IAE9C;;;OAGG;IACU,IAAI,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBtE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatController = void 0;
|
|
4
|
+
const base_controller_1 = require("../../middleware/controllers/base/base.controller");
|
|
5
|
+
const chat_usecase_1 = require("./chat.usecase");
|
|
6
|
+
/**
|
|
7
|
+
* Simple chat controller for testing the middleware
|
|
8
|
+
*/
|
|
9
|
+
class ChatController extends base_controller_1.BaseController {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.chatUseCase = new chat_usecase_1.SimpleChatUseCase();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Handle chat message endpoint
|
|
16
|
+
* POST /api/chat
|
|
17
|
+
*/
|
|
18
|
+
async chat(req, res) {
|
|
19
|
+
await this.handleRequest(req, res, async () => {
|
|
20
|
+
const { message, authToken } = req.body;
|
|
21
|
+
if (!message || typeof message !== 'string') {
|
|
22
|
+
throw new Error('Message is required and must be a string');
|
|
23
|
+
}
|
|
24
|
+
const request = {
|
|
25
|
+
prompt: message,
|
|
26
|
+
message,
|
|
27
|
+
authToken
|
|
28
|
+
};
|
|
29
|
+
const result = await this.chatUseCase.execute(request);
|
|
30
|
+
return {
|
|
31
|
+
response: result.response,
|
|
32
|
+
model: result.model,
|
|
33
|
+
thinking: result.thinking
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ChatController = ChatController;
|
|
39
|
+
//# sourceMappingURL=chat.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.controller.js","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.controller.ts"],"names":[],"mappings":";;;AACA,uFAAmF;AAEnF,iDAAgE;AAEhE;;GAEG;AACH,MAAa,cAAe,SAAQ,gCAAc;IAAlD;;QACU,gBAAW,GAAG,IAAI,gCAAiB,EAAE,CAAC;IA6BhD,CAAC;IA3BC;;;OAGG;IACI,KAAK,CAAC,IAAI,CAAC,GAAoB,EAAE,GAAa;QACnD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAExC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,OAAO,GAAgB;gBAC3B,MAAM,EAAE,OAAO;gBACf,OAAO;gBACP,SAAS;aACV,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEvD,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA9BD,wCA8BC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System message for simple chat use case
|
|
3
|
+
*/
|
|
4
|
+
export declare const SIMPLE_CHAT_SYSTEM_MESSAGE = "You are a helpful AI assistant. \nProvide clear, concise, and friendly responses to user messages.\nBe conversational but informative.";
|
|
5
|
+
/**
|
|
6
|
+
* Template for user messages
|
|
7
|
+
* For simple chat, we typically don't need complex formatting
|
|
8
|
+
*/
|
|
9
|
+
export declare const SIMPLE_CHAT_USER_TEMPLATE: (message: string) => string;
|
|
10
|
+
//# sourceMappingURL=chat.messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.messages.d.ts","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.messages.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,0BAA0B,2IAEJ,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,KAAG,MAAiB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// src/examples/simple-chat/chat.messages.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SIMPLE_CHAT_USER_TEMPLATE = exports.SIMPLE_CHAT_SYSTEM_MESSAGE = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* System message for simple chat use case
|
|
7
|
+
*/
|
|
8
|
+
exports.SIMPLE_CHAT_SYSTEM_MESSAGE = `You are a helpful AI assistant.
|
|
9
|
+
Provide clear, concise, and friendly responses to user messages.
|
|
10
|
+
Be conversational but informative.`;
|
|
11
|
+
/**
|
|
12
|
+
* Template for user messages
|
|
13
|
+
* For simple chat, we typically don't need complex formatting
|
|
14
|
+
*/
|
|
15
|
+
const SIMPLE_CHAT_USER_TEMPLATE = (message) => message;
|
|
16
|
+
exports.SIMPLE_CHAT_USER_TEMPLATE = SIMPLE_CHAT_USER_TEMPLATE;
|
|
17
|
+
//# sourceMappingURL=chat.messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.messages.js","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.messages.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;AAE5C;;GAEG;AACU,QAAA,0BAA0B,GAAG;;mCAEP,CAAC;AAEpC;;;GAGG;AACI,MAAM,yBAAyB,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,OAAO,CAAC;AAAjE,QAAA,yBAAyB,6BAAwC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BaseAIUseCase } from '../../middleware/usecases/base/base-ai.usecase';
|
|
2
|
+
import { BaseAIRequest, BaseAIResult } from '../../middleware/shared/types/base-request.types';
|
|
3
|
+
/**
|
|
4
|
+
* Simple chat request interface
|
|
5
|
+
*/
|
|
6
|
+
export interface ChatRequest extends BaseAIRequest<string> {
|
|
7
|
+
message: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Simple chat result interface
|
|
11
|
+
*/
|
|
12
|
+
export interface ChatResult extends BaseAIResult {
|
|
13
|
+
response: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Simple chat use case for testing the middleware
|
|
17
|
+
*/
|
|
18
|
+
export declare class SimpleChatUseCase extends BaseAIUseCase<string, ChatRequest, ChatResult> {
|
|
19
|
+
protected readonly systemMessage = "You are a helpful AI assistant. \nProvide clear, concise, and friendly responses to user messages.\nBe conversational but informative.";
|
|
20
|
+
/**
|
|
21
|
+
* Format the user message for the chat
|
|
22
|
+
*/
|
|
23
|
+
protected formatUserMessage(prompt: any): string;
|
|
24
|
+
/**
|
|
25
|
+
* Get the user template from message file
|
|
26
|
+
*/
|
|
27
|
+
protected getUserTemplate(): (formattedPrompt: string) => string;
|
|
28
|
+
/**
|
|
29
|
+
* Create the chat result
|
|
30
|
+
*/
|
|
31
|
+
protected createResult(content: string, usedPrompt: string, thinking?: string): ChatResult;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=chat.usecase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.usecase.d.ts","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAG/F;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,MAAM,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC;IACnF,SAAS,CAAC,QAAQ,CAAC,aAAa,4IAA8B;IAE9D;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAIhD;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM;IAIhE;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU;CAS3F"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimpleChatUseCase = void 0;
|
|
4
|
+
const base_ai_usecase_1 = require("../../middleware/usecases/base/base-ai.usecase");
|
|
5
|
+
const chat_messages_1 = require("./chat.messages");
|
|
6
|
+
/**
|
|
7
|
+
* Simple chat use case for testing the middleware
|
|
8
|
+
*/
|
|
9
|
+
class SimpleChatUseCase extends base_ai_usecase_1.BaseAIUseCase {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.systemMessage = chat_messages_1.SIMPLE_CHAT_SYSTEM_MESSAGE;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Format the user message for the chat
|
|
16
|
+
*/
|
|
17
|
+
formatUserMessage(prompt) {
|
|
18
|
+
return typeof prompt === 'string' ? prompt : JSON.stringify(prompt);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the user template from message file
|
|
22
|
+
*/
|
|
23
|
+
getUserTemplate() {
|
|
24
|
+
return chat_messages_1.SIMPLE_CHAT_USER_TEMPLATE;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create the chat result
|
|
28
|
+
*/
|
|
29
|
+
createResult(content, usedPrompt, thinking) {
|
|
30
|
+
return {
|
|
31
|
+
generatedContent: content,
|
|
32
|
+
model: this.modelConfig.name,
|
|
33
|
+
usedPrompt: usedPrompt,
|
|
34
|
+
thinking: thinking,
|
|
35
|
+
response: content
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.SimpleChatUseCase = SimpleChatUseCase;
|
|
40
|
+
//# sourceMappingURL=chat.usecase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.usecase.js","sourceRoot":"","sources":["../../../src/examples/simple-chat/chat.usecase.ts"],"names":[],"mappings":";;;AAAA,oFAA+E;AAE/E,mDAAwF;AAgBxF;;GAEG;AACH,MAAa,iBAAkB,SAAQ,+BAA8C;IAArF;;QACqB,kBAAa,GAAG,0CAA0B,CAAC;IA4BhE,CAAC;IA1BC;;OAEG;IACO,iBAAiB,CAAC,MAAW;QACrC,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACO,eAAe;QACvB,OAAO,yCAAyB,CAAC;IACnC,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,OAAe,EAAE,UAAkB,EAAE,QAAiB;QAC3E,OAAO;YACL,gBAAgB,EAAE,OAAO;YACzB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC5B,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,OAAO;SAClB,CAAC;IACJ,CAAC;CACF;AA7BD,8CA6BC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/examples/simple-chat/index.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,GAAG,6CAAY,CAAC;AAkDtB,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const express_1 = __importDefault(require("express"));
|
|
7
|
+
const cors_1 = __importDefault(require("cors"));
|
|
8
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
9
|
+
const chat_controller_1 = require("./chat.controller");
|
|
10
|
+
const app_config_1 = require("../../middleware/shared/config/app.config");
|
|
11
|
+
const logging_utils_1 = require("../../middleware/shared/utils/logging.utils");
|
|
12
|
+
// Load environment variables
|
|
13
|
+
dotenv_1.default.config();
|
|
14
|
+
const app = (0, express_1.default)();
|
|
15
|
+
const chatController = new chat_controller_1.ChatController();
|
|
16
|
+
// Middleware
|
|
17
|
+
app.use((0, cors_1.default)());
|
|
18
|
+
app.use(express_1.default.json());
|
|
19
|
+
// Simple client info middleware
|
|
20
|
+
app.use((req, res, next) => {
|
|
21
|
+
req.clientInfo = {
|
|
22
|
+
platform: req.headers['user-agent'] || 'unknown',
|
|
23
|
+
ip: req.ip || req.connection.remoteAddress || 'unknown',
|
|
24
|
+
timestamp: new Date().toISOString()
|
|
25
|
+
};
|
|
26
|
+
next();
|
|
27
|
+
});
|
|
28
|
+
// Routes
|
|
29
|
+
app.get('/health', (req, res) => {
|
|
30
|
+
res.json({
|
|
31
|
+
status: 'ok',
|
|
32
|
+
timestamp: new Date().toISOString(),
|
|
33
|
+
service: 'llm-middleware-example'
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
app.post('/api/chat', (req, res) => {
|
|
37
|
+
chatController.chat(req, res);
|
|
38
|
+
});
|
|
39
|
+
// Start server
|
|
40
|
+
const port = app_config_1.appConfig.server.port;
|
|
41
|
+
app.listen(port, () => {
|
|
42
|
+
logging_utils_1.logger.info(`Simple Chat Example Server running on port ${port}`, {
|
|
43
|
+
context: 'SimpleChatExample',
|
|
44
|
+
metadata: {
|
|
45
|
+
port,
|
|
46
|
+
environment: app_config_1.appConfig.server.environment
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
console.log(`\\n🚀 Simple Chat Example Server running on port ${port}`);
|
|
50
|
+
console.log(`\\n📝 Test the API:`);
|
|
51
|
+
console.log(` Health check: GET http://localhost:${port}/health`);
|
|
52
|
+
console.log(` Chat endpoint: POST http://localhost:${port}/api/chat`);
|
|
53
|
+
console.log(` Example body: { "message": "Hello, how are you?" }`);
|
|
54
|
+
console.log(`\\n🔧 Environment: ${app_config_1.appConfig.server.environment}\\n`);
|
|
55
|
+
});
|
|
56
|
+
exports.default = app;
|
|
57
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/examples/simple-chat/index.ts"],"names":[],"mappings":";;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,oDAA4B;AAC5B,uDAAmD;AACnD,0EAAsE;AACtE,+EAAqE;AAIrE,6BAA6B;AAC7B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AACtB,MAAM,cAAc,GAAG,IAAI,gCAAc,EAAE,CAAC;AAE5C,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;AAChB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAExB,gCAAgC;AAChC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IACtD,GAAG,CAAC,UAAU,GAAG;QACf,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,SAAS;QAChD,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,IAAI,SAAS;QACvD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC;AAEH,SAAS;AACT,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC9B,GAAG,CAAC,IAAI,CAAC;QACP,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,wBAAwB;KAClC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAQ,EAAE,GAAa,EAAE,EAAE;IAChD,cAAc,CAAC,IAAI,CAAC,GAAsB,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,eAAe;AACf,MAAM,IAAI,GAAG,sBAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAEnC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IACpB,sBAAM,CAAC,IAAI,CAAC,8CAA8C,IAAI,EAAE,EAAE;QAChE,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE;YACR,IAAI;YACJ,WAAW,EAAE,sBAAS,CAAC,MAAM,CAAC,WAAW;SAC1C;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,oDAAoD,IAAI,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,SAAS,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,WAAW,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,sBAAsB,sBAAS,CAAC,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC;AACvE,CAAC,CAAC,CAAC;AAEH,kBAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Story Generator System Message
|
|
3
|
+
*
|
|
4
|
+
* Demonstrates RequestFormatterService usage with complex context objects
|
|
5
|
+
*/
|
|
6
|
+
export declare const STORY_GENERATOR_SYSTEM_MESSAGE = "You are a creative writing assistant specializing in short story generation.\n\nYour task is to generate engaging, well-structured short stories based on the provided context and instructions.\n\nWRITING GUIDELINES:\n- Create vivid, immersive scenes with sensory details\n- Develop characters with clear motivations and conflicts\n- Use active voice and varied sentence structure\n- Maintain consistent tone and style throughout\n- Include dialogue where appropriate\n- Build tension and resolution\n\nSTRUCTURE:\n- Opening: Hook the reader immediately\n- Development: Build character and conflict\n- Climax: Reach the story's turning point\n- Resolution: Provide satisfying closure\n\nQUALITY STANDARDS:\n- Original, creative content\n- Grammatically correct prose\n- Appropriate pacing for word count\n- Clear narrative arc\n\nGenerate the complete story as plain text (no JSON, no code blocks).";
|
|
7
|
+
/**
|
|
8
|
+
* Story Generator User Template
|
|
9
|
+
*
|
|
10
|
+
* Simple pass-through - RequestFormatterService handles the formatting
|
|
11
|
+
*/
|
|
12
|
+
export declare const STORY_GENERATOR_USER_TEMPLATE: (formattedPrompt: string) => string;
|
|
13
|
+
//# sourceMappingURL=story-generator.messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"story-generator.messages.d.ts","sourceRoot":"","sources":["../../../src/examples/story-generator/story-generator.messages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,s4BAwB0B,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,iBAAiB,MAAM,WAAoB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.STORY_GENERATOR_USER_TEMPLATE = exports.STORY_GENERATOR_SYSTEM_MESSAGE = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Story Generator System Message
|
|
6
|
+
*
|
|
7
|
+
* Demonstrates RequestFormatterService usage with complex context objects
|
|
8
|
+
*/
|
|
9
|
+
exports.STORY_GENERATOR_SYSTEM_MESSAGE = `You are a creative writing assistant specializing in short story generation.
|
|
10
|
+
|
|
11
|
+
Your task is to generate engaging, well-structured short stories based on the provided context and instructions.
|
|
12
|
+
|
|
13
|
+
WRITING GUIDELINES:
|
|
14
|
+
- Create vivid, immersive scenes with sensory details
|
|
15
|
+
- Develop characters with clear motivations and conflicts
|
|
16
|
+
- Use active voice and varied sentence structure
|
|
17
|
+
- Maintain consistent tone and style throughout
|
|
18
|
+
- Include dialogue where appropriate
|
|
19
|
+
- Build tension and resolution
|
|
20
|
+
|
|
21
|
+
STRUCTURE:
|
|
22
|
+
- Opening: Hook the reader immediately
|
|
23
|
+
- Development: Build character and conflict
|
|
24
|
+
- Climax: Reach the story's turning point
|
|
25
|
+
- Resolution: Provide satisfying closure
|
|
26
|
+
|
|
27
|
+
QUALITY STANDARDS:
|
|
28
|
+
- Original, creative content
|
|
29
|
+
- Grammatically correct prose
|
|
30
|
+
- Appropriate pacing for word count
|
|
31
|
+
- Clear narrative arc
|
|
32
|
+
|
|
33
|
+
Generate the complete story as plain text (no JSON, no code blocks).`;
|
|
34
|
+
/**
|
|
35
|
+
* Story Generator User Template
|
|
36
|
+
*
|
|
37
|
+
* Simple pass-through - RequestFormatterService handles the formatting
|
|
38
|
+
*/
|
|
39
|
+
const STORY_GENERATOR_USER_TEMPLATE = (formattedPrompt) => formattedPrompt;
|
|
40
|
+
exports.STORY_GENERATOR_USER_TEMPLATE = STORY_GENERATOR_USER_TEMPLATE;
|
|
41
|
+
//# sourceMappingURL=story-generator.messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"story-generator.messages.js","sourceRoot":"","sources":["../../../src/examples/story-generator/story-generator.messages.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;qEAwBuB,CAAC;AAEtE;;;;GAIG;AACI,MAAM,6BAA6B,GAAG,CAAC,eAAuB,EAAE,EAAE,CAAC,eAAe,CAAC;AAA7E,QAAA,6BAA6B,iCAAgD"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { BaseAIUseCase } from '../../middleware/usecases/base/base-ai.usecase';
|
|
2
|
+
import { BaseAIRequest, BaseAIResult } from '../../middleware/shared/types/base-request.types';
|
|
3
|
+
import { ModelParameterOverrides } from '../../middleware/services/model-parameter-manager/model-parameter-manager.service';
|
|
4
|
+
/**
|
|
5
|
+
* Story generation context interface
|
|
6
|
+
*/
|
|
7
|
+
export interface StoryContext {
|
|
8
|
+
setting?: string;
|
|
9
|
+
protagonist?: string;
|
|
10
|
+
antagonist?: string;
|
|
11
|
+
theme?: string;
|
|
12
|
+
tone?: string;
|
|
13
|
+
wordCount?: string;
|
|
14
|
+
genre?: string;
|
|
15
|
+
constraints?: string[];
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Story generation prompt - supports both simple strings and complex objects
|
|
20
|
+
*/
|
|
21
|
+
export type StoryPrompt = string | {
|
|
22
|
+
context?: StoryContext;
|
|
23
|
+
instruction: string;
|
|
24
|
+
} | {
|
|
25
|
+
prompt: {
|
|
26
|
+
context?: StoryContext;
|
|
27
|
+
instruction: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Story generation request interface
|
|
32
|
+
*/
|
|
33
|
+
export interface StoryGeneratorRequest extends BaseAIRequest<StoryPrompt> {
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Story generation result interface
|
|
37
|
+
*/
|
|
38
|
+
export interface StoryGeneratorResult extends BaseAIResult {
|
|
39
|
+
story: string;
|
|
40
|
+
wordCount: number;
|
|
41
|
+
extractedContext: StoryContext | null;
|
|
42
|
+
extractedInstruction: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Story Generator Use Case
|
|
46
|
+
*
|
|
47
|
+
* Demonstrates RequestFormatterService with complex nested context objects.
|
|
48
|
+
*
|
|
49
|
+
* **Key Features:**
|
|
50
|
+
* - Supports simple string prompts: "Write a story about dragons"
|
|
51
|
+
* - Supports complex objects with context and instruction
|
|
52
|
+
* - Uses RequestFormatterService for flexible prompt handling
|
|
53
|
+
* - Formats context using FlatFormatter (via RequestFormatterService)
|
|
54
|
+
* - Creative Writing preset for varied, engaging prose
|
|
55
|
+
*
|
|
56
|
+
* **Example Requests:**
|
|
57
|
+
*
|
|
58
|
+
* Simple string:
|
|
59
|
+
* ```
|
|
60
|
+
* { prompt: "Write a story about a lost key" }
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* Complex with context:
|
|
64
|
+
* ```
|
|
65
|
+
* {
|
|
66
|
+
* prompt: {
|
|
67
|
+
* context: {
|
|
68
|
+
* setting: "abandoned lighthouse, stormy night",
|
|
69
|
+
* protagonist: "elderly lighthouse keeper",
|
|
70
|
+
* theme: "redemption and forgiveness",
|
|
71
|
+
* tone: "melancholic yet hopeful",
|
|
72
|
+
* wordCount: "500-700 words",
|
|
73
|
+
* genre: "literary fiction"
|
|
74
|
+
* },
|
|
75
|
+
* instruction: "Write the opening scene where the keeper discovers an unexpected visitor."
|
|
76
|
+
* }
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* This use case shows how RequestFormatterService:
|
|
81
|
+
* - Extracts context and instruction from various formats
|
|
82
|
+
* - Formats nested objects into structured CONTEXT/INSTRUCTION sections
|
|
83
|
+
* - Uses FlatFormatter for clean context presentation
|
|
84
|
+
* - Validates prompts before processing
|
|
85
|
+
*/
|
|
86
|
+
export declare class StoryGeneratorUseCase extends BaseAIUseCase<StoryPrompt, StoryGeneratorRequest, StoryGeneratorResult> {
|
|
87
|
+
protected readonly systemMessage = "You are a creative writing assistant specializing in short story generation.\n\nYour task is to generate engaging, well-structured short stories based on the provided context and instructions.\n\nWRITING GUIDELINES:\n- Create vivid, immersive scenes with sensory details\n- Develop characters with clear motivations and conflicts\n- Use active voice and varied sentence structure\n- Maintain consistent tone and style throughout\n- Include dialogue where appropriate\n- Build tension and resolution\n\nSTRUCTURE:\n- Opening: Hook the reader immediately\n- Development: Build character and conflict\n- Climax: Reach the story's turning point\n- Resolution: Provide satisfying closure\n\nQUALITY STANDARDS:\n- Original, creative content\n- Grammatically correct prose\n- Appropriate pacing for word count\n- Clear narrative arc\n\nGenerate the complete story as plain text (no JSON, no code blocks).";
|
|
88
|
+
/**
|
|
89
|
+
* Get the user template from message file
|
|
90
|
+
*/
|
|
91
|
+
protected getUserTemplate(): (formattedPrompt: string) => string;
|
|
92
|
+
/**
|
|
93
|
+
* Format the user message using RequestFormatterService
|
|
94
|
+
*
|
|
95
|
+
* This demonstrates the primary use case for RequestFormatterService:
|
|
96
|
+
* handling complex, nested prompt structures with context and instructions.
|
|
97
|
+
*/
|
|
98
|
+
protected formatUserMessage(prompt: StoryPrompt): string;
|
|
99
|
+
/**
|
|
100
|
+
* Override model parameters for creative story generation
|
|
101
|
+
*
|
|
102
|
+
* Uses Creative Writing preset for engaging, varied prose.
|
|
103
|
+
*/
|
|
104
|
+
protected getParameterOverrides(): ModelParameterOverrides;
|
|
105
|
+
/**
|
|
106
|
+
* Create the result with extracted metadata
|
|
107
|
+
*/
|
|
108
|
+
protected createResult(content: string, usedPrompt: string, thinking?: string): StoryGeneratorResult;
|
|
109
|
+
private currentRequest?;
|
|
110
|
+
/**
|
|
111
|
+
* Override execute to store request for result creation
|
|
112
|
+
*/
|
|
113
|
+
execute(request: StoryGeneratorRequest): Promise<StoryGeneratorResult>;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=story-generator.usecase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"story-generator.usecase.d.ts","sourceRoot":"","sources":["../../../src/examples/story-generator/story-generator.usecase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kDAAkD,CAAC;AAM/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,mFAAmF,CAAC;AAE5H;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,MAAM,GACN;IACE,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,YAAY,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa,CAAC,WAAW,CAAC;CAExE;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,WAAW,EAAE,qBAAqB,EAAE,oBAAoB,CAAC;IAEhH,SAAS,CAAC,QAAQ,CAAC,aAAa,u4BAAkC;IAElE;;OAEG;IACH,SAAS,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM;IAIhE;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;IAaxD;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,uBAAuB;IAa1D;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,oBAAoB;IAsBpG,OAAO,CAAC,cAAc,CAAC,CAAwB;IAE/C;;OAEG;IACU,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAIpF"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StoryGeneratorUseCase = void 0;
|
|
4
|
+
const base_ai_usecase_1 = require("../../middleware/usecases/base/base-ai.usecase");
|
|
5
|
+
const request_formatter_1 = require("../../middleware/services/request-formatter");
|
|
6
|
+
const story_generator_messages_1 = require("./story-generator.messages");
|
|
7
|
+
/**
|
|
8
|
+
* Story Generator Use Case
|
|
9
|
+
*
|
|
10
|
+
* Demonstrates RequestFormatterService with complex nested context objects.
|
|
11
|
+
*
|
|
12
|
+
* **Key Features:**
|
|
13
|
+
* - Supports simple string prompts: "Write a story about dragons"
|
|
14
|
+
* - Supports complex objects with context and instruction
|
|
15
|
+
* - Uses RequestFormatterService for flexible prompt handling
|
|
16
|
+
* - Formats context using FlatFormatter (via RequestFormatterService)
|
|
17
|
+
* - Creative Writing preset for varied, engaging prose
|
|
18
|
+
*
|
|
19
|
+
* **Example Requests:**
|
|
20
|
+
*
|
|
21
|
+
* Simple string:
|
|
22
|
+
* ```
|
|
23
|
+
* { prompt: "Write a story about a lost key" }
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* Complex with context:
|
|
27
|
+
* ```
|
|
28
|
+
* {
|
|
29
|
+
* prompt: {
|
|
30
|
+
* context: {
|
|
31
|
+
* setting: "abandoned lighthouse, stormy night",
|
|
32
|
+
* protagonist: "elderly lighthouse keeper",
|
|
33
|
+
* theme: "redemption and forgiveness",
|
|
34
|
+
* tone: "melancholic yet hopeful",
|
|
35
|
+
* wordCount: "500-700 words",
|
|
36
|
+
* genre: "literary fiction"
|
|
37
|
+
* },
|
|
38
|
+
* instruction: "Write the opening scene where the keeper discovers an unexpected visitor."
|
|
39
|
+
* }
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* This use case shows how RequestFormatterService:
|
|
44
|
+
* - Extracts context and instruction from various formats
|
|
45
|
+
* - Formats nested objects into structured CONTEXT/INSTRUCTION sections
|
|
46
|
+
* - Uses FlatFormatter for clean context presentation
|
|
47
|
+
* - Validates prompts before processing
|
|
48
|
+
*/
|
|
49
|
+
class StoryGeneratorUseCase extends base_ai_usecase_1.BaseAIUseCase {
|
|
50
|
+
constructor() {
|
|
51
|
+
super(...arguments);
|
|
52
|
+
this.systemMessage = story_generator_messages_1.STORY_GENERATOR_SYSTEM_MESSAGE;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get the user template from message file
|
|
56
|
+
*/
|
|
57
|
+
getUserTemplate() {
|
|
58
|
+
return story_generator_messages_1.STORY_GENERATOR_USER_TEMPLATE;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Format the user message using RequestFormatterService
|
|
62
|
+
*
|
|
63
|
+
* This demonstrates the primary use case for RequestFormatterService:
|
|
64
|
+
* handling complex, nested prompt structures with context and instructions.
|
|
65
|
+
*/
|
|
66
|
+
formatUserMessage(prompt) {
|
|
67
|
+
// RequestFormatterService handles:
|
|
68
|
+
// - String prompts directly
|
|
69
|
+
// - Objects with context + instruction
|
|
70
|
+
// - Nested prompt structures
|
|
71
|
+
// - FlatFormatter integration for context formatting
|
|
72
|
+
return request_formatter_1.RequestFormatterService.formatUserMessage(prompt, this.getUserTemplate(), 'StoryGeneratorUseCase');
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Override model parameters for creative story generation
|
|
76
|
+
*
|
|
77
|
+
* Uses Creative Writing preset for engaging, varied prose.
|
|
78
|
+
*/
|
|
79
|
+
getParameterOverrides() {
|
|
80
|
+
return {
|
|
81
|
+
// Creative Writing preset
|
|
82
|
+
temperatureOverride: 0.85, // High creativity for unique stories
|
|
83
|
+
repeatPenalty: 1.3, // Reduce repetitive phrasing
|
|
84
|
+
frequencyPenalty: 0.2, // Encourage diverse vocabulary
|
|
85
|
+
presencePenalty: 0.2, // Introduce varied concepts
|
|
86
|
+
topP: 0.92, // Nucleus sampling for creative token selection
|
|
87
|
+
topK: 60, // Moderate vocabulary diversity
|
|
88
|
+
repeatLastN: 128 // Extended context for consistency
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Create the result with extracted metadata
|
|
93
|
+
*/
|
|
94
|
+
createResult(content, usedPrompt, thinking) {
|
|
95
|
+
const story = content.trim();
|
|
96
|
+
const wordCount = story.split(/\s+/).length;
|
|
97
|
+
// Extract context and instruction from the original prompt
|
|
98
|
+
// This demonstrates RequestFormatterService's extraction capabilities
|
|
99
|
+
const extractedContext = request_formatter_1.RequestFormatterService.extractContext(this.currentRequest?.prompt);
|
|
100
|
+
const extractedInstruction = request_formatter_1.RequestFormatterService.extractInstruction(this.currentRequest?.prompt);
|
|
101
|
+
return {
|
|
102
|
+
generatedContent: content,
|
|
103
|
+
model: this.modelConfig.name,
|
|
104
|
+
usedPrompt: usedPrompt,
|
|
105
|
+
thinking: thinking,
|
|
106
|
+
story: story,
|
|
107
|
+
wordCount: wordCount,
|
|
108
|
+
extractedContext: extractedContext,
|
|
109
|
+
extractedInstruction: extractedInstruction
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Override execute to store request for result creation
|
|
114
|
+
*/
|
|
115
|
+
async execute(request) {
|
|
116
|
+
this.currentRequest = request;
|
|
117
|
+
return super.execute(request);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.StoryGeneratorUseCase = StoryGeneratorUseCase;
|
|
121
|
+
//# sourceMappingURL=story-generator.usecase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"story-generator.usecase.js","sourceRoot":"","sources":["../../../src/examples/story-generator/story-generator.usecase.ts"],"names":[],"mappings":";;;AAAA,oFAA+E;AAE/E,mFAAsF;AACtF,yEAGoC;AAmDpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAa,qBAAsB,SAAQ,+BAAuE;IAAlH;;QAEqB,kBAAa,GAAG,yDAA8B,CAAC;IAgFpE,CAAC;IA9EC;;OAEG;IACO,eAAe;QACvB,OAAO,wDAA6B,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACO,iBAAiB,CAAC,MAAmB;QAC7C,mCAAmC;QACnC,4BAA4B;QAC5B,uCAAuC;QACvC,6BAA6B;QAC7B,qDAAqD;QACrD,OAAO,2CAAuB,CAAC,iBAAiB,CAC9C,MAAM,EACN,IAAI,CAAC,eAAe,EAAE,EACtB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACO,qBAAqB;QAC7B,OAAO;YACL,0BAA0B;YAC1B,mBAAmB,EAAE,IAAI,EAAG,qCAAqC;YACjE,aAAa,EAAE,GAAG,EAAW,6BAA6B;YAC1D,gBAAgB,EAAE,GAAG,EAAQ,+BAA+B;YAC5D,eAAe,EAAE,GAAG,EAAS,4BAA4B;YACzD,IAAI,EAAE,IAAI,EAAmB,gDAAgD;YAC7E,IAAI,EAAE,EAAE,EAAqB,gCAAgC;YAC7D,WAAW,EAAE,GAAG,CAAa,mCAAmC;SACjE,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,OAAe,EAAE,UAAkB,EAAE,QAAiB;QAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAE5C,2DAA2D;QAC3D,sEAAsE;QACtE,MAAM,gBAAgB,GAAG,2CAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAwB,CAAC;QACpH,MAAM,oBAAoB,GAAG,2CAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAErG,OAAO;YACL,gBAAgB,EAAE,OAAO;YACzB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC5B,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,gBAAgB;YAClC,oBAAoB,EAAE,oBAAoB;SAC3C,CAAC;IACJ,CAAC;IAKD;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,OAA8B;QACjD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AAlFD,sDAkFC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System and user message templates for the Tweet Generator use case
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* System message for tweet generation
|
|
6
|
+
* Emphasizes brevity, engagement, and Twitter best practices
|
|
7
|
+
*/
|
|
8
|
+
export declare const TWEET_GENERATOR_SYSTEM_MESSAGE = "You are an expert social media content creator specializing in Twitter/X posts.\n\nCRITICAL REQUIREMENTS:\n1. Be concise, engaging, and impactful\n2. Use clear, accessible language\n3. Avoid hashtags unless specifically requested\n4. NO explanations, NO preamble - ONLY output the tweet text\n\nSTYLE GUIDELINES:\n- Start with a hook or attention-grabbing statement\n- Use active voice and present tense when possible\n- Include a call-to-action or thought-provoking question when appropriate\n- Break complex ideas into simple, digestible statements\n\nOUTPUT FORMAT:\nReturn ONLY the tweet text. Nothing else.";
|
|
9
|
+
/**
|
|
10
|
+
* User message template for tweet generation
|
|
11
|
+
* @param formattedPrompt The formatted tweet topic/request
|
|
12
|
+
* @returns Complete user message
|
|
13
|
+
*/
|
|
14
|
+
export declare const TWEET_GENERATOR_USER_TEMPLATE: (formattedPrompt: string) => string;
|
|
15
|
+
//# sourceMappingURL=tweet-generator.messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tweet-generator.messages.d.ts","sourceRoot":"","sources":["../../../src/examples/tweet-generator/tweet-generator.messages.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,eAAO,MAAM,8BAA8B,wmBAeD,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,iBAAiB,MAAM,KAAG,MAMvE,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* System and user message templates for the Tweet Generator use case
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TWEET_GENERATOR_USER_TEMPLATE = exports.TWEET_GENERATOR_SYSTEM_MESSAGE = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* System message for tweet generation
|
|
9
|
+
* Emphasizes brevity, engagement, and Twitter best practices
|
|
10
|
+
*/
|
|
11
|
+
exports.TWEET_GENERATOR_SYSTEM_MESSAGE = `You are an expert social media content creator specializing in Twitter/X posts.
|
|
12
|
+
|
|
13
|
+
CRITICAL REQUIREMENTS:
|
|
14
|
+
1. Be concise, engaging, and impactful
|
|
15
|
+
2. Use clear, accessible language
|
|
16
|
+
3. Avoid hashtags unless specifically requested
|
|
17
|
+
4. NO explanations, NO preamble - ONLY output the tweet text
|
|
18
|
+
|
|
19
|
+
STYLE GUIDELINES:
|
|
20
|
+
- Start with a hook or attention-grabbing statement
|
|
21
|
+
- Use active voice and present tense when possible
|
|
22
|
+
- Include a call-to-action or thought-provoking question when appropriate
|
|
23
|
+
- Break complex ideas into simple, digestible statements
|
|
24
|
+
|
|
25
|
+
OUTPUT FORMAT:
|
|
26
|
+
Return ONLY the tweet text. Nothing else.`;
|
|
27
|
+
/**
|
|
28
|
+
* User message template for tweet generation
|
|
29
|
+
* @param formattedPrompt The formatted tweet topic/request
|
|
30
|
+
* @returns Complete user message
|
|
31
|
+
*/
|
|
32
|
+
const TWEET_GENERATOR_USER_TEMPLATE = (formattedPrompt) => {
|
|
33
|
+
return `Generate a tweet about the following topic:
|
|
34
|
+
|
|
35
|
+
${formattedPrompt}
|
|
36
|
+
|
|
37
|
+
!`;
|
|
38
|
+
};
|
|
39
|
+
exports.TWEET_GENERATOR_USER_TEMPLATE = TWEET_GENERATOR_USER_TEMPLATE;
|
|
40
|
+
//# sourceMappingURL=tweet-generator.messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tweet-generator.messages.js","sourceRoot":"","sources":["../../../src/examples/tweet-generator/tweet-generator.messages.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;;GAGG;AACU,QAAA,8BAA8B,GAAG;;;;;;;;;;;;;;;0CAeJ,CAAC;AAE3C;;;;GAIG;AACI,MAAM,6BAA6B,GAAG,CAAC,eAAuB,EAAU,EAAE;IAC/E,OAAO;;EAEP,eAAe;;EAEf,CAAC;AACH,CAAC,CAAC;AANW,QAAA,6BAA6B,iCAMxC"}
|