@hazeljs/rag 0.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +379 -0
- package/dist/agentic/agentic-rag.service.d.ts +49 -0
- package/dist/agentic/agentic-rag.service.d.ts.map +1 -0
- package/dist/agentic/agentic-rag.service.js +149 -0
- package/dist/agentic/agentic-rag.service.js.map +1 -0
- package/dist/agentic/decorators/active-learning.decorator.d.ts +19 -0
- package/dist/agentic/decorators/active-learning.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/active-learning.decorator.js +98 -0
- package/dist/agentic/decorators/active-learning.decorator.js.map +1 -0
- package/dist/agentic/decorators/adaptive-retrieval.decorator.d.ts +16 -0
- package/dist/agentic/decorators/adaptive-retrieval.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/adaptive-retrieval.decorator.js +114 -0
- package/dist/agentic/decorators/adaptive-retrieval.decorator.js.map +1 -0
- package/dist/agentic/decorators/cached.decorator.d.ts +18 -0
- package/dist/agentic/decorators/cached.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/cached.decorator.js +93 -0
- package/dist/agentic/decorators/cached.decorator.js.map +1 -0
- package/dist/agentic/decorators/context-aware.decorator.d.ts +16 -0
- package/dist/agentic/decorators/context-aware.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/context-aware.decorator.js +169 -0
- package/dist/agentic/decorators/context-aware.decorator.js.map +1 -0
- package/dist/agentic/decorators/corrective-rag.decorator.d.ts +15 -0
- package/dist/agentic/decorators/corrective-rag.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/corrective-rag.decorator.js +146 -0
- package/dist/agentic/decorators/corrective-rag.decorator.js.map +1 -0
- package/dist/agentic/decorators/hyde.decorator.d.ts +14 -0
- package/dist/agentic/decorators/hyde.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/hyde.decorator.js +90 -0
- package/dist/agentic/decorators/hyde.decorator.js.map +1 -0
- package/dist/agentic/decorators/index.d.ts +16 -0
- package/dist/agentic/decorators/index.d.ts.map +1 -0
- package/dist/agentic/decorators/index.js +32 -0
- package/dist/agentic/decorators/index.js.map +1 -0
- package/dist/agentic/decorators/multi-hop.decorator.d.ts +14 -0
- package/dist/agentic/decorators/multi-hop.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/multi-hop.decorator.js +120 -0
- package/dist/agentic/decorators/multi-hop.decorator.js.map +1 -0
- package/dist/agentic/decorators/query-planner.decorator.d.ts +19 -0
- package/dist/agentic/decorators/query-planner.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/query-planner.decorator.js +227 -0
- package/dist/agentic/decorators/query-planner.decorator.js.map +1 -0
- package/dist/agentic/decorators/query-rewriter.decorator.d.ts +15 -0
- package/dist/agentic/decorators/query-rewriter.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/query-rewriter.decorator.js +140 -0
- package/dist/agentic/decorators/query-rewriter.decorator.js.map +1 -0
- package/dist/agentic/decorators/self-reflective.decorator.d.ts +18 -0
- package/dist/agentic/decorators/self-reflective.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/self-reflective.decorator.js +210 -0
- package/dist/agentic/decorators/self-reflective.decorator.js.map +1 -0
- package/dist/agentic/decorators/source-verification.decorator.d.ts +15 -0
- package/dist/agentic/decorators/source-verification.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/source-verification.decorator.js +121 -0
- package/dist/agentic/decorators/source-verification.decorator.js.map +1 -0
- package/dist/agentic/index.d.ts +9 -0
- package/dist/agentic/index.d.ts.map +1 -0
- package/dist/agentic/index.js +25 -0
- package/dist/agentic/index.js.map +1 -0
- package/dist/agentic/types.d.ts +209 -0
- package/dist/agentic/types.d.ts.map +1 -0
- package/dist/agentic/types.js +7 -0
- package/dist/agentic/types.js.map +1 -0
- package/dist/decorators/embeddable.decorator.d.ts +31 -0
- package/dist/decorators/embeddable.decorator.d.ts.map +1 -0
- package/dist/decorators/embeddable.decorator.js +44 -0
- package/dist/decorators/embeddable.decorator.js.map +1 -0
- package/dist/decorators/rag.decorator.d.ts +58 -0
- package/dist/decorators/rag.decorator.d.ts.map +1 -0
- package/dist/decorators/rag.decorator.js +78 -0
- package/dist/decorators/rag.decorator.js.map +1 -0
- package/dist/decorators/semantic-search.decorator.d.ts +69 -0
- package/dist/decorators/semantic-search.decorator.d.ts.map +1 -0
- package/dist/decorators/semantic-search.decorator.js +116 -0
- package/dist/decorators/semantic-search.decorator.js.map +1 -0
- package/dist/embeddings/cohere-embeddings.d.ts +33 -0
- package/dist/embeddings/cohere-embeddings.d.ts.map +1 -0
- package/dist/embeddings/cohere-embeddings.js +91 -0
- package/dist/embeddings/cohere-embeddings.js.map +1 -0
- package/dist/embeddings/openai-embeddings.d.ts +21 -0
- package/dist/embeddings/openai-embeddings.d.ts.map +1 -0
- package/dist/embeddings/openai-embeddings.js +53 -0
- package/dist/embeddings/openai-embeddings.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/index.d.ts +11 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +31 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/memory-manager.d.ts +96 -0
- package/dist/memory/memory-manager.d.ts.map +1 -0
- package/dist/memory/memory-manager.js +369 -0
- package/dist/memory/memory-manager.js.map +1 -0
- package/dist/memory/memory-store.interface.d.ts +73 -0
- package/dist/memory/memory-store.interface.d.ts.map +1 -0
- package/dist/memory/memory-store.interface.js +6 -0
- package/dist/memory/memory-store.interface.js.map +1 -0
- package/dist/memory/stores/buffer-memory.d.ts +47 -0
- package/dist/memory/stores/buffer-memory.d.ts.map +1 -0
- package/dist/memory/stores/buffer-memory.js +280 -0
- package/dist/memory/stores/buffer-memory.js.map +1 -0
- package/dist/memory/stores/hybrid-memory.d.ts +49 -0
- package/dist/memory/stores/hybrid-memory.d.ts.map +1 -0
- package/dist/memory/stores/hybrid-memory.js +194 -0
- package/dist/memory/stores/hybrid-memory.js.map +1 -0
- package/dist/memory/stores/vector-memory.d.ts +48 -0
- package/dist/memory/stores/vector-memory.d.ts.map +1 -0
- package/dist/memory/stores/vector-memory.js +312 -0
- package/dist/memory/stores/vector-memory.js.map +1 -0
- package/dist/memory/types.d.ts +119 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +18 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/rag-pipeline-with-memory.d.ts +68 -0
- package/dist/rag-pipeline-with-memory.d.ts.map +1 -0
- package/dist/rag-pipeline-with-memory.js +186 -0
- package/dist/rag-pipeline-with-memory.js.map +1 -0
- package/dist/rag-pipeline.d.ts +59 -0
- package/dist/rag-pipeline.d.ts.map +1 -0
- package/dist/rag-pipeline.js +181 -0
- package/dist/rag-pipeline.js.map +1 -0
- package/dist/rag.module.d.ts +26 -0
- package/dist/rag.module.d.ts.map +1 -0
- package/dist/rag.module.js +40 -0
- package/dist/rag.module.js.map +1 -0
- package/dist/rag.service.d.ts +95 -0
- package/dist/rag.service.d.ts.map +1 -0
- package/dist/rag.service.js +174 -0
- package/dist/rag.service.js.map +1 -0
- package/dist/retrieval/bm25.d.ts +57 -0
- package/dist/retrieval/bm25.d.ts.map +1 -0
- package/dist/retrieval/bm25.js +106 -0
- package/dist/retrieval/bm25.js.map +1 -0
- package/dist/retrieval/hybrid-search.d.ts +48 -0
- package/dist/retrieval/hybrid-search.d.ts.map +1 -0
- package/dist/retrieval/hybrid-search.js +123 -0
- package/dist/retrieval/hybrid-search.js.map +1 -0
- package/dist/retrieval/multi-query.d.ts +38 -0
- package/dist/retrieval/multi-query.d.ts.map +1 -0
- package/dist/retrieval/multi-query.js +135 -0
- package/dist/retrieval/multi-query.js.map +1 -0
- package/dist/text-splitters/recursive-text-splitter.d.ts +21 -0
- package/dist/text-splitters/recursive-text-splitter.d.ts.map +1 -0
- package/dist/text-splitters/recursive-text-splitter.js +95 -0
- package/dist/text-splitters/recursive-text-splitter.js.map +1 -0
- package/dist/types/index.d.ts +144 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/similarity.d.ts +16 -0
- package/dist/utils/similarity.d.ts.map +1 -0
- package/dist/utils/similarity.js +58 -0
- package/dist/utils/similarity.js.map +1 -0
- package/dist/vector-stores/chroma.store.d.ts +42 -0
- package/dist/vector-stores/chroma.store.d.ts.map +1 -0
- package/dist/vector-stores/chroma.store.js +242 -0
- package/dist/vector-stores/chroma.store.js.map +1 -0
- package/dist/vector-stores/memory-vector-store.d.ts +20 -0
- package/dist/vector-stores/memory-vector-store.d.ts.map +1 -0
- package/dist/vector-stores/memory-vector-store.js +94 -0
- package/dist/vector-stores/memory-vector-store.js.map +1 -0
- package/dist/vector-stores/pinecone.store.d.ts +34 -0
- package/dist/vector-stores/pinecone.store.d.ts.map +1 -0
- package/dist/vector-stores/pinecone.store.js +146 -0
- package/dist/vector-stores/pinecone.store.js.map +1 -0
- package/dist/vector-stores/qdrant.store.d.ts +31 -0
- package/dist/vector-stores/qdrant.store.d.ts.map +1 -0
- package/dist/vector-stores/qdrant.store.js +173 -0
- package/dist/vector-stores/qdrant.store.js.map +1 -0
- package/dist/vector-stores/weaviate.store.d.ts +37 -0
- package/dist/vector-stores/weaviate.store.d.ts.map +1 -0
- package/dist/vector-stores/weaviate.store.js +226 -0
- package/dist/vector-stores/weaviate.store.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Active Learning Decorator
|
|
4
|
+
* Learns from user feedback to improve retrieval
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ActiveLearning = ActiveLearning;
|
|
8
|
+
exports.Feedback = Feedback;
|
|
9
|
+
exports.getFeedbackStats = getFeedbackStats;
|
|
10
|
+
exports.clearFeedback = clearFeedback;
|
|
11
|
+
require("reflect-metadata");
|
|
12
|
+
const feedbackStore = new Map();
|
|
13
|
+
function ActiveLearning(config = {}) {
|
|
14
|
+
return function (target, propertyKey, descriptor) {
|
|
15
|
+
const originalMethod = descriptor.value;
|
|
16
|
+
descriptor.value = async function (...args) {
|
|
17
|
+
const results = await originalMethod.apply(this, args);
|
|
18
|
+
if (!config.feedbackEnabled) {
|
|
19
|
+
return results;
|
|
20
|
+
}
|
|
21
|
+
// Apply learned adjustments
|
|
22
|
+
const adjusted = applyLearning(results, config);
|
|
23
|
+
return adjusted;
|
|
24
|
+
};
|
|
25
|
+
return descriptor;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function Feedback() {
|
|
29
|
+
return function (target, propertyKey, descriptor) {
|
|
30
|
+
const originalMethod = descriptor.value;
|
|
31
|
+
descriptor.value = async function (...args) {
|
|
32
|
+
const feedbackData = args[0];
|
|
33
|
+
// Store feedback
|
|
34
|
+
storeFeedback(feedbackData);
|
|
35
|
+
// Execute original method if any
|
|
36
|
+
if (originalMethod) {
|
|
37
|
+
return originalMethod.apply(this, args);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
return descriptor;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function applyLearning(results, config) {
|
|
44
|
+
if (!Array.isArray(results)) {
|
|
45
|
+
return results;
|
|
46
|
+
}
|
|
47
|
+
const storageKey = config.storageKey || 'default';
|
|
48
|
+
const feedback = feedbackStore.get(storageKey) || [];
|
|
49
|
+
if (feedback.length === 0) {
|
|
50
|
+
return results;
|
|
51
|
+
}
|
|
52
|
+
// Adjust scores based on feedback
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
|
+
return results
|
|
55
|
+
.map((result) => {
|
|
56
|
+
const relevantFeedback = feedback.filter((f) => f.resultId === result.id);
|
|
57
|
+
if (relevantFeedback.length === 0) {
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
const avgRating = relevantFeedback.reduce((sum, f) => sum + f.rating, 0) / relevantFeedback.length;
|
|
61
|
+
const relevanceBoost = (avgRating - 3) / 5; // Normalize to -0.4 to 0.4
|
|
62
|
+
return {
|
|
63
|
+
...result,
|
|
64
|
+
score: Math.max(0, Math.min(1, (result.score || 0.5) + relevanceBoost)),
|
|
65
|
+
feedbackCount: relevantFeedback.length,
|
|
66
|
+
avgRating,
|
|
67
|
+
};
|
|
68
|
+
})
|
|
69
|
+
.sort((a, b) => (b.score || 0) - (a.score || 0));
|
|
70
|
+
}
|
|
71
|
+
function storeFeedback(feedback) {
|
|
72
|
+
const storageKey = 'default';
|
|
73
|
+
const existing = feedbackStore.get(storageKey) || [];
|
|
74
|
+
existing.push(feedback);
|
|
75
|
+
// Keep only recent feedback
|
|
76
|
+
const maxFeedback = 1000;
|
|
77
|
+
if (existing.length > maxFeedback) {
|
|
78
|
+
existing.splice(0, existing.length - maxFeedback);
|
|
79
|
+
}
|
|
80
|
+
feedbackStore.set(storageKey, existing);
|
|
81
|
+
}
|
|
82
|
+
function getFeedbackStats(storageKey = 'default') {
|
|
83
|
+
const feedback = feedbackStore.get(storageKey) || [];
|
|
84
|
+
if (feedback.length === 0) {
|
|
85
|
+
return { totalFeedback: 0, avgRating: 0, relevantCount: 0 };
|
|
86
|
+
}
|
|
87
|
+
const avgRating = feedback.reduce((sum, f) => sum + f.rating, 0) / feedback.length;
|
|
88
|
+
const relevantCount = feedback.filter((f) => f.relevant).length;
|
|
89
|
+
return {
|
|
90
|
+
totalFeedback: feedback.length,
|
|
91
|
+
avgRating,
|
|
92
|
+
relevantCount,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function clearFeedback(storageKey = 'default') {
|
|
96
|
+
feedbackStore.delete(storageKey);
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=active-learning.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-learning.decorator.js","sourceRoot":"","sources":["../../../src/agentic/decorators/active-learning.decorator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAaH,wCAmBC;AAED,4BAkBC;AAqDD,4CAmBC;AAED,sCAEC;AA9HD,4BAA0B;AAS1B,MAAM,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;AAExD,SAAgB,cAAc,CAAC,SAA+B,EAAE;IAC9D,OAAO,UAAU,MAAc,EAAE,WAA4B,EAAE,UAA8B;QAC3F,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAe;YACnD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEvD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC5B,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,4BAA4B;YAC5B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAEhD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO,UAAU,MAAc,EAAE,WAA4B,EAAE,UAA8B;QAC3F,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAe;YACnD,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAiB,CAAC;YAE7C,iBAAiB;YACjB,aAAa,CAAC,YAAY,CAAC,CAAC;YAE5B,iCAAiC;YACjC,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB,EAAE,MAA4B;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC;IAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kCAAkC;IAClC,8DAA8D;IAC9D,OAAQ,OAAiB;SACtB,GAAG,CAAC,CAAC,MAAuC,EAAE,EAAE;QAC/C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAE1E,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,SAAS,GACb,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC;QACnF,MAAM,cAAc,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B;QAEvE,OAAO;YACL,GAAG,MAAM;YACT,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;YACvE,aAAa,EAAE,gBAAgB,CAAC,MAAM;YACtC,SAAS;SACV,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAqB,EAAE,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,aAAa,CAAC,QAAsB;IAC3C,MAAM,UAAU,GAAG,SAAS,CAAC;IAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAErD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAExB,4BAA4B;IAC5B,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,IAAI,QAAQ,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;QAClC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,gBAAgB,CAAC,aAAqB,SAAS;IAK7D,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IACnF,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAEhE,OAAO;QACL,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,SAAS;QACT,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,aAAqB,SAAS;IAC1D,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adaptive Retrieval Decorator
|
|
3
|
+
* Automatically selects the best retrieval strategy
|
|
4
|
+
*/
|
|
5
|
+
import 'reflect-metadata';
|
|
6
|
+
import { AdaptiveStrategyResult, AgenticLLMProvider } from '../types';
|
|
7
|
+
import { RetrievalStrategy } from '../../types';
|
|
8
|
+
export interface AdaptiveRetrievalConfig {
|
|
9
|
+
strategies?: RetrievalStrategy[];
|
|
10
|
+
autoSelect?: boolean;
|
|
11
|
+
contextAware?: boolean;
|
|
12
|
+
llmProvider?: AgenticLLMProvider;
|
|
13
|
+
}
|
|
14
|
+
export declare function AdaptiveRetrieval(config?: AdaptiveRetrievalConfig): MethodDecorator;
|
|
15
|
+
export declare function getAdaptiveStrategy(target: object, propertyKey: string | symbol): AdaptiveStrategyResult | undefined;
|
|
16
|
+
//# sourceMappingURL=adaptive-retrieval.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaptive-retrieval.decorator.d.ts","sourceRoot":"","sources":["../../../src/agentic/decorators/adaptive-retrieval.decorator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAID,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,uBAA4B,GAAG,eAAe,CA4BvF;AAwGD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,sBAAsB,GAAG,SAAS,CAEpC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Adaptive Retrieval Decorator
|
|
4
|
+
* Automatically selects the best retrieval strategy
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.AdaptiveRetrieval = AdaptiveRetrieval;
|
|
8
|
+
exports.getAdaptiveStrategy = getAdaptiveStrategy;
|
|
9
|
+
require("reflect-metadata");
|
|
10
|
+
const types_1 = require("../../types");
|
|
11
|
+
const ADAPTIVE_METADATA_KEY = Symbol('adaptive');
|
|
12
|
+
function AdaptiveRetrieval(config = {}) {
|
|
13
|
+
return function (target, propertyKey, descriptor) {
|
|
14
|
+
const originalMethod = descriptor.value;
|
|
15
|
+
descriptor.value = async function (...args) {
|
|
16
|
+
const query = args[0];
|
|
17
|
+
if (!config.autoSelect) {
|
|
18
|
+
return originalMethod.apply(this, args);
|
|
19
|
+
}
|
|
20
|
+
// Select best strategy
|
|
21
|
+
const strategyResult = await selectStrategy(query, config);
|
|
22
|
+
// Store metadata
|
|
23
|
+
Reflect.defineMetadata(ADAPTIVE_METADATA_KEY, strategyResult, target, propertyKey);
|
|
24
|
+
// Execute with selected strategy
|
|
25
|
+
const modifiedArgs = [...args];
|
|
26
|
+
if (modifiedArgs[1] && typeof modifiedArgs[1] === 'object') {
|
|
27
|
+
modifiedArgs[1] = { ...modifiedArgs[1], strategy: strategyResult.selectedStrategy };
|
|
28
|
+
}
|
|
29
|
+
return originalMethod.apply(this, modifiedArgs);
|
|
30
|
+
};
|
|
31
|
+
return descriptor;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async function selectStrategy(query, config) {
|
|
35
|
+
const strategies = config.strategies || [
|
|
36
|
+
types_1.RetrievalStrategy.SIMILARITY,
|
|
37
|
+
types_1.RetrievalStrategy.HYBRID,
|
|
38
|
+
types_1.RetrievalStrategy.MMR,
|
|
39
|
+
];
|
|
40
|
+
if (config.llmProvider) {
|
|
41
|
+
return selectStrategyWithLLM(query, strategies, config);
|
|
42
|
+
}
|
|
43
|
+
return selectStrategyHeuristic(query, strategies);
|
|
44
|
+
}
|
|
45
|
+
async function selectStrategyWithLLM(query, strategies, config) {
|
|
46
|
+
const prompt = `Select the best retrieval strategy for this query:
|
|
47
|
+
|
|
48
|
+
Query: ${query}
|
|
49
|
+
|
|
50
|
+
Available strategies:
|
|
51
|
+
- similarity: Best for semantic similarity
|
|
52
|
+
- hybrid: Combines keyword and semantic search
|
|
53
|
+
- mmr: Maximizes diversity while maintaining relevance
|
|
54
|
+
|
|
55
|
+
Respond in JSON:
|
|
56
|
+
{
|
|
57
|
+
"selectedStrategy": "similarity|hybrid|mmr",
|
|
58
|
+
"reason": "explanation",
|
|
59
|
+
"confidence": 0.0-1.0
|
|
60
|
+
}`;
|
|
61
|
+
try {
|
|
62
|
+
const result = await config.llmProvider.generateStructured(prompt, {});
|
|
63
|
+
return {
|
|
64
|
+
...result,
|
|
65
|
+
alternatives: strategies
|
|
66
|
+
.filter((s) => s !== result.selectedStrategy)
|
|
67
|
+
.map((s) => ({ strategy: s, score: 0.5 })),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return selectStrategyHeuristic(query, strategies);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function selectStrategyHeuristic(query, strategies) {
|
|
75
|
+
const lowerQuery = query.toLowerCase();
|
|
76
|
+
// Check for diversity needs
|
|
77
|
+
if (lowerQuery.includes('different') ||
|
|
78
|
+
lowerQuery.includes('various') ||
|
|
79
|
+
lowerQuery.includes('diverse')) {
|
|
80
|
+
return {
|
|
81
|
+
selectedStrategy: types_1.RetrievalStrategy.MMR,
|
|
82
|
+
reason: 'Query requires diverse results',
|
|
83
|
+
confidence: 0.8,
|
|
84
|
+
alternatives: strategies
|
|
85
|
+
.filter((s) => s !== types_1.RetrievalStrategy.MMR)
|
|
86
|
+
.map((s) => ({ strategy: s, score: 0.5 })),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// Check for keyword-heavy queries
|
|
90
|
+
const hasSpecificTerms = /\b(exact|specific|precise|"[^"]+")/.test(query);
|
|
91
|
+
if (hasSpecificTerms) {
|
|
92
|
+
return {
|
|
93
|
+
selectedStrategy: types_1.RetrievalStrategy.HYBRID,
|
|
94
|
+
reason: 'Query contains specific terms requiring keyword matching',
|
|
95
|
+
confidence: 0.85,
|
|
96
|
+
alternatives: strategies
|
|
97
|
+
.filter((s) => s !== types_1.RetrievalStrategy.HYBRID)
|
|
98
|
+
.map((s) => ({ strategy: s, score: 0.6 })),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// Default to similarity
|
|
102
|
+
return {
|
|
103
|
+
selectedStrategy: types_1.RetrievalStrategy.SIMILARITY,
|
|
104
|
+
reason: 'General semantic search',
|
|
105
|
+
confidence: 0.7,
|
|
106
|
+
alternatives: strategies
|
|
107
|
+
.filter((s) => s !== types_1.RetrievalStrategy.SIMILARITY)
|
|
108
|
+
.map((s) => ({ strategy: s, score: 0.5 })),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function getAdaptiveStrategy(target, propertyKey) {
|
|
112
|
+
return Reflect.getMetadata(ADAPTIVE_METADATA_KEY, target, propertyKey);
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=adaptive-retrieval.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaptive-retrieval.decorator.js","sourceRoot":"","sources":["../../../src/agentic/decorators/adaptive-retrieval.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cached Decorator
|
|
3
|
+
* Caches retrieval results for performance
|
|
4
|
+
*/
|
|
5
|
+
import 'reflect-metadata';
|
|
6
|
+
export interface CachedConfig {
|
|
7
|
+
ttl?: number;
|
|
8
|
+
maxSize?: number;
|
|
9
|
+
keyGenerator?: (args: unknown[]) => string;
|
|
10
|
+
}
|
|
11
|
+
export declare function Cached(config?: CachedConfig): MethodDecorator;
|
|
12
|
+
export declare function getCacheStats(): {
|
|
13
|
+
size: number;
|
|
14
|
+
totalHits: number;
|
|
15
|
+
hitRate: number;
|
|
16
|
+
};
|
|
17
|
+
export declare function clearCache(): void;
|
|
18
|
+
//# sourceMappingURL=cached.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached.decorator.d.ts","sourceRoot":"","sources":["../../../src/agentic/decorators/cached.decorator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAG1B,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC;CAC5C;AAKD,wBAAgB,MAAM,CAAC,MAAM,GAAE,YAAiB,GAAG,eAAe,CA4CjE;AAmCD,wBAAgB,aAAa,IAAI;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAcA;AAED,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cached Decorator
|
|
4
|
+
* Caches retrieval results for performance
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.Cached = Cached;
|
|
8
|
+
exports.getCacheStats = getCacheStats;
|
|
9
|
+
exports.clearCache = clearCache;
|
|
10
|
+
require("reflect-metadata");
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
+
const cache = new Map();
|
|
13
|
+
function Cached(config = {}) {
|
|
14
|
+
return function (target, propertyKey, descriptor) {
|
|
15
|
+
const originalMethod = descriptor.value;
|
|
16
|
+
const ttl = (config.ttl || 3600) * 1000; // Convert to ms
|
|
17
|
+
const maxSize = config.maxSize || 100;
|
|
18
|
+
descriptor.value = async function (...args) {
|
|
19
|
+
// Generate cache key
|
|
20
|
+
const key = config.keyGenerator
|
|
21
|
+
? config.keyGenerator(args)
|
|
22
|
+
: generateCacheKey(propertyKey, args);
|
|
23
|
+
// Check cache
|
|
24
|
+
const cached = cache.get(key);
|
|
25
|
+
if (cached && !isExpired(cached)) {
|
|
26
|
+
cached.hits++;
|
|
27
|
+
return cached.value;
|
|
28
|
+
}
|
|
29
|
+
// Execute method
|
|
30
|
+
const result = await originalMethod.apply(this, args);
|
|
31
|
+
// Store in cache
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
33
|
+
const entry = {
|
|
34
|
+
key,
|
|
35
|
+
value: result,
|
|
36
|
+
timestamp: Date.now(),
|
|
37
|
+
ttl,
|
|
38
|
+
hits: 0,
|
|
39
|
+
};
|
|
40
|
+
cache.set(key, entry);
|
|
41
|
+
// Enforce max size
|
|
42
|
+
if (cache.size > maxSize) {
|
|
43
|
+
evictLRU();
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
return descriptor;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function generateCacheKey(method, args) {
|
|
51
|
+
const argsStr = JSON.stringify(args);
|
|
52
|
+
return `${String(method)}:${argsStr}`;
|
|
53
|
+
}
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
55
|
+
function isExpired(entry) {
|
|
56
|
+
return Date.now() - entry.timestamp > entry.ttl;
|
|
57
|
+
}
|
|
58
|
+
function evictLRU() {
|
|
59
|
+
let oldestKey = null;
|
|
60
|
+
let oldestTime = Infinity;
|
|
61
|
+
let lowestHits = Infinity;
|
|
62
|
+
for (const [key, entry] of cache.entries()) {
|
|
63
|
+
if (isExpired(entry)) {
|
|
64
|
+
cache.delete(key);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (entry.hits < lowestHits || (entry.hits === lowestHits && entry.timestamp < oldestTime)) {
|
|
68
|
+
oldestKey = key;
|
|
69
|
+
oldestTime = entry.timestamp;
|
|
70
|
+
lowestHits = entry.hits;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (oldestKey) {
|
|
74
|
+
cache.delete(oldestKey);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function getCacheStats() {
|
|
78
|
+
let totalHits = 0;
|
|
79
|
+
let totalRequests = 0;
|
|
80
|
+
for (const entry of cache.values()) {
|
|
81
|
+
totalHits += entry.hits;
|
|
82
|
+
totalRequests += entry.hits + 1; // +1 for initial miss
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
size: cache.size,
|
|
86
|
+
totalHits,
|
|
87
|
+
hitRate: totalRequests > 0 ? totalHits / totalRequests : 0,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function clearCache() {
|
|
91
|
+
cache.clear();
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=cached.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached.decorator.js","sourceRoot":"","sources":["../../../src/agentic/decorators/cached.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context-Aware Decorator
|
|
3
|
+
* Maintains conversation context for improved retrieval
|
|
4
|
+
*/
|
|
5
|
+
import 'reflect-metadata';
|
|
6
|
+
import { Context } from '../types';
|
|
7
|
+
export interface ContextAwareConfig {
|
|
8
|
+
windowSize?: number;
|
|
9
|
+
entityTracking?: boolean;
|
|
10
|
+
topicModeling?: boolean;
|
|
11
|
+
sessionId?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function ContextAware(config?: ContextAwareConfig): MethodDecorator;
|
|
14
|
+
export declare function getContext(target: object, propertyKey: string | symbol): Context | undefined;
|
|
15
|
+
export declare function clearContext(sessionId: string): void;
|
|
16
|
+
//# sourceMappingURL=context-aware.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-aware.decorator.d.ts","sourceRoot":"","sources":["../../../src/agentic/decorators/context-aware.decorator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,wBAAgB,YAAY,CAAC,MAAM,GAAE,kBAAuB,GAAG,eAAe,CA0E7E;AA0GD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5F;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEpD"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Context-Aware Decorator
|
|
4
|
+
* Maintains conversation context for improved retrieval
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.ContextAware = ContextAware;
|
|
8
|
+
exports.getContext = getContext;
|
|
9
|
+
exports.clearContext = clearContext;
|
|
10
|
+
require("reflect-metadata");
|
|
11
|
+
const CONTEXT_METADATA_KEY = Symbol('contextAware');
|
|
12
|
+
const contextStore = new Map();
|
|
13
|
+
function ContextAware(config = {}) {
|
|
14
|
+
return function (target, propertyKey, descriptor) {
|
|
15
|
+
const originalMethod = descriptor.value;
|
|
16
|
+
descriptor.value = async function (...args) {
|
|
17
|
+
const query = args[0];
|
|
18
|
+
const sessionId = (typeof args[1] === 'object' && args[1] !== null && 'sessionId' in args[1]
|
|
19
|
+
? args[1].sessionId
|
|
20
|
+
: undefined) ||
|
|
21
|
+
config.sessionId ||
|
|
22
|
+
'default';
|
|
23
|
+
// Get or create context
|
|
24
|
+
let context = contextStore.get(sessionId);
|
|
25
|
+
if (!context) {
|
|
26
|
+
context = {
|
|
27
|
+
sessionId,
|
|
28
|
+
conversationHistory: [],
|
|
29
|
+
entities: [],
|
|
30
|
+
topics: [],
|
|
31
|
+
metadata: {},
|
|
32
|
+
};
|
|
33
|
+
contextStore.set(sessionId, context);
|
|
34
|
+
}
|
|
35
|
+
// Update context with current query
|
|
36
|
+
context.conversationHistory.push({
|
|
37
|
+
role: 'user',
|
|
38
|
+
content: query,
|
|
39
|
+
timestamp: new Date(),
|
|
40
|
+
});
|
|
41
|
+
// Maintain window size
|
|
42
|
+
const windowSize = config.windowSize || 5;
|
|
43
|
+
if (context.conversationHistory.length > windowSize * 2) {
|
|
44
|
+
context.conversationHistory = context.conversationHistory.slice(-windowSize * 2);
|
|
45
|
+
}
|
|
46
|
+
// Extract entities if enabled
|
|
47
|
+
if (config.entityTracking) {
|
|
48
|
+
const entities = extractEntities(query);
|
|
49
|
+
updateEntities(context, entities);
|
|
50
|
+
}
|
|
51
|
+
// Extract topics if enabled
|
|
52
|
+
if (config.topicModeling) {
|
|
53
|
+
const topics = extractTopics(query, context);
|
|
54
|
+
updateTopics(context, topics);
|
|
55
|
+
}
|
|
56
|
+
// Enhance query with context
|
|
57
|
+
const enhancedQuery = enhanceQueryWithContext(query, context);
|
|
58
|
+
// Execute with enhanced query
|
|
59
|
+
const modifiedArgs = [enhancedQuery, ...args.slice(1)];
|
|
60
|
+
const results = await originalMethod.apply(this, modifiedArgs);
|
|
61
|
+
// Store assistant response in context
|
|
62
|
+
if (results) {
|
|
63
|
+
context.conversationHistory.push({
|
|
64
|
+
role: 'assistant',
|
|
65
|
+
content: JSON.stringify(results).slice(0, 500),
|
|
66
|
+
timestamp: new Date(),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
Reflect.defineMetadata(CONTEXT_METADATA_KEY, context, target, propertyKey);
|
|
70
|
+
return results;
|
|
71
|
+
};
|
|
72
|
+
return descriptor;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function extractEntities(text) {
|
|
76
|
+
const entities = [];
|
|
77
|
+
// Simple named entity extraction (capitalized words)
|
|
78
|
+
const words = text.split(/\s+/);
|
|
79
|
+
const capitalizedWords = words.filter((w) => /^[A-Z][a-z]+/.test(w));
|
|
80
|
+
const entityCounts = new Map();
|
|
81
|
+
capitalizedWords.forEach((word) => {
|
|
82
|
+
entityCounts.set(word, (entityCounts.get(word) || 0) + 1);
|
|
83
|
+
});
|
|
84
|
+
entityCounts.forEach((count, name) => {
|
|
85
|
+
entities.push({
|
|
86
|
+
name,
|
|
87
|
+
type: 'UNKNOWN',
|
|
88
|
+
mentions: count,
|
|
89
|
+
lastSeen: new Date(),
|
|
90
|
+
attributes: {},
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
return entities;
|
|
94
|
+
}
|
|
95
|
+
function updateEntities(context, newEntities) {
|
|
96
|
+
newEntities.forEach((newEntity) => {
|
|
97
|
+
const existing = context.entities.find((e) => e.name === newEntity.name);
|
|
98
|
+
if (existing) {
|
|
99
|
+
existing.mentions += newEntity.mentions;
|
|
100
|
+
existing.lastSeen = new Date();
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
context.entities.push(newEntity);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
// Keep only recent entities
|
|
107
|
+
context.entities = context.entities
|
|
108
|
+
.sort((a, b) => b.lastSeen.getTime() - a.lastSeen.getTime())
|
|
109
|
+
.slice(0, 20);
|
|
110
|
+
}
|
|
111
|
+
function extractTopics(query, _context) {
|
|
112
|
+
const topics = [];
|
|
113
|
+
// Extract keywords
|
|
114
|
+
const words = query.toLowerCase().split(/\s+/);
|
|
115
|
+
const stopWords = new Set(['the', 'a', 'an', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for']);
|
|
116
|
+
const keywords = words.filter((w) => w.length > 3 && !stopWords.has(w));
|
|
117
|
+
// Group into topics
|
|
118
|
+
const topicMap = new Map();
|
|
119
|
+
keywords.forEach((keyword) => {
|
|
120
|
+
const topic = keyword.slice(0, 5); // Simple topic grouping
|
|
121
|
+
if (!topicMap.has(topic)) {
|
|
122
|
+
topicMap.set(topic, []);
|
|
123
|
+
}
|
|
124
|
+
topicMap.get(topic).push(keyword);
|
|
125
|
+
});
|
|
126
|
+
topicMap.forEach((keywords, name) => {
|
|
127
|
+
topics.push({
|
|
128
|
+
name,
|
|
129
|
+
relevance: keywords.length / words.length,
|
|
130
|
+
keywords,
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
return topics;
|
|
134
|
+
}
|
|
135
|
+
function updateTopics(context, newTopics) {
|
|
136
|
+
newTopics.forEach((newTopic) => {
|
|
137
|
+
const existing = context.topics.find((t) => t.name === newTopic.name);
|
|
138
|
+
if (existing) {
|
|
139
|
+
existing.relevance = (existing.relevance + newTopic.relevance) / 2;
|
|
140
|
+
existing.keywords = [...new Set([...existing.keywords, ...newTopic.keywords])];
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
context.topics.push(newTopic);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
// Keep top topics
|
|
147
|
+
context.topics = context.topics.sort((a, b) => b.relevance - a.relevance).slice(0, 10);
|
|
148
|
+
}
|
|
149
|
+
function enhanceQueryWithContext(query, context) {
|
|
150
|
+
const enhancements = [query];
|
|
151
|
+
// Add recent entities
|
|
152
|
+
const topEntities = context.entities.slice(0, 3).map((e) => e.name);
|
|
153
|
+
if (topEntities.length > 0) {
|
|
154
|
+
enhancements.push(`Context entities: ${topEntities.join(', ')}`);
|
|
155
|
+
}
|
|
156
|
+
// Add recent topics
|
|
157
|
+
const topTopics = context.topics.slice(0, 2).map((t) => t.keywords[0]);
|
|
158
|
+
if (topTopics.length > 0) {
|
|
159
|
+
enhancements.push(`Related topics: ${topTopics.join(', ')}`);
|
|
160
|
+
}
|
|
161
|
+
return enhancements.join(' | ');
|
|
162
|
+
}
|
|
163
|
+
function getContext(target, propertyKey) {
|
|
164
|
+
return Reflect.getMetadata(CONTEXT_METADATA_KEY, target, propertyKey);
|
|
165
|
+
}
|
|
166
|
+
function clearContext(sessionId) {
|
|
167
|
+
contextStore.delete(sessionId);
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=context-aware.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-aware.decorator.js","sourceRoot":"","sources":["../../../src/agentic/decorators/context-aware.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Corrective RAG (CRAG) Decorator
|
|
3
|
+
* Self-corrects retrieval errors with fallback mechanisms
|
|
4
|
+
*/
|
|
5
|
+
import 'reflect-metadata';
|
|
6
|
+
import { CorrectiveRAGResult, AgenticLLMProvider } from '../types';
|
|
7
|
+
export interface CorrectiveRAGConfig {
|
|
8
|
+
relevanceThreshold?: number;
|
|
9
|
+
fallbackToWeb?: boolean;
|
|
10
|
+
maxCorrections?: number;
|
|
11
|
+
llmProvider?: AgenticLLMProvider;
|
|
12
|
+
}
|
|
13
|
+
export declare function CorrectiveRAG(config?: CorrectiveRAGConfig): MethodDecorator;
|
|
14
|
+
export declare function getCorrectiveRAGResult(target: object, propertyKey: string | symbol): CorrectiveRAGResult | undefined;
|
|
15
|
+
//# sourceMappingURL=corrective-rag.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corrective-rag.decorator.d.ts","sourceRoot":"","sources":["../../../src/agentic/decorators/corrective-rag.decorator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAID,wBAAgB,aAAa,CAAC,MAAM,GAAE,mBAAwB,GAAG,eAAe,CAgD/E;AAuHD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,mBAAmB,GAAG,SAAS,CAEjC"}
|