@futdevpro/nts-dynamo 1.15.23 → 1.15.29

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.
Files changed (68) hide show
  1. package/README.md +4 -0
  2. package/__documentations/2026-05-17-oai-compatible-providers.md +229 -0
  3. package/_specifications/BACKLOG.md +28 -0
  4. package/build/_models/interfaces/compare-data-options.interface.d.ts +27 -0
  5. package/build/_models/interfaces/compare-data-options.interface.d.ts.map +1 -0
  6. package/build/_models/interfaces/compare-data-options.interface.js +3 -0
  7. package/build/_models/interfaces/compare-data-options.interface.js.map +1 -0
  8. package/build/_models/interfaces/compare-data-result.interface.d.ts +13 -0
  9. package/build/_models/interfaces/compare-data-result.interface.d.ts.map +1 -0
  10. package/build/_models/interfaces/compare-data-result.interface.js +3 -0
  11. package/build/_models/interfaces/compare-data-result.interface.js.map +1 -0
  12. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.d.ts +14 -0
  13. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.d.ts.map +1 -0
  14. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.js +3 -0
  15. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.js.map +1 -0
  16. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.d.ts +50 -0
  17. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.d.ts.map +1 -0
  18. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.js +3 -0
  19. package/build/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.js.map +1 -0
  20. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.d.ts.map +1 -1
  21. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.js +32 -0
  22. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.js.map +1 -1
  23. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.d.ts.map +1 -1
  24. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.js +20 -2
  25. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.js.map +1 -1
  26. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts +4 -1
  27. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.d.ts.map +1 -1
  28. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js +28 -1
  29. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.js.map +1 -1
  30. package/build/_modules/ai/_services/ai-provider.service-base.d.ts +21 -0
  31. package/build/_modules/ai/_services/ai-provider.service-base.d.ts.map +1 -1
  32. package/build/_modules/ai/_services/ai-provider.service-base.js +32 -0
  33. package/build/_modules/ai/_services/ai-provider.service-base.js.map +1 -1
  34. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.d.ts +17 -1
  35. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.d.ts.map +1 -1
  36. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.js +16 -0
  37. package/build/_modules/local-vector-search/_enums/lvs-search-mode.enum.js.map +1 -1
  38. package/build/_modules/local-vector-search/_services/lvs-bm25.util.d.ts +89 -0
  39. package/build/_modules/local-vector-search/_services/lvs-bm25.util.d.ts.map +1 -0
  40. package/build/_modules/local-vector-search/_services/lvs-bm25.util.js +190 -0
  41. package/build/_modules/local-vector-search/_services/lvs-bm25.util.js.map +1 -0
  42. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.d.ts +18 -2
  43. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.d.ts.map +1 -1
  44. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.js +57 -3
  45. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.js.map +1 -1
  46. package/build/_services/base/data.service.d.ts +63 -0
  47. package/build/_services/base/data.service.d.ts.map +1 -1
  48. package/build/_services/base/data.service.js +189 -0
  49. package/build/_services/base/data.service.js.map +1 -1
  50. package/package.json +1 -1
  51. package/src/_models/interfaces/compare-data-options.interface.ts +27 -0
  52. package/src/_models/interfaces/compare-data-result.interface.ts +12 -0
  53. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event-callback.interface.ts +14 -0
  54. package/src/_modules/ai/_models/interfaces/dynts-ai-cost-event.interface.ts +56 -0
  55. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +92 -0
  56. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts +38 -4
  57. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +24 -5
  58. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +52 -0
  59. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +39 -10
  60. package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +79 -0
  61. package/src/_modules/ai/_services/ai-provider.service-base.ts +41 -3
  62. package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +16 -0
  63. package/src/_modules/local-vector-search/_services/lvs-bm25.util.spec.ts +159 -0
  64. package/src/_modules/local-vector-search/_services/lvs-bm25.util.ts +206 -0
  65. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +135 -0
  66. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +95 -9
  67. package/src/_services/base/data.service.spec.ts +181 -0
  68. package/src/_services/base/data.service.ts +196 -2
@@ -1 +1 @@
1
- {"version":3,"file":"oai-llm.service-base.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oai-llm.service-base.d.ts","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,10 @@ class DyNTS_OAI_LLM_ServiceBase extends ai_llm_service_base_1.DyNTS_AI_LLM_Servi
60
60
  this.defaultSettings = set?.defaultSettings ??
61
61
  oai_global_settings_const_1.DyNTS_OAI_global_settings.defaultSettings ??
62
62
  new open_ai_1.DyFM_OAI_CallSettings();
63
+ // FR-002 — opcionális per-call cost-event callback átadás a base-osztálynak
64
+ if (set?.onCostEvent) {
65
+ this.onCostEvent = set.onCostEvent;
66
+ }
63
67
  }
64
68
  /**
65
69
  * Inicializálja az OpenAI client-et a megadott config-gal
@@ -335,8 +339,31 @@ class DyNTS_OAI_LLM_ServiceBase extends ai_llm_service_base_1.DyNTS_AI_LLM_Servi
335
339
  } */
336
340
  ) {
337
341
  try {
342
+ // FR-002 — callType meghatározás a unshift ELŐTT (a system-message hozzáadás
343
+ // után már 2+ message lenne, ami a "chat" kategóriát mindig kiváltja).
344
+ // 1 user-message → 'llm-completion'; több → 'llm-chat'. A 'llm-tool-use'
345
+ // categoria a tools paraméterek bevezetésekor kerül használatba (jövőbeli FR).
346
+ const userMessageCount = set.conversation.length;
338
347
  set.conversation.unshift(this.getDefaultSystemMessage(set.settings));
339
- const result = await this.openai.chat.completions.create(this.getMessageCreateInput(set));
348
+ // FR-002 per-call cost-event timing: a tényleges API-call latency mérve
349
+ const input = this.getMessageCreateInput(set);
350
+ const start = Date.now();
351
+ const result = await this.openai.chat.completions.create(input);
352
+ const durationMs = Date.now() - start;
353
+ // FR-002 — cost-event emit (safe, no-op ha nincs onCostEvent callback)
354
+ this.emitCostEvent({
355
+ callType: userMessageCount === 1 ? 'llm-completion' : 'llm-chat',
356
+ provider: this.aiProvider,
357
+ model: String(input.model ?? this.defaultModel),
358
+ tokensUsed: {
359
+ input: result.usage?.prompt_tokens ?? 0,
360
+ output: result.usage?.completion_tokens ?? 0,
361
+ total: result.usage?.total_tokens ?? 0,
362
+ },
363
+ durationMs: durationMs,
364
+ issuer: set.issuer,
365
+ timestamp: new Date(),
366
+ });
340
367
  if (set.getFullResponse) {
341
368
  return result;
342
369
  }
@@ -1 +1 @@
1
- {"version":3,"file":"oai-llm.service-base.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oai-llm.service-base.js","sourceRoot":"","sources":["../../../../../../src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,8DAA4G;AAC5G,sDAA4H;AAC5H,iDAQkC;AAElC,6FAA0F;AAK1F,yFAAsF;AACtF,yGAA4G;AAC5G,gFAAkF;AAYlF;;;;;;GAMG;AAEH,kCAAkC;AAElC,MAAa,yBAA0B,SAAQ,8CAAwB;IAErE;;+DAE2D;IAE3D,MAAM,CAAS;IAEN,eAAe,CAAwB;IAEhD,yDAAyD;IAChD,UAAU,GAAqB,qBAAgB,CAAC,MAAM,CAAC;IAEvD,YAAY,GAAiC;QACpD,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,IAAI;QAChB,eAAe,EAAE,IAAI;QACrB,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;QACrB,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,MAAM;QACxB,mBAAmB,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,wBAAwB,EAAE,wBAAwB,CAAC;KACnG,CAAC;IAEF;;QAEI;IAEJ;;QAEI;IAEJ,IAAa,YAAY;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,kBAAkB,GAAsC,2EAAuC,CAAC;IAEhG,YACE,GAAsE;QAEtE,KAAK,EAAE,CAAC;QAER,6CAAqB,CAAC,eAAe,KAAK,qDAAyB,CAAC;QAEpE,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CACtB,GAAG,EAAE,MAAM;YACX;gBACE,YAAY,EAAE,6CAAqB,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY;gBACpE,MAAM,EAAE,6CAAqB,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM;gBACxD,OAAO,EAAE,6CAAqB,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO;aAC3D,CACF,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,eAAe;YACzC,qDAAyB,CAAC,eAAe;YACzC,IAAI,+BAAqB,EAAE,CAAC;QAE9B,4EAA4E;QAC5E,IAAI,GAAG,EAAE,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAsB;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,iEAAiE;IAEjE,uBAAuB;IAEvB;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAChB,GAA0B;QAE1B,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC;QAErD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,6CAA6C;IAC7C,wCAAwC;IAExC;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CACrB,GAA0B;QAE1B,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IACD,kDAAkD;IAClD,kDAAkD;IAElD;;;;OAIG;IACH;;;;;;;;;;;;;;;;;;;QAmBI;IACJ,kDAAkD;IAClD,0CAA0C;IAE1C;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CACjB,GAAmC;QAEnC,MAAM,OAAO,GAAa,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACtE,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAC1E,yBAAyB,EACzB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAChC,CAAC;QACF,GAAG,CAAC,OAAO,IAAI,sBAAsB,CAAC;QAEtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,2BAA2B,CAAI,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAClF,CAAC;IACD,8CAA8C;IAC9C,qCAAqC;IAErC;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CACtB,GAA+D;QAE/D,MAAM,OAAO,GAAa,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,CACxE,yBAAyB,EACzB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAChC,CAAC;QACF,GAAG,CAAC,OAAO,IAAI,sBAAsB,CAAC;QAEtC,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAEpC,OAAO,IAAI,CAAC,4BAA4B,CAAI,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9E;;;;;;;;;;;;;;;;;;yBAkBiB;IACnB,CAAC;IACD,qEAAqE;IACrE,qEAAqE;IAErE;;;;;;OAMG;IACH;;;;;;;;;;;;QAYI;IACJ,sDAAsD;IACtD,qDAAqD;IAErD;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CACf,GAAiD;QAEjD,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;QAEnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,mBAAmB,CAAI,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,gDAAgD;IAChD,sCAAsC;IAEtC;;;;;;;;OAQG;IACH,KAAK,CAAC,sCAAsC,CAC1C,GAA6D;QAE7D,MAAM,8BAA8B,GAAG,IAAI,CAAC,kBAAkB,CAAC,8BAA8B,CAAC,OAAO,CACnG,+BAA+B,EAC/B,GAAG,CAAC,eAAe,CACpB,CAAC;QACF,GAAG,CAAC,OAAO,IAAI,8BAA8B,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,mBAAmB,CAAI,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,uEAAuE;IACvE,4EAA4E;IAE5E;;;;;;;;OAQG;IACH,KAAK,CAAC,wBAAwB,CAC5B,GAAuD;QAEvD,MAAM,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,OAAO,CACvF,oBAAoB,EACpB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CACjC,CAAC;QACF,GAAG,CAAC,OAAO,IAAI,wBAAwB,CAAC;QAExC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,mBAAmB,CAAI,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,6DAA6D;IAC7D,gEAAgE;IAEhE;;;;;;;;OAQG;IACH;;;;;;;;QAQI;IACJ,gDAAgD;IAChD,sCAAsC;IACtC,gDAAgD;IAChD,qCAAqC;IAErC,KAAK,CAAC,WAAW,CACf,GAAiD;QAEjD,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;QAEnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAEpD,OAAO,IAAI,CAAC,mBAAmB,CAAI,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CACxB,GAAiD;QAEjD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEtB,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC;QACxB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAW,MAAM,IAAI,CAAC,cAAc,CAAC;YAC/C,GAAG,GAAG;YACN,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,eAAe,EAAE,KAAK;SACvB,CAAW,CAAC;QAEb,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEvB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,qDAAqD;IACrD,4BAA4B;IAC5B,qDAAqD;IACrD,uCAAuC;IACvC,qDAAqD;IACrD,oCAAoC;IACpC,qDAAqD;IACrD,uCAAuC;IAEvC;;;;OAIG;IACH;;;;;;;;;QASI;IACJ,yDAAyD;IACzD,oDAAoD;IAEpD,YAAY;IAEZ;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAClB,GAA0D;IAC1D;;;;;QAKI;IACJ;;;;;QAKI;;QAEJ,IAAI,CAAC;YACH,6EAA6E;YAC7E,uEAAuE;YACvE,yEAAyE;YACzE,+EAA+E;YAC/E,MAAM,gBAAgB,GAAW,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;YAEzD,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAErE,0EAA0E;YAC1E,MAAM,KAAK,GAAmC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAC9E,MAAM,KAAK,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,MAAM,GAAmB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CACtE,KAAK,CACY,CAAC;YACpB,MAAM,UAAU,GAAW,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAE9C,uEAAuE;YACvE,IAAI,CAAC,aAAa,CAAC;gBACjB,QAAQ,EAAE,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU;gBAChE,QAAQ,EAAE,IAAI,CAAC,UAAU;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;gBAC/C,UAAU,EAAE;oBACV,KAAK,EAAG,MAAM,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;oBACxC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC;oBAC5C,KAAK,EAAG,MAAM,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;iBACxC;gBACD,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC;gBAEzE,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;aACzE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,qBAAqB,CAC7B,GAIC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC;YAEtD,MAAM,MAAM,GAAmC;gBAC7C,KAAK,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,YAAY;gBAC9C,QAAQ,EAAE,GAAG,CAAC,YAA4C;aAC3D,CAAC;YAEF,MAAM,CAAC,WAAW,GAAG,IAAA,yBAAY,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;gBACxD,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACtB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;YAEnC;;gDAEoC;YACpC,MAAM,CAAC,qBAAqB,GAAG,IAAA,yBAAY,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;gBAChE,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YAEjC,MAAM,CAAC,KAAK,GAAG,IAAA,yBAAY,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC3C,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAE5B,MAAM,CAAC,iBAAiB,GAAG,IAAA,yBAAY,EAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBACnE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBAC3B,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAExC,MAAM,CAAC,gBAAgB,GAAG,IAAA,yBAAY,EAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;gBACjE,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAC1B,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;YAEvC,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,uBAAuB,CAAC,0BAA0B,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC;gBAE9E,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;aACzE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAQ,CAAC,KAAK,CAAC,2BAA2B,EAAE,gBAAgB,EAAE,wBAAwB,EAAE;gBACtF,KAAK;gBACL,MAAM;aACP,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CAsSF;AAlzBD,8DAkzBC"}
@@ -1,16 +1,30 @@
1
1
  import { DyFM_AI_Provider } from '@futdevpro/fsm-dynamo/ai';
2
2
  import { DyFM_AI_ProviderCapabilities } from '@futdevpro/fsm-dynamo/ai';
3
3
  import { DyFM_AI_Config } from '@futdevpro/fsm-dynamo/ai';
4
+ import { DyNTS_AI_CostEvent } from '../_models/interfaces/dynts-ai-cost-event.interface';
5
+ import { DyNTS_AI_CostEventCallback } from '../_models/interfaces/dynts-ai-cost-event-callback.interface';
4
6
  import { DyNTS_SingletonService } from '../../../_services/base/singleton.service';
5
7
  /**
6
8
  * Abstract base class for all AI providers
7
9
  * Defines the common interface that all AI providers must implement
10
+ *
11
+ * **Cost-event hook (FR-002)**: a leszármazott concrete service-ek (OAI
12
+ * Embedding / LLM / Chat) a constructor-ban opcionálisan kapnak egy
13
+ * `onCostEvent` callback-et. Minden sikeres AI-call után `emitCostEvent`-tel
14
+ * hívják, ami safe (try/catch) — a callback hibája NEM akasztja meg az
15
+ * AI-call-t. Lásd `DyNTS_AI_CostEvent` interface.
8
16
  */
9
17
  export declare abstract class DyNTS_AI_Provider_ServiceBase extends DyNTS_SingletonService {
10
18
  /** The AI provider this service represents */
11
19
  abstract readonly aiProvider: DyFM_AI_Provider;
12
20
  /** The capabilities supported by this provider */
13
21
  abstract readonly capabilities: DyFM_AI_ProviderCapabilities;
22
+ /**
23
+ * Optional per-call cost-event callback (FR-002).
24
+ * A leszármazott service-ek minden sikeres AI-call után meghívják az
25
+ * `emitCostEvent` helper-en keresztül. Non-breaking: ha undefined, nincs emit.
26
+ */
27
+ protected onCostEvent?: DyNTS_AI_CostEventCallback;
14
28
  /**
15
29
  * Initialize the provider with configuration
16
30
  * @param config - Provider-specific configuration
@@ -22,5 +36,12 @@ export declare abstract class DyNTS_AI_Provider_ServiceBase extends DyNTS_Single
22
36
  * @returns Promise<boolean> - True if connection is successful
23
37
  */
24
38
  abstract testConnection(issuer: string): Promise<boolean>;
39
+ /**
40
+ * Safe cost-event emit: ha van regisztrált `onCostEvent` callback, meghívja.
41
+ * A callback hibája NEM propagálódik — try/catch-csel safen hívjuk és
42
+ * `DyFM_Log.warn`-nal jelezzük. Ezzel a consumer-oldali integráció
43
+ * (CCAP `CT_`, telemetry, stb.) hibái nem akasztják meg az AI-call-t.
44
+ */
45
+ protected emitCostEvent(event: DyNTS_AI_CostEvent): void;
25
46
  }
26
47
  //# sourceMappingURL=ai-provider.service-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-provider.service-base.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-provider.service-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEnF;;;GAGG;AACH,8BAAsB,6BAA8B,SAAQ,sBAAsB;IAChF,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAE/C,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,4BAA4B,CAAC;IAE7D;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAE5C;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAC1D"}
1
+ {"version":3,"file":"ai-provider.service-base.d.ts","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-provider.service-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,8DAA8D,CAAC;AAC1G,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEnF;;;;;;;;;GASG;AACH,8BAAsB,6BAA8B,SAAQ,sBAAsB;IAChF,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAE/C,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,4BAA4B,CAAC;IAE7D;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,EAAE,0BAA0B,CAAC;IAEnD;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAE5C;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAEzD;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;CAczD"}
@@ -1,12 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DyNTS_AI_Provider_ServiceBase = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
4
5
  const singleton_service_1 = require("../../../_services/base/singleton.service");
5
6
  /**
6
7
  * Abstract base class for all AI providers
7
8
  * Defines the common interface that all AI providers must implement
9
+ *
10
+ * **Cost-event hook (FR-002)**: a leszármazott concrete service-ek (OAI
11
+ * Embedding / LLM / Chat) a constructor-ban opcionálisan kapnak egy
12
+ * `onCostEvent` callback-et. Minden sikeres AI-call után `emitCostEvent`-tel
13
+ * hívják, ami safe (try/catch) — a callback hibája NEM akasztja meg az
14
+ * AI-call-t. Lásd `DyNTS_AI_CostEvent` interface.
8
15
  */
9
16
  class DyNTS_AI_Provider_ServiceBase extends singleton_service_1.DyNTS_SingletonService {
17
+ /**
18
+ * Optional per-call cost-event callback (FR-002).
19
+ * A leszármazott service-ek minden sikeres AI-call után meghívják az
20
+ * `emitCostEvent` helper-en keresztül. Non-breaking: ha undefined, nincs emit.
21
+ */
22
+ onCostEvent;
23
+ /**
24
+ * Safe cost-event emit: ha van regisztrált `onCostEvent` callback, meghívja.
25
+ * A callback hibája NEM propagálódik — try/catch-csel safen hívjuk és
26
+ * `DyFM_Log.warn`-nal jelezzük. Ezzel a consumer-oldali integráció
27
+ * (CCAP `CT_`, telemetry, stb.) hibái nem akasztják meg az AI-call-t.
28
+ */
29
+ emitCostEvent(event) {
30
+ if (!this.onCostEvent) {
31
+ return;
32
+ }
33
+ try {
34
+ this.onCostEvent(event);
35
+ }
36
+ catch (err) {
37
+ const msg = err instanceof Error ? err.message : String(err);
38
+ fsm_dynamo_1.DyFM_Log.warn(`DyNTS AI | onCostEvent callback threw (call-type: ${event.callType},`
39
+ + ` model: ${event.model}, issuer: ${event.issuer}): ${msg}`);
40
+ }
41
+ }
10
42
  }
11
43
  exports.DyNTS_AI_Provider_ServiceBase = DyNTS_AI_Provider_ServiceBase;
12
44
  //# sourceMappingURL=ai-provider.service-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-provider.service-base.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-provider.service-base.ts"],"names":[],"mappings":";;;AAGA,iFAAmF;AAEnF;;;GAGG;AACH,MAAsB,6BAA8B,SAAQ,0CAAsB;CAmBjF;AAnBD,sEAmBC"}
1
+ {"version":3,"file":"ai-provider.service-base.js","sourceRoot":"","sources":["../../../../src/_modules/ai/_services/ai-provider.service-base.ts"],"names":[],"mappings":";;;AAGA,sDAAiD;AAIjD,iFAAmF;AAEnF;;;;;;;;;GASG;AACH,MAAsB,6BAA8B,SAAQ,0CAAsB;IAOhF;;;;OAIG;IACO,WAAW,CAA8B;IAenD;;;;;OAKG;IACO,aAAa,CAAC,KAAyB;QAC/C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,GAAG,GAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrE,qBAAQ,CAAC,IAAI,CACX,qDAAqD,KAAK,CAAC,QAAQ,GAAG;kBACpE,WAAW,KAAK,CAAC,KAAK,aAAa,KAAK,CAAC,MAAM,MAAM,GAAG,EAAE,CAC7D,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA/CD,sEA+CC"}
@@ -14,6 +14,22 @@ export declare enum LVS_Search_Mode {
14
14
  * 0 vagy pozitív érték, ahol 0 a legkisebb távolság (legnagyobb hasonlóság)
15
15
  * Eredmények növekvő sorrendben (legkisebb távolság először)
16
16
  */
17
- l2Distance = "l2-distance"
17
+ l2Distance = "l2-distance",
18
+ /**
19
+ * Hybrid search: cosine similarity (vektor-fele) + BM25 (text-fele) score-merge.
20
+ *
21
+ * Hasznalat:
22
+ * - `searchMode: LVS_Search_Mode.hybrid`
23
+ * - `textSearchKey: keyof T` — KOTELEZO; melyik string property-n fut a BM25
24
+ * - `hybridWeight?: { vector: number; text: number }` — default { vector: 0.5, text: 0.5 }
25
+ *
26
+ * BM25 min-max normalizalva [0,1] a candidate-szettre (cosine mar 0..1), igy
27
+ * a `weight` direkt linearis kombinacio. Ha minden BM25 score 0 (egyetlen
28
+ * query term sem matchel), a hybrid effektivan cosine-only-re degradalodik.
29
+ *
30
+ * L2+hybrid kombinacio NEM tamogatott — a hybrid mindig cosine-alapu
31
+ * vector-half-fel mukodik.
32
+ */
33
+ hybrid = "hybrid"
18
34
  }
19
35
  //# sourceMappingURL=lvs-search-mode.enum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lvs-search-mode.enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IACzB;;;;OAIG;IACH,gBAAgB,sBAAsB;IACtC;;;;OAIG;IACH,UAAU,gBAAgB;CAC3B"}
1
+ {"version":3,"file":"lvs-search-mode.enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,eAAe;IACzB;;;;OAIG;IACH,gBAAgB,sBAAsB;IACtC;;;;OAIG;IACH,UAAU,gBAAgB;IAC1B;;;;;;;;;;;;;;OAcG;IACH,MAAM,WAAW;CAClB"}
@@ -19,5 +19,21 @@ var LVS_Search_Mode;
19
19
  * Eredmények növekvő sorrendben (legkisebb távolság először)
20
20
  */
21
21
  LVS_Search_Mode["l2Distance"] = "l2-distance";
22
+ /**
23
+ * Hybrid search: cosine similarity (vektor-fele) + BM25 (text-fele) score-merge.
24
+ *
25
+ * Hasznalat:
26
+ * - `searchMode: LVS_Search_Mode.hybrid`
27
+ * - `textSearchKey: keyof T` — KOTELEZO; melyik string property-n fut a BM25
28
+ * - `hybridWeight?: { vector: number; text: number }` — default { vector: 0.5, text: 0.5 }
29
+ *
30
+ * BM25 min-max normalizalva [0,1] a candidate-szettre (cosine mar 0..1), igy
31
+ * a `weight` direkt linearis kombinacio. Ha minden BM25 score 0 (egyetlen
32
+ * query term sem matchel), a hybrid effektivan cosine-only-re degradalodik.
33
+ *
34
+ * L2+hybrid kombinacio NEM tamogatott — a hybrid mindig cosine-alapu
35
+ * vector-half-fel mukodik.
36
+ */
37
+ LVS_Search_Mode["hybrid"] = "hybrid";
22
38
  })(LVS_Search_Mode || (exports.LVS_Search_Mode = LVS_Search_Mode = {}));
23
39
  //# sourceMappingURL=lvs-search-mode.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lvs-search-mode.enum.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,eAaX;AAbD,WAAY,eAAe;IACzB;;;;OAIG;IACH,yDAAsC,CAAA;IACtC;;;;OAIG;IACH,6CAA0B,CAAA;AAC5B,CAAC,EAbW,eAAe,+BAAf,eAAe,QAa1B"}
1
+ {"version":3,"file":"lvs-search-mode.enum.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,eA6BX;AA7BD,WAAY,eAAe;IACzB;;;;OAIG;IACH,yDAAsC,CAAA;IACtC;;;;OAIG;IACH,6CAA0B,CAAA;IAC1B;;;;;;;;;;;;;;OAcG;IACH,oCAAiB,CAAA;AACnB,CAAC,EA7BW,eAAe,+BAAf,eAAe,QA6B1B"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * BM25 text-search ranking util a LVS hybrid search-hez (FR-004).
3
+ *
4
+ * Pure TypeScript, dependency-free. In-memory corpus alapjan szamol score-okat,
5
+ * NEM perzisztal indexet (a hybrid hivasonkent ujraepiti a corpus-t a candidate
6
+ * dokumentumokon — kis (~100..10000 dokumentum) LVS-corpus eseten ez gyors es
7
+ * egyszeru).
8
+ *
9
+ * Canonical params: k1=1.2, b=0.75 (industry standard a "lucene-szeru"
10
+ * implementaciokban). NEM expose-oltak — ha kell, FR-002 kovetkezo iteracioban
11
+ * tehetjuk parameterizalhatova.
12
+ *
13
+ * Tokenizer: `text.toLowerCase().match(/\w+/g) || []`. Case-insensitive,
14
+ * alphanumeric+underscore boundary-k. `UserController` egy token marad (jo az
15
+ * identifier match-re), `auth-flow` ket tokenre esik (auth + flow).
16
+ *
17
+ * IDF formula (BM25+): `log((N - df + 0.5) / (df + 0.5) + 1)`. A +1 a logon
18
+ * belul garantalja, hogy a kozos szavak is pozitiv (kicsi) IDF-et kapjanak,
19
+ * NEM negativ-t — fontos a hybrid score-merge-nel hogy ne huzzon le dokumentumot
20
+ * ahol kozos szo szerepel.
21
+ */
22
+ /**
23
+ * Egy dokumentum BM25-score-ja egy query ellen, egy elore-felepitett corpus
24
+ * konteztusaban.
25
+ */
26
+ export interface DyNTS_LVS_BM25_DocScore {
27
+ /** Dokumentum azonosito (mint az LVS_SearchResult `id`-jaben). */
28
+ id: string;
29
+ /** Nyers BM25 score (0..∞). NEM normalizalt. */
30
+ score: number;
31
+ }
32
+ /**
33
+ * Felepitett BM25 corpus — egy adott dokumentumhalmaz indexe. A `score()` az
34
+ * indexen kerdez le egy query-t es minden dokumentumra ad egy score-t.
35
+ *
36
+ * Egy corpus egyszer-hasznalatos a hybrid search hivasban — NEM kell cache-elni,
37
+ * a felepites O(N * |doc|) ami pici N-re elhanyagolhato.
38
+ */
39
+ export declare class DyNTS_LVS_BM25_Corpus {
40
+ /** Tokenizalt dokumentumok: id -> tokens. */
41
+ private readonly docTokens;
42
+ /** Doc-length: id -> token count. */
43
+ private readonly docLengths;
44
+ /** Term -> doc-frequency (hany docban szerepel az adott term, legalabb 1x). */
45
+ private readonly termDocFreq;
46
+ /** Term -> id -> term-frequency a docban. */
47
+ private readonly termFreqByDoc;
48
+ /** Atlagos dokumentum-hossz (token count). */
49
+ private avgDocLength;
50
+ /** Total doc count. */
51
+ private docCount;
52
+ /**
53
+ * Letrehoz egy uj corpus-t a megadott id->text parok-bol.
54
+ * NEM dob hibat ures input-ra — ures corpus ervenyes (minden score = 0).
55
+ */
56
+ constructor(docs: {
57
+ id: string;
58
+ text: string;
59
+ }[]);
60
+ /**
61
+ * Public tokenizer — exportalt, hogy spec-ek + hivok ugyanazt a normalizalast
62
+ * tudjak hasznalni mint a corpus.
63
+ */
64
+ static tokenize(text: string): string[];
65
+ /**
66
+ * Visszaadja a corpus dokumentum-szamat (NEM-ures docok).
67
+ */
68
+ size(): number;
69
+ /**
70
+ * BM25 score minden dokumentumra a query-re.
71
+ *
72
+ * Ures query → minden score 0 (degenerate case; a hivo kezelje ha kell).
73
+ * Ures corpus → ures array.
74
+ */
75
+ score(query: string): DyNTS_LVS_BM25_DocScore[];
76
+ }
77
+ /**
78
+ * Min-max normalizalas [0,1] tartomanyra. A hybrid score-merge-hez kell a BM25
79
+ * score-okat a candidate-szetten 0..1 sav-ba hozni (a cosine mar 0..1).
80
+ *
81
+ * Edge case-ek:
82
+ * - Ures array → [].
83
+ * - Minden score azonos (max-min === 0) → minden 0.0 (NEM 0.5 vagy 1.0; ha
84
+ * nincs diszkriminacio, ne tegyunk hozza signal-t).
85
+ * - Negativ score-ok (BM25+IDF garantal pozitivat, de defensive): a min-max
86
+ * ugyanugy mukodik.
87
+ */
88
+ export declare function dyNTS_LVS_BM25_minMaxNormalize(scores: DyNTS_LVS_BM25_DocScore[]): DyNTS_LVS_BM25_DocScore[];
89
+ //# sourceMappingURL=lvs-bm25.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvs-bm25.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-bm25.util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAaH;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAGD;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAEhC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsD;IAChF,qCAAqC;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkD;IAC7E,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkD;IAC9E,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4E;IAC1G,8CAA8C;IAC9C,OAAO,CAAC,YAAY,CAAa;IACjC,uBAAuB;IACvB,OAAO,CAAC,QAAQ,CAAa;IAE7B;;;OAGG;gBACS,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;IAmChD;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAMvC;;OAEG;IACH,IAAI,IAAI,MAAM;IAKd;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,uBAAuB,EAAE;CAwChD;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,uBAAuB,EAAE,GAChC,uBAAuB,EAAE,CAmB3B"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ /**
3
+ * BM25 text-search ranking util a LVS hybrid search-hez (FR-004).
4
+ *
5
+ * Pure TypeScript, dependency-free. In-memory corpus alapjan szamol score-okat,
6
+ * NEM perzisztal indexet (a hybrid hivasonkent ujraepiti a corpus-t a candidate
7
+ * dokumentumokon — kis (~100..10000 dokumentum) LVS-corpus eseten ez gyors es
8
+ * egyszeru).
9
+ *
10
+ * Canonical params: k1=1.2, b=0.75 (industry standard a "lucene-szeru"
11
+ * implementaciokban). NEM expose-oltak — ha kell, FR-002 kovetkezo iteracioban
12
+ * tehetjuk parameterizalhatova.
13
+ *
14
+ * Tokenizer: `text.toLowerCase().match(/\w+/g) || []`. Case-insensitive,
15
+ * alphanumeric+underscore boundary-k. `UserController` egy token marad (jo az
16
+ * identifier match-re), `auth-flow` ket tokenre esik (auth + flow).
17
+ *
18
+ * IDF formula (BM25+): `log((N - df + 0.5) / (df + 0.5) + 1)`. A +1 a logon
19
+ * belul garantalja, hogy a kozos szavak is pozitiv (kicsi) IDF-et kapjanak,
20
+ * NEM negativ-t — fontos a hybrid score-merge-nel hogy ne huzzon le dokumentumot
21
+ * ahol kozos szo szerepel.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.DyNTS_LVS_BM25_Corpus = void 0;
25
+ exports.dyNTS_LVS_BM25_minMaxNormalize = dyNTS_LVS_BM25_minMaxNormalize;
26
+ /** BM25 k1 parameter (term saturation control). Canonical default. */
27
+ const BM25_K1 = 1.2;
28
+ /** BM25 b parameter (length normalization weight, 0=off, 1=full). Canonical default. */
29
+ const BM25_B = 0.75;
30
+ /** Token regex — alphanumeric + underscore. */
31
+ const TOKEN_REGEX = /\w+/g;
32
+ /**
33
+ * Felepitett BM25 corpus — egy adott dokumentumhalmaz indexe. A `score()` az
34
+ * indexen kerdez le egy query-t es minden dokumentumra ad egy score-t.
35
+ *
36
+ * Egy corpus egyszer-hasznalatos a hybrid search hivasban — NEM kell cache-elni,
37
+ * a felepites O(N * |doc|) ami pici N-re elhanyagolhato.
38
+ */
39
+ class DyNTS_LVS_BM25_Corpus {
40
+ /** Tokenizalt dokumentumok: id -> tokens. */
41
+ docTokens = new Map();
42
+ /** Doc-length: id -> token count. */
43
+ docLengths = new Map();
44
+ /** Term -> doc-frequency (hany docban szerepel az adott term, legalabb 1x). */
45
+ termDocFreq = new Map();
46
+ /** Term -> id -> term-frequency a docban. */
47
+ termFreqByDoc = new Map();
48
+ /** Atlagos dokumentum-hossz (token count). */
49
+ avgDocLength = 0;
50
+ /** Total doc count. */
51
+ docCount = 0;
52
+ /**
53
+ * Letrehoz egy uj corpus-t a megadott id->text parok-bol.
54
+ * NEM dob hibat ures input-ra — ures corpus ervenyes (minden score = 0).
55
+ */
56
+ constructor(docs) {
57
+ if (!Array.isArray(docs) || docs.length === 0) {
58
+ return;
59
+ }
60
+ let totalLength = 0;
61
+ for (const doc of docs) {
62
+ if (!doc || typeof doc.id !== 'string' || typeof doc.text !== 'string') {
63
+ continue;
64
+ }
65
+ const tokens = DyNTS_LVS_BM25_Corpus.tokenize(doc.text);
66
+ this.docTokens.set(doc.id, tokens);
67
+ this.docLengths.set(doc.id, tokens.length);
68
+ totalLength += tokens.length;
69
+ // Term-frequency a docban
70
+ const localTf = new Map();
71
+ for (const tok of tokens) {
72
+ localTf.set(tok, (localTf.get(tok) ?? 0) + 1);
73
+ }
74
+ for (const [term, tf] of localTf) {
75
+ // Doc-frequency: +1 per term, per doc
76
+ this.termDocFreq.set(term, (this.termDocFreq.get(term) ?? 0) + 1);
77
+ // Term-freq-by-doc reverse index
78
+ let perDoc = this.termFreqByDoc.get(term);
79
+ if (!perDoc) {
80
+ perDoc = new Map();
81
+ this.termFreqByDoc.set(term, perDoc);
82
+ }
83
+ perDoc.set(doc.id, tf);
84
+ }
85
+ }
86
+ this.docCount = this.docTokens.size;
87
+ this.avgDocLength = this.docCount > 0 ? totalLength / this.docCount : 0;
88
+ }
89
+ /**
90
+ * Public tokenizer — exportalt, hogy spec-ek + hivok ugyanazt a normalizalast
91
+ * tudjak hasznalni mint a corpus.
92
+ */
93
+ static tokenize(text) {
94
+ if (typeof text !== 'string' || text.length === 0) {
95
+ return [];
96
+ }
97
+ return text.toLowerCase().match(TOKEN_REGEX) ?? [];
98
+ }
99
+ /**
100
+ * Visszaadja a corpus dokumentum-szamat (NEM-ures docok).
101
+ */
102
+ size() {
103
+ return this.docCount;
104
+ }
105
+ /**
106
+ * BM25 score minden dokumentumra a query-re.
107
+ *
108
+ * Ures query → minden score 0 (degenerate case; a hivo kezelje ha kell).
109
+ * Ures corpus → ures array.
110
+ */
111
+ score(query) {
112
+ if (this.docCount === 0) {
113
+ return [];
114
+ }
115
+ const queryTokens = DyNTS_LVS_BM25_Corpus.tokenize(query);
116
+ if (queryTokens.length === 0) {
117
+ // Minden doc 0 score-t kap
118
+ const results = [];
119
+ for (const id of this.docTokens.keys()) {
120
+ results.push({ id: id, score: 0 });
121
+ }
122
+ return results;
123
+ }
124
+ // Egyedi query-termek halmaza (ismetlodes nem ad nagyobb IDF-et)
125
+ const uniqueTerms = Array.from(new Set(queryTokens));
126
+ // Pre-compute IDF a query-termekre
127
+ const idfMap = new Map();
128
+ for (const term of uniqueTerms) {
129
+ const df = this.termDocFreq.get(term) ?? 0;
130
+ // BM25+ IDF: log((N - df + 0.5) / (df + 0.5) + 1)
131
+ const idf = Math.log((this.docCount - df + 0.5) / (df + 0.5) + 1);
132
+ idfMap.set(term, idf);
133
+ }
134
+ // Per-doc BM25 score
135
+ const results = [];
136
+ for (const [docId, docLen] of this.docLengths) {
137
+ let score = 0;
138
+ for (const term of uniqueTerms) {
139
+ const tf = this.termFreqByDoc.get(term)?.get(docId) ?? 0;
140
+ if (tf === 0) {
141
+ continue;
142
+ }
143
+ const idf = idfMap.get(term) ?? 0;
144
+ const norm = 1 - BM25_B + BM25_B * (docLen / (this.avgDocLength || 1));
145
+ score += idf * (tf * (BM25_K1 + 1)) / (tf + BM25_K1 * norm);
146
+ }
147
+ results.push({ id: docId, score: score });
148
+ }
149
+ return results;
150
+ }
151
+ }
152
+ exports.DyNTS_LVS_BM25_Corpus = DyNTS_LVS_BM25_Corpus;
153
+ /**
154
+ * Min-max normalizalas [0,1] tartomanyra. A hybrid score-merge-hez kell a BM25
155
+ * score-okat a candidate-szetten 0..1 sav-ba hozni (a cosine mar 0..1).
156
+ *
157
+ * Edge case-ek:
158
+ * - Ures array → [].
159
+ * - Minden score azonos (max-min === 0) → minden 0.0 (NEM 0.5 vagy 1.0; ha
160
+ * nincs diszkriminacio, ne tegyunk hozza signal-t).
161
+ * - Negativ score-ok (BM25+IDF garantal pozitivat, de defensive): a min-max
162
+ * ugyanugy mukodik.
163
+ */
164
+ function dyNTS_LVS_BM25_minMaxNormalize(scores) {
165
+ if (!Array.isArray(scores) || scores.length === 0) {
166
+ return [];
167
+ }
168
+ let min = Infinity;
169
+ let max = -Infinity;
170
+ for (const s of scores) {
171
+ if (s.score < min) {
172
+ min = s.score;
173
+ }
174
+ if (s.score > max) {
175
+ max = s.score;
176
+ }
177
+ }
178
+ const range = max - min;
179
+ if (range === 0) {
180
+ // Nincs diszkriminacio — minden 0.0 (NEM huzzon le, NEM huzzon fel)
181
+ return scores.map((s) => ({
182
+ id: s.id, score: 0,
183
+ }));
184
+ }
185
+ return scores.map((s) => ({
186
+ id: s.id,
187
+ score: (s.score - min) / range,
188
+ }));
189
+ }
190
+ //# sourceMappingURL=lvs-bm25.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lvs-bm25.util.js","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-bm25.util.ts"],"names":[],"mappings":"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"}
@@ -89,10 +89,26 @@ export declare class DyNTS_LVS_VectorDataService<T extends DyFM_Metadata> extend
89
89
  */
90
90
  filterBy?: DyFM_DBFilter<T>;
91
91
  /**
92
- * Search mode (cosine similarity or L2 distance)
93
- * Defaults to this.defaultSearchMode
92
+ * Search mode (cosine similarity, L2 distance, or hybrid).
93
+ * Defaults to this.defaultSearchMode.
94
+ *
95
+ * `hybrid` mode combines cosine similarity (vector half) with BM25
96
+ * text scoring (text half) — `textSearchKey` is REQUIRED in hybrid mode.
94
97
  */
95
98
  searchMode?: LVS_Search_Mode;
99
+ /**
100
+ * Csak `hybrid` modban — weighted score-merge a cosine es a BM25 kozott.
101
+ * Default: { vector: 0.5, text: 0.5 }. Mindkettonek 0..1 tartomany javasolt.
102
+ */
103
+ hybridWeight?: {
104
+ vector: number;
105
+ text: number;
106
+ };
107
+ /**
108
+ * Csak `hybrid` modban — KOTELEZO; melyik string property-n fut a BM25
109
+ * text-search. NEM kell hogy a vectorized property legyen.
110
+ */
111
+ textSearchKey?: keyof T;
96
112
  }): Promise<T[]>;
97
113
  }
98
114
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lvs-local-vector-search.data-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EAErB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2EAA2E,CAAC;AAGxH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,2BAA2B,CAAC,CAAC,SAAS,aAAa,CAAE,SAAQ,2BAA2B,CAAC,CAAC,CAAC;IAEtG;;;OAGG;IACH,iBAAiB,EAAE,eAAe,CAAoC;IAEtE;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAQ;IAEnC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAsE;;IAGtF;;OAEG;IACH,IAAI,EAAE,CAAC;IACP;;OAEG;IACH,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACpC;;OAEG;IACH,cAAc,EAAE,iBAAiB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM;IAKhB;;;;;;;;;;;;;OAaG;IACY,YAAY,CACzB,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,iDAAiD;QACjD,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;;WAGG;QACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B;;WAEG;QACH,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B;;;WAGG;QACH,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B,GACA,OAAO,CAAC,CAAC,EAAE,CAAC;CAmLhB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG"}
1
+ {"version":3,"file":"lvs-local-vector-search.data-service.d.ts","sourceRoot":"","sources":["../../../../src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EAErB,aAAa,EACb,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAQjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2EAA2E,CAAC;AAGxH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,2BAA2B,CAAC,CAAC,SAAS,aAAa,CAAE,SAAQ,2BAA2B,CAAC,CAAC,CAAC;IAEtG;;;OAGG;IACH,iBAAiB,EAAE,eAAe,CAAoC;IAEtE;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAQ;IAEnC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAsE;;IAGtF;;OAEG;IACH,IAAI,EAAE,CAAC;IACP;;OAEG;IACH,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACpC;;OAEG;IACH,cAAc,EAAE,iBAAiB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM;IAKhB;;;;;;;;;;;;;OAaG;IACY,YAAY,CACzB,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,iDAAiD;QACjD,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;;WAGG;QACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B;;WAEG;QACH,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5B;;;;;;WAMG;QACH,UAAU,CAAC,EAAE,eAAe,CAAC;QAC7B;;;WAGG;QACH,YAAY,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAChD;;;WAGG;QACH,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;KACzB,GACA,OAAO,CAAC,CAAC,EAAE,CAAC;CAuPhB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG"}