@hazeljs/rag 0.2.0-alpha.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/LICENSE +192 -0
- package/README.md +504 -0
- package/dist/__tests__/graph/community-detector.test.d.ts +2 -0
- package/dist/__tests__/graph/community-detector.test.d.ts.map +1 -0
- package/dist/__tests__/graph/community-detector.test.js +87 -0
- package/dist/__tests__/graph/community-detector.test.js.map +1 -0
- package/dist/__tests__/graph/community-summarizer.test.d.ts +2 -0
- package/dist/__tests__/graph/community-summarizer.test.d.ts.map +1 -0
- package/dist/__tests__/graph/community-summarizer.test.js +131 -0
- package/dist/__tests__/graph/community-summarizer.test.js.map +1 -0
- package/dist/__tests__/graph/entity-extractor.test.d.ts +2 -0
- package/dist/__tests__/graph/entity-extractor.test.d.ts.map +1 -0
- package/dist/__tests__/graph/entity-extractor.test.js +129 -0
- package/dist/__tests__/graph/entity-extractor.test.js.map +1 -0
- package/dist/__tests__/graph/graph-rag-pipeline.test.d.ts +2 -0
- package/dist/__tests__/graph/graph-rag-pipeline.test.d.ts.map +1 -0
- package/dist/__tests__/graph/graph-rag-pipeline.test.js +158 -0
- package/dist/__tests__/graph/graph-rag-pipeline.test.js.map +1 -0
- package/dist/__tests__/graph/knowledge-graph.test.d.ts +2 -0
- package/dist/__tests__/graph/knowledge-graph.test.d.ts.map +1 -0
- package/dist/__tests__/graph/knowledge-graph.test.js +208 -0
- package/dist/__tests__/graph/knowledge-graph.test.js.map +1 -0
- package/dist/__tests__/loaders/base.loader.test.d.ts +2 -0
- package/dist/__tests__/loaders/base.loader.test.d.ts.map +1 -0
- package/dist/__tests__/loaders/base.loader.test.js +114 -0
- package/dist/__tests__/loaders/base.loader.test.js.map +1 -0
- package/dist/__tests__/loaders/csv-file.loader.test.d.ts +2 -0
- package/dist/__tests__/loaders/csv-file.loader.test.d.ts.map +1 -0
- package/dist/__tests__/loaders/csv-file.loader.test.js +98 -0
- package/dist/__tests__/loaders/csv-file.loader.test.js.map +1 -0
- package/dist/__tests__/loaders/directory.loader.test.d.ts +2 -0
- package/dist/__tests__/loaders/directory.loader.test.d.ts.map +1 -0
- package/dist/__tests__/loaders/directory.loader.test.js +154 -0
- package/dist/__tests__/loaders/directory.loader.test.js.map +1 -0
- package/dist/__tests__/loaders/html-file.loader.test.d.ts +2 -0
- package/dist/__tests__/loaders/html-file.loader.test.d.ts.map +1 -0
- package/dist/__tests__/loaders/html-file.loader.test.js +93 -0
- package/dist/__tests__/loaders/html-file.loader.test.js.map +1 -0
- package/dist/__tests__/loaders/json-file.loader.test.d.ts +2 -0
- package/dist/__tests__/loaders/json-file.loader.test.d.ts.map +1 -0
- package/dist/__tests__/loaders/json-file.loader.test.js +84 -0
- package/dist/__tests__/loaders/json-file.loader.test.js.map +1 -0
- package/dist/__tests__/loaders/markdown-file.loader.test.d.ts +2 -0
- package/dist/__tests__/loaders/markdown-file.loader.test.d.ts.map +1 -0
- package/dist/__tests__/loaders/markdown-file.loader.test.js +83 -0
- package/dist/__tests__/loaders/markdown-file.loader.test.js.map +1 -0
- package/dist/__tests__/loaders/text-file.loader.test.d.ts +2 -0
- package/dist/__tests__/loaders/text-file.loader.test.d.ts.map +1 -0
- package/dist/__tests__/loaders/text-file.loader.test.js +50 -0
- package/dist/__tests__/loaders/text-file.loader.test.js.map +1 -0
- package/dist/__tests__/rag-pipeline.test.d.ts +2 -0
- package/dist/__tests__/rag-pipeline.test.d.ts.map +1 -0
- package/dist/__tests__/rag-pipeline.test.js +210 -0
- package/dist/__tests__/rag-pipeline.test.js.map +1 -0
- package/dist/__tests__/retrieval/bm25.test.d.ts +2 -0
- package/dist/__tests__/retrieval/bm25.test.d.ts.map +1 -0
- package/dist/__tests__/retrieval/bm25.test.js +86 -0
- package/dist/__tests__/retrieval/bm25.test.js.map +1 -0
- package/dist/__tests__/retrieval/hybrid-search.test.d.ts +2 -0
- package/dist/__tests__/retrieval/hybrid-search.test.d.ts.map +1 -0
- package/dist/__tests__/retrieval/hybrid-search.test.js +85 -0
- package/dist/__tests__/retrieval/hybrid-search.test.js.map +1 -0
- package/dist/__tests__/retrieval/multi-query.test.d.ts +2 -0
- package/dist/__tests__/retrieval/multi-query.test.d.ts.map +1 -0
- package/dist/__tests__/retrieval/multi-query.test.js +90 -0
- package/dist/__tests__/retrieval/multi-query.test.js.map +1 -0
- package/dist/__tests__/text-splitters/recursive-text-splitter.test.d.ts +2 -0
- package/dist/__tests__/text-splitters/recursive-text-splitter.test.d.ts.map +1 -0
- package/dist/__tests__/text-splitters/recursive-text-splitter.test.js +97 -0
- package/dist/__tests__/text-splitters/recursive-text-splitter.test.js.map +1 -0
- package/dist/__tests__/utils/similarity.test.d.ts +2 -0
- package/dist/__tests__/utils/similarity.test.d.ts.map +1 -0
- package/dist/__tests__/utils/similarity.test.js +47 -0
- package/dist/__tests__/utils/similarity.test.js.map +1 -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 +17 -0
- package/dist/agentic/decorators/adaptive-retrieval.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/adaptive-retrieval.decorator.js +103 -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 +16 -0
- package/dist/agentic/decorators/corrective-rag.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/corrective-rag.decorator.js +142 -0
- package/dist/agentic/decorators/corrective-rag.decorator.js.map +1 -0
- package/dist/agentic/decorators/hyde.decorator.d.ts +15 -0
- package/dist/agentic/decorators/hyde.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/hyde.decorator.js +91 -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 +15 -0
- package/dist/agentic/decorators/multi-hop.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/multi-hop.decorator.js +109 -0
- package/dist/agentic/decorators/multi-hop.decorator.js.map +1 -0
- package/dist/agentic/decorators/query-planner.decorator.d.ts +20 -0
- package/dist/agentic/decorators/query-planner.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/query-planner.decorator.js +213 -0
- package/dist/agentic/decorators/query-planner.decorator.js.map +1 -0
- package/dist/agentic/decorators/query-rewriter.decorator.d.ts +16 -0
- package/dist/agentic/decorators/query-rewriter.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/query-rewriter.decorator.js +143 -0
- package/dist/agentic/decorators/query-rewriter.decorator.js.map +1 -0
- package/dist/agentic/decorators/self-reflective.decorator.d.ts +20 -0
- package/dist/agentic/decorators/self-reflective.decorator.d.ts.map +1 -0
- package/dist/agentic/decorators/self-reflective.decorator.js +189 -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 +210 -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/graph/community-detector.d.ts +45 -0
- package/dist/graph/community-detector.d.ts.map +1 -0
- package/dist/graph/community-detector.js +153 -0
- package/dist/graph/community-detector.js.map +1 -0
- package/dist/graph/community-summarizer.d.ts +41 -0
- package/dist/graph/community-summarizer.d.ts.map +1 -0
- package/dist/graph/community-summarizer.js +119 -0
- package/dist/graph/community-summarizer.js.map +1 -0
- package/dist/graph/entity-extractor.d.ts +47 -0
- package/dist/graph/entity-extractor.d.ts.map +1 -0
- package/dist/graph/entity-extractor.js +224 -0
- package/dist/graph/entity-extractor.js.map +1 -0
- package/dist/graph/graph-rag-pipeline.d.ts +83 -0
- package/dist/graph/graph-rag-pipeline.d.ts.map +1 -0
- package/dist/graph/graph-rag-pipeline.js +390 -0
- package/dist/graph/graph-rag-pipeline.js.map +1 -0
- package/dist/graph/graph.types.d.ts +186 -0
- package/dist/graph/graph.types.d.ts.map +1 -0
- package/dist/graph/graph.types.js +20 -0
- package/dist/graph/graph.types.js.map +1 -0
- package/dist/graph/index.d.ts +15 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +31 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/knowledge-graph.d.ts +57 -0
- package/dist/graph/knowledge-graph.d.ts.map +1 -0
- package/dist/graph/knowledge-graph.js +198 -0
- package/dist/graph/knowledge-graph.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -0
- package/dist/loaders/base.loader.d.ts +108 -0
- package/dist/loaders/base.loader.d.ts.map +1 -0
- package/dist/loaders/base.loader.js +123 -0
- package/dist/loaders/base.loader.js.map +1 -0
- package/dist/loaders/csv-file.loader.d.ts +61 -0
- package/dist/loaders/csv-file.loader.d.ts.map +1 -0
- package/dist/loaders/csv-file.loader.js +162 -0
- package/dist/loaders/csv-file.loader.js.map +1 -0
- package/dist/loaders/directory.loader.d.ts +67 -0
- package/dist/loaders/directory.loader.d.ts.map +1 -0
- package/dist/loaders/directory.loader.js +163 -0
- package/dist/loaders/directory.loader.js.map +1 -0
- package/dist/loaders/docx.loader.d.ts +52 -0
- package/dist/loaders/docx.loader.d.ts.map +1 -0
- package/dist/loaders/docx.loader.js +110 -0
- package/dist/loaders/docx.loader.js.map +1 -0
- package/dist/loaders/github.loader.d.ts +114 -0
- package/dist/loaders/github.loader.d.ts.map +1 -0
- package/dist/loaders/github.loader.js +217 -0
- package/dist/loaders/github.loader.js.map +1 -0
- package/dist/loaders/html-file.loader.d.ts +55 -0
- package/dist/loaders/html-file.loader.d.ts.map +1 -0
- package/dist/loaders/html-file.loader.js +170 -0
- package/dist/loaders/html-file.loader.js.map +1 -0
- package/dist/loaders/index.d.ts +52 -0
- package/dist/loaders/index.d.ts.map +1 -0
- package/dist/loaders/index.js +61 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/loaders/json-file.loader.d.ts +51 -0
- package/dist/loaders/json-file.loader.d.ts.map +1 -0
- package/dist/loaders/json-file.loader.js +100 -0
- package/dist/loaders/json-file.loader.js.map +1 -0
- package/dist/loaders/markdown-file.loader.d.ts +61 -0
- package/dist/loaders/markdown-file.loader.d.ts.map +1 -0
- package/dist/loaders/markdown-file.loader.js +148 -0
- package/dist/loaders/markdown-file.loader.js.map +1 -0
- package/dist/loaders/pdf.loader.d.ts +64 -0
- package/dist/loaders/pdf.loader.d.ts.map +1 -0
- package/dist/loaders/pdf.loader.js +163 -0
- package/dist/loaders/pdf.loader.js.map +1 -0
- package/dist/loaders/text-file.loader.d.ts +39 -0
- package/dist/loaders/text-file.loader.d.ts.map +1 -0
- package/dist/loaders/text-file.loader.js +69 -0
- package/dist/loaders/text-file.loader.js.map +1 -0
- package/dist/loaders/web.loader.d.ts +87 -0
- package/dist/loaders/web.loader.d.ts.map +1 -0
- package/dist/loaders/web.loader.js +194 -0
- package/dist/loaders/web.loader.js.map +1 -0
- package/dist/loaders/youtube-transcript.loader.d.ts +92 -0
- package/dist/loaders/youtube-transcript.loader.d.ts.map +1 -0
- package/dist/loaders/youtube-transcript.loader.js +254 -0
- package/dist/loaders/youtube-transcript.loader.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/prompts/agentic/adaptive-retrieval.prompt.d.ts +8 -0
- package/dist/prompts/agentic/adaptive-retrieval.prompt.d.ts.map +1 -0
- package/dist/prompts/agentic/adaptive-retrieval.prompt.js +27 -0
- package/dist/prompts/agentic/adaptive-retrieval.prompt.js.map +1 -0
- package/dist/prompts/agentic/corrective-rag.prompt.d.ts +9 -0
- package/dist/prompts/agentic/corrective-rag.prompt.d.ts.map +1 -0
- package/dist/prompts/agentic/corrective-rag.prompt.js +23 -0
- package/dist/prompts/agentic/corrective-rag.prompt.js.map +1 -0
- package/dist/prompts/agentic/hyde.prompt.d.ts +9 -0
- package/dist/prompts/agentic/hyde.prompt.d.ts.map +1 -0
- package/dist/prompts/agentic/hyde.prompt.js +18 -0
- package/dist/prompts/agentic/hyde.prompt.js.map +1 -0
- package/dist/prompts/agentic/multi-hop.prompt.d.ts +15 -0
- package/dist/prompts/agentic/multi-hop.prompt.d.ts.map +1 -0
- package/dist/prompts/agentic/multi-hop.prompt.js +38 -0
- package/dist/prompts/agentic/multi-hop.prompt.js.map +1 -0
- package/dist/prompts/agentic/query-planner.prompt.d.ts +8 -0
- package/dist/prompts/agentic/query-planner.prompt.d.ts.map +1 -0
- package/dist/prompts/agentic/query-planner.prompt.js +30 -0
- package/dist/prompts/agentic/query-planner.prompt.js.map +1 -0
- package/dist/prompts/agentic/query-rewriter.prompt.d.ts +10 -0
- package/dist/prompts/agentic/query-rewriter.prompt.d.ts.map +1 -0
- package/dist/prompts/agentic/query-rewriter.prompt.js +17 -0
- package/dist/prompts/agentic/query-rewriter.prompt.js.map +1 -0
- package/dist/prompts/agentic/self-reflective-improve.prompt.d.ts +10 -0
- package/dist/prompts/agentic/self-reflective-improve.prompt.d.ts.map +1 -0
- package/dist/prompts/agentic/self-reflective-improve.prompt.js +24 -0
- package/dist/prompts/agentic/self-reflective-improve.prompt.js.map +1 -0
- package/dist/prompts/agentic/self-reflective.prompt.d.ts +9 -0
- package/dist/prompts/agentic/self-reflective.prompt.d.ts.map +1 -0
- package/dist/prompts/agentic/self-reflective.prompt.js +32 -0
- package/dist/prompts/agentic/self-reflective.prompt.js.map +1 -0
- package/dist/prompts/community-summary.prompt.d.ts +9 -0
- package/dist/prompts/community-summary.prompt.d.ts.map +1 -0
- package/dist/prompts/community-summary.prompt.js +30 -0
- package/dist/prompts/community-summary.prompt.js.map +1 -0
- package/dist/prompts/entity-extraction.prompt.d.ts +10 -0
- package/dist/prompts/entity-extraction.prompt.d.ts.map +1 -0
- package/dist/prompts/entity-extraction.prompt.js +39 -0
- package/dist/prompts/entity-extraction.prompt.js.map +1 -0
- package/dist/prompts/graph-search.prompt.d.ts +10 -0
- package/dist/prompts/graph-search.prompt.d.ts.map +1 -0
- package/dist/prompts/graph-search.prompt.js +23 -0
- package/dist/prompts/graph-search.prompt.js.map +1 -0
- package/dist/prompts/index.d.ts +13 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +29 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/rag-answer.prompt.d.ts +9 -0
- package/dist/prompts/rag-answer.prompt.d.ts.map +1 -0
- package/dist/prompts/rag-answer.prompt.js +20 -0
- package/dist/prompts/rag-answer.prompt.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 +96 -0
- package/dist/rag.service.d.ts.map +1 -0
- package/dist/rag.service.js +173 -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 +33 -0
- package/dist/vector-stores/qdrant.store.d.ts.map +1 -0
- package/dist/vector-stores/qdrant.store.js +174 -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 +146 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @Embeddable Decorator
|
|
4
|
+
* Automatically generates embeddings for entity fields
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.Embeddable = Embeddable;
|
|
8
|
+
exports.getEmbeddableMetadata = getEmbeddableMetadata;
|
|
9
|
+
exports.VectorColumn = VectorColumn;
|
|
10
|
+
exports.getVectorColumns = getVectorColumns;
|
|
11
|
+
require("reflect-metadata");
|
|
12
|
+
const EMBEDDABLE_METADATA_KEY = Symbol('embeddable');
|
|
13
|
+
/**
|
|
14
|
+
* Marks an entity as embeddable with automatic embedding generation
|
|
15
|
+
*/
|
|
16
|
+
function Embeddable(options) {
|
|
17
|
+
return ((target) => {
|
|
18
|
+
Reflect.defineMetadata(EMBEDDABLE_METADATA_KEY, options, target);
|
|
19
|
+
return target;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get embeddable metadata from a class
|
|
24
|
+
*/
|
|
25
|
+
function getEmbeddableMetadata(target) {
|
|
26
|
+
return Reflect.getMetadata(EMBEDDABLE_METADATA_KEY, target);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Marks a property as a vector column for storing embeddings
|
|
30
|
+
*/
|
|
31
|
+
function VectorColumn() {
|
|
32
|
+
return (target, propertyKey) => {
|
|
33
|
+
const vectorColumns = Reflect.getMetadata('vectorColumns', target.constructor) || [];
|
|
34
|
+
vectorColumns.push(propertyKey);
|
|
35
|
+
Reflect.defineMetadata('vectorColumns', vectorColumns, target.constructor);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get vector column metadata
|
|
40
|
+
*/
|
|
41
|
+
function getVectorColumns(target) {
|
|
42
|
+
return Reflect.getMetadata('vectorColumns', target) || [];
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=embeddable.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddable.decorator.js","sourceRoot":"","sources":["../../src/decorators/embeddable.decorator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAmBH,gCAKC;AAKD,sDAEC;AAKD,oCAMC;AAKD,4CAEC;AA/CD,4BAA0B;AAY1B,MAAM,uBAAuB,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAErD;;GAEG;AACH,SAAgB,UAAU,CAAC,OAA0B;IACnD,OAAO,CAAC,CAAC,MAAuB,EAAE,EAAE;QAClC,OAAO,CAAC,cAAc,CAAC,uBAAuB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAmB,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,MAAuB;IAC3D,OAAO,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY;IAC1B,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACtD,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACrF,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7E,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,MAAuB;IACtD,OAAO,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @RAG Module Decorator
|
|
3
|
+
* Configure RAG at module level
|
|
4
|
+
*/
|
|
5
|
+
import 'reflect-metadata';
|
|
6
|
+
type NewableFunction = new (...args: unknown[]) => unknown;
|
|
7
|
+
export interface RAGModuleOptions {
|
|
8
|
+
vectorDB?: 'pinecone' | 'weaviate' | 'qdrant' | 'chroma' | 'milvus' | 'pgvector' | 'redis' | 'memory';
|
|
9
|
+
embeddingModel?: string;
|
|
10
|
+
chunkSize?: number;
|
|
11
|
+
chunkOverlap?: number;
|
|
12
|
+
indexName?: string;
|
|
13
|
+
apiKey?: string;
|
|
14
|
+
endpoint?: string;
|
|
15
|
+
namespace?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ConversationalRAGOptions {
|
|
18
|
+
memoryType?: 'buffer' | 'summary' | 'window';
|
|
19
|
+
maxTokens?: number;
|
|
20
|
+
sessionStore?: 'memory' | 'redis' | 'database';
|
|
21
|
+
}
|
|
22
|
+
export interface MultiModalEmbeddingOptions {
|
|
23
|
+
models?: {
|
|
24
|
+
text?: string;
|
|
25
|
+
image?: string;
|
|
26
|
+
code?: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Configure RAG for a module
|
|
31
|
+
*/
|
|
32
|
+
export declare function RAG(options: RAGModuleOptions): ClassDecorator;
|
|
33
|
+
/**
|
|
34
|
+
* Get RAG module configuration
|
|
35
|
+
*/
|
|
36
|
+
export declare function getRAGConfig(target: NewableFunction): RAGModuleOptions | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Configure conversational RAG with memory
|
|
39
|
+
*/
|
|
40
|
+
export declare function ConversationalRAG(options: ConversationalRAGOptions): ClassDecorator;
|
|
41
|
+
/**
|
|
42
|
+
* Configure multi-modal embeddings
|
|
43
|
+
*/
|
|
44
|
+
export declare function MultiModalEmbedding(options: MultiModalEmbeddingOptions): ClassDecorator;
|
|
45
|
+
/**
|
|
46
|
+
* Embed image decorator
|
|
47
|
+
*/
|
|
48
|
+
export declare function EmbedImage(): MethodDecorator;
|
|
49
|
+
/**
|
|
50
|
+
* Embed code decorator
|
|
51
|
+
*/
|
|
52
|
+
export declare function EmbedCode(): MethodDecorator;
|
|
53
|
+
/**
|
|
54
|
+
* Cross-modal search decorator
|
|
55
|
+
*/
|
|
56
|
+
export declare function CrossModalSearch(): MethodDecorator;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=rag.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/rag.decorator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,KAAK,eAAe,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EACL,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,OAAO,GACP,QAAQ,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;CAChD;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAMD;;GAEG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAK7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,GAAG,SAAS,CAElF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,cAAc,CAKnF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,cAAc,CAKvF;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,eAAe,CAK5C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,eAAe,CAK3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,CAKlD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @RAG Module Decorator
|
|
4
|
+
* Configure RAG at module level
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.RAG = RAG;
|
|
8
|
+
exports.getRAGConfig = getRAGConfig;
|
|
9
|
+
exports.ConversationalRAG = ConversationalRAG;
|
|
10
|
+
exports.MultiModalEmbedding = MultiModalEmbedding;
|
|
11
|
+
exports.EmbedImage = EmbedImage;
|
|
12
|
+
exports.EmbedCode = EmbedCode;
|
|
13
|
+
exports.CrossModalSearch = CrossModalSearch;
|
|
14
|
+
require("reflect-metadata");
|
|
15
|
+
const RAG_MODULE_KEY = Symbol('ragModule');
|
|
16
|
+
const CONVERSATIONAL_RAG_KEY = Symbol('conversationalRAG');
|
|
17
|
+
const MULTIMODAL_EMBEDDING_KEY = Symbol('multiModalEmbedding');
|
|
18
|
+
/**
|
|
19
|
+
* Configure RAG for a module
|
|
20
|
+
*/
|
|
21
|
+
function RAG(options) {
|
|
22
|
+
return ((target) => {
|
|
23
|
+
Reflect.defineMetadata(RAG_MODULE_KEY, options, target);
|
|
24
|
+
return target;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get RAG module configuration
|
|
29
|
+
*/
|
|
30
|
+
function getRAGConfig(target) {
|
|
31
|
+
return Reflect.getMetadata(RAG_MODULE_KEY, target);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Configure conversational RAG with memory
|
|
35
|
+
*/
|
|
36
|
+
function ConversationalRAG(options) {
|
|
37
|
+
return ((target) => {
|
|
38
|
+
Reflect.defineMetadata(CONVERSATIONAL_RAG_KEY, options, target);
|
|
39
|
+
return target;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Configure multi-modal embeddings
|
|
44
|
+
*/
|
|
45
|
+
function MultiModalEmbedding(options) {
|
|
46
|
+
return ((target) => {
|
|
47
|
+
Reflect.defineMetadata(MULTIMODAL_EMBEDDING_KEY, options, target);
|
|
48
|
+
return target;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Embed image decorator
|
|
53
|
+
*/
|
|
54
|
+
function EmbedImage() {
|
|
55
|
+
return (target, propertyKey, descriptor) => {
|
|
56
|
+
Reflect.defineMetadata('embedImage', true, target, propertyKey);
|
|
57
|
+
return descriptor;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Embed code decorator
|
|
62
|
+
*/
|
|
63
|
+
function EmbedCode() {
|
|
64
|
+
return (target, propertyKey, descriptor) => {
|
|
65
|
+
Reflect.defineMetadata('embedCode', true, target, propertyKey);
|
|
66
|
+
return descriptor;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Cross-modal search decorator
|
|
71
|
+
*/
|
|
72
|
+
function CrossModalSearch() {
|
|
73
|
+
return (target, propertyKey, descriptor) => {
|
|
74
|
+
Reflect.defineMetadata('crossModalSearch', true, target, propertyKey);
|
|
75
|
+
return descriptor;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=rag.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag.decorator.js","sourceRoot":"","sources":["../../src/decorators/rag.decorator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA8CH,kBAKC;AAKD,oCAEC;AAKD,8CAKC;AAKD,kDAKC;AAKD,gCAKC;AAKD,8BAKC;AAKD,4CAKC;AA1GD,4BAA0B;AAqC1B,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAC3C,MAAM,sBAAsB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC3D,MAAM,wBAAwB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAE/D;;GAEG;AACH,SAAgB,GAAG,CAAC,OAAyB;IAC3C,OAAO,CAAC,CAAC,MAAuB,EAAE,EAAE;QAClC,OAAO,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAmB,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,MAAuB;IAClD,OAAO,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAAiC;IACjE,OAAO,CAAC,CAAC,MAAuB,EAAE,EAAE;QAClC,OAAO,CAAC,cAAc,CAAC,sBAAsB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAmB,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,OAAmC;IACrE,OAAO,CAAC,CAAC,MAAuB,EAAE,EAAE;QAClC,OAAO,CAAC,cAAc,CAAC,wBAAwB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAmB,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU;IACxB,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACtF,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChE,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS;IACvB,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACtF,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/D,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB;IAC9B,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,UAA8B,EAAE,EAAE;QACtF,OAAO,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Search Decorators
|
|
3
|
+
* Enable semantic search capabilities on methods
|
|
4
|
+
*/
|
|
5
|
+
import 'reflect-metadata';
|
|
6
|
+
export interface SemanticSearchOptions {
|
|
7
|
+
topK?: number;
|
|
8
|
+
minScore?: number;
|
|
9
|
+
includeMetadata?: boolean;
|
|
10
|
+
filter?: Record<string, unknown>;
|
|
11
|
+
}
|
|
12
|
+
export interface HybridSearchOptions extends SemanticSearchOptions {
|
|
13
|
+
vectorWeight?: number;
|
|
14
|
+
keywordWeight?: number;
|
|
15
|
+
algorithm?: 'rrf' | 'weighted' | 'linear';
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Enables semantic search on a method
|
|
19
|
+
*/
|
|
20
|
+
export declare function SemanticSearch(options?: SemanticSearchOptions): MethodDecorator;
|
|
21
|
+
/**
|
|
22
|
+
* Enables hybrid search (vector + keyword) on a method
|
|
23
|
+
*/
|
|
24
|
+
export declare function HybridSearch(options?: HybridSearchOptions): MethodDecorator;
|
|
25
|
+
/**
|
|
26
|
+
* Auto-embed decorator for automatic embedding generation
|
|
27
|
+
*/
|
|
28
|
+
export declare function AutoEmbed(_fields?: string[]): MethodDecorator;
|
|
29
|
+
/**
|
|
30
|
+
* Multi-query RAG decorator
|
|
31
|
+
*/
|
|
32
|
+
export declare function MultiQueryRAG(options?: {
|
|
33
|
+
queries?: number;
|
|
34
|
+
}): MethodDecorator;
|
|
35
|
+
/**
|
|
36
|
+
* Compress context decorator
|
|
37
|
+
*/
|
|
38
|
+
export declare function CompressContext(options?: {
|
|
39
|
+
maxTokens?: number;
|
|
40
|
+
}): MethodDecorator;
|
|
41
|
+
/**
|
|
42
|
+
* Self-query RAG with automatic metadata filtering
|
|
43
|
+
*/
|
|
44
|
+
export declare function SelfQueryRAG(): MethodDecorator;
|
|
45
|
+
/**
|
|
46
|
+
* Rerank results decorator
|
|
47
|
+
*/
|
|
48
|
+
export declare function Rerank(options?: {
|
|
49
|
+
model?: string;
|
|
50
|
+
topN?: number;
|
|
51
|
+
}): MethodDecorator;
|
|
52
|
+
/**
|
|
53
|
+
* Parent-child document retrieval
|
|
54
|
+
*/
|
|
55
|
+
export declare function ParentChildRetrieval(): MethodDecorator;
|
|
56
|
+
/**
|
|
57
|
+
* Ensemble retrieval combining multiple methods
|
|
58
|
+
*/
|
|
59
|
+
export declare function EnsembleRetrieval(options?: {
|
|
60
|
+
methods?: string[];
|
|
61
|
+
weights?: number[];
|
|
62
|
+
}): MethodDecorator;
|
|
63
|
+
/**
|
|
64
|
+
* Time-weighted retrieval favoring recent documents
|
|
65
|
+
*/
|
|
66
|
+
export declare function TimeWeightedRetrieval(options?: {
|
|
67
|
+
decayRate?: number;
|
|
68
|
+
}): MethodDecorator;
|
|
69
|
+
//# sourceMappingURL=semantic-search.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-search.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/semantic-search.decorator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,QAAQ,CAAC;CAC3C;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,eAAe,CAKnF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,eAAe,CAK/E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,eAAe,CAe7D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,eAAe,CAKjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,eAAe,CAKrF;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,eAAe,CAK9C;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,eAAe,CAKvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAKtD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACf,GACL,eAAe,CAKjB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,eAAe,CAK3F"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Semantic Search Decorators
|
|
4
|
+
* Enable semantic search capabilities on methods
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.SemanticSearch = SemanticSearch;
|
|
8
|
+
exports.HybridSearch = HybridSearch;
|
|
9
|
+
exports.AutoEmbed = AutoEmbed;
|
|
10
|
+
exports.MultiQueryRAG = MultiQueryRAG;
|
|
11
|
+
exports.CompressContext = CompressContext;
|
|
12
|
+
exports.SelfQueryRAG = SelfQueryRAG;
|
|
13
|
+
exports.Rerank = Rerank;
|
|
14
|
+
exports.ParentChildRetrieval = ParentChildRetrieval;
|
|
15
|
+
exports.EnsembleRetrieval = EnsembleRetrieval;
|
|
16
|
+
exports.TimeWeightedRetrieval = TimeWeightedRetrieval;
|
|
17
|
+
require("reflect-metadata");
|
|
18
|
+
const SEMANTIC_SEARCH_KEY = Symbol('semanticSearch');
|
|
19
|
+
const HYBRID_SEARCH_KEY = Symbol('hybridSearch');
|
|
20
|
+
/**
|
|
21
|
+
* Enables semantic search on a method
|
|
22
|
+
*/
|
|
23
|
+
function SemanticSearch(options = {}) {
|
|
24
|
+
return (target, propertyKey, descriptor) => {
|
|
25
|
+
Reflect.defineMetadata(SEMANTIC_SEARCH_KEY, options, target, propertyKey);
|
|
26
|
+
return descriptor;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Enables hybrid search (vector + keyword) on a method
|
|
31
|
+
*/
|
|
32
|
+
function HybridSearch(options = {}) {
|
|
33
|
+
return (target, propertyKey, descriptor) => {
|
|
34
|
+
Reflect.defineMetadata(HYBRID_SEARCH_KEY, options, target, propertyKey);
|
|
35
|
+
return descriptor;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Auto-embed decorator for automatic embedding generation
|
|
40
|
+
*/
|
|
41
|
+
function AutoEmbed(_fields) {
|
|
42
|
+
return (target, propertyKey, descriptor) => {
|
|
43
|
+
const originalMethod = descriptor.value;
|
|
44
|
+
descriptor.value = async function (...args) {
|
|
45
|
+
const result = await originalMethod.apply(this, args);
|
|
46
|
+
// TODO: Implement automatic embedding generation
|
|
47
|
+
// This would integrate with the RAG service to generate embeddings
|
|
48
|
+
return result;
|
|
49
|
+
};
|
|
50
|
+
return descriptor;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Multi-query RAG decorator
|
|
55
|
+
*/
|
|
56
|
+
function MultiQueryRAG(options = {}) {
|
|
57
|
+
return (target, propertyKey, descriptor) => {
|
|
58
|
+
Reflect.defineMetadata('multiQueryRAG', options, target, propertyKey);
|
|
59
|
+
return descriptor;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Compress context decorator
|
|
64
|
+
*/
|
|
65
|
+
function CompressContext(options = {}) {
|
|
66
|
+
return (target, propertyKey, descriptor) => {
|
|
67
|
+
Reflect.defineMetadata('compressContext', options, target, propertyKey);
|
|
68
|
+
return descriptor;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Self-query RAG with automatic metadata filtering
|
|
73
|
+
*/
|
|
74
|
+
function SelfQueryRAG() {
|
|
75
|
+
return (target, propertyKey, descriptor) => {
|
|
76
|
+
Reflect.defineMetadata('selfQueryRAG', true, target, propertyKey);
|
|
77
|
+
return descriptor;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Rerank results decorator
|
|
82
|
+
*/
|
|
83
|
+
function Rerank(options = {}) {
|
|
84
|
+
return (target, propertyKey, descriptor) => {
|
|
85
|
+
Reflect.defineMetadata('rerank', options, target, propertyKey);
|
|
86
|
+
return descriptor;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Parent-child document retrieval
|
|
91
|
+
*/
|
|
92
|
+
function ParentChildRetrieval() {
|
|
93
|
+
return (target, propertyKey, descriptor) => {
|
|
94
|
+
Reflect.defineMetadata('parentChildRetrieval', true, target, propertyKey);
|
|
95
|
+
return descriptor;
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Ensemble retrieval combining multiple methods
|
|
100
|
+
*/
|
|
101
|
+
function EnsembleRetrieval(options = {}) {
|
|
102
|
+
return (target, propertyKey, descriptor) => {
|
|
103
|
+
Reflect.defineMetadata('ensembleRetrieval', options, target, propertyKey);
|
|
104
|
+
return descriptor;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Time-weighted retrieval favoring recent documents
|
|
109
|
+
*/
|
|
110
|
+
function TimeWeightedRetrieval(options = {}) {
|
|
111
|
+
return (target, propertyKey, descriptor) => {
|
|
112
|
+
Reflect.defineMetadata('timeWeightedRetrieval', options, target, propertyKey);
|
|
113
|
+
return descriptor;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=semantic-search.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-search.decorator.js","sourceRoot":"","sources":["../../src/decorators/semantic-search.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cohere Embeddings Provider
|
|
3
|
+
* High-quality embeddings with multilingual support
|
|
4
|
+
*/
|
|
5
|
+
import { EmbeddingProvider } from '../types';
|
|
6
|
+
export interface CohereEmbeddingsConfig {
|
|
7
|
+
apiKey: string;
|
|
8
|
+
model?: string;
|
|
9
|
+
inputType?: 'search_document' | 'search_query' | 'classification' | 'clustering';
|
|
10
|
+
truncate?: 'NONE' | 'START' | 'END';
|
|
11
|
+
batchSize?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare class CohereEmbeddings implements EmbeddingProvider {
|
|
14
|
+
private client;
|
|
15
|
+
private model;
|
|
16
|
+
private inputType;
|
|
17
|
+
private truncate;
|
|
18
|
+
private batchSize;
|
|
19
|
+
private dimension;
|
|
20
|
+
constructor(config: CohereEmbeddingsConfig);
|
|
21
|
+
embed(text: string): Promise<number[]>;
|
|
22
|
+
embedBatch(texts: string[]): Promise<number[][]>;
|
|
23
|
+
getDimension(): number;
|
|
24
|
+
/**
|
|
25
|
+
* Get embedding dimension for a given model
|
|
26
|
+
*/
|
|
27
|
+
private getModelDimension;
|
|
28
|
+
/**
|
|
29
|
+
* Create embeddings for search queries (optimized input type)
|
|
30
|
+
*/
|
|
31
|
+
embedQuery(query: string): Promise<number[]>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=cohere-embeddings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cohere-embeddings.d.ts","sourceRoot":"","sources":["../../src/embeddings/cohere-embeddings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAQ7C,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,YAAY,CAAC;IACjF,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,sBAAsB;IAapC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAetC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAwBtD,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAcnD"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cohere Embeddings Provider
|
|
4
|
+
* High-quality embeddings with multilingual support
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.CohereEmbeddings = void 0;
|
|
8
|
+
class CohereEmbeddings {
|
|
9
|
+
constructor(config) {
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
11
|
+
const { CohereClient } = require('cohere-ai');
|
|
12
|
+
this.client = new CohereClient({ token: config.apiKey });
|
|
13
|
+
this.model = config.model || 'embed-english-v3.0';
|
|
14
|
+
this.inputType = config.inputType || 'search_document';
|
|
15
|
+
this.truncate = config.truncate || 'END';
|
|
16
|
+
this.batchSize = config.batchSize || 96;
|
|
17
|
+
// Set dimension based on model
|
|
18
|
+
this.dimension = this.getModelDimension(this.model);
|
|
19
|
+
}
|
|
20
|
+
async embed(text) {
|
|
21
|
+
try {
|
|
22
|
+
const response = await this.client.embed({
|
|
23
|
+
texts: [text],
|
|
24
|
+
model: this.model,
|
|
25
|
+
inputType: this.inputType,
|
|
26
|
+
truncate: this.truncate,
|
|
27
|
+
});
|
|
28
|
+
return response.embeddings[0];
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
throw new Error(`Failed to generate Cohere embedding: ${error}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async embedBatch(texts) {
|
|
35
|
+
const embeddings = [];
|
|
36
|
+
// Process in batches
|
|
37
|
+
for (let i = 0; i < texts.length; i += this.batchSize) {
|
|
38
|
+
const batch = texts.slice(i, i + this.batchSize);
|
|
39
|
+
try {
|
|
40
|
+
const response = await this.client.embed({
|
|
41
|
+
texts: batch,
|
|
42
|
+
model: this.model,
|
|
43
|
+
inputType: this.inputType,
|
|
44
|
+
truncate: this.truncate,
|
|
45
|
+
});
|
|
46
|
+
embeddings.push(...response.embeddings);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
throw new Error(`Failed to generate Cohere batch embeddings: ${error}`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return embeddings;
|
|
53
|
+
}
|
|
54
|
+
getDimension() {
|
|
55
|
+
return this.dimension;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get embedding dimension for a given model
|
|
59
|
+
*/
|
|
60
|
+
getModelDimension(model) {
|
|
61
|
+
const dimensions = {
|
|
62
|
+
'embed-english-v3.0': 1024,
|
|
63
|
+
'embed-english-light-v3.0': 384,
|
|
64
|
+
'embed-multilingual-v3.0': 1024,
|
|
65
|
+
'embed-multilingual-light-v3.0': 384,
|
|
66
|
+
'embed-english-v2.0': 4096,
|
|
67
|
+
'embed-english-light-v2.0': 1024,
|
|
68
|
+
'embed-multilingual-v2.0': 768,
|
|
69
|
+
};
|
|
70
|
+
return dimensions[model] || 1024;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Create embeddings for search queries (optimized input type)
|
|
74
|
+
*/
|
|
75
|
+
async embedQuery(query) {
|
|
76
|
+
try {
|
|
77
|
+
const response = await this.client.embed({
|
|
78
|
+
texts: [query],
|
|
79
|
+
model: this.model,
|
|
80
|
+
inputType: 'search_query',
|
|
81
|
+
truncate: this.truncate,
|
|
82
|
+
});
|
|
83
|
+
return response.embeddings[0];
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
throw new Error(`Failed to generate Cohere query embedding: ${error}`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.CohereEmbeddings = CohereEmbeddings;
|
|
91
|
+
//# sourceMappingURL=cohere-embeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cohere-embeddings.js","sourceRoot":"","sources":["../../src/embeddings/cohere-embeddings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Embeddings Provider
|
|
3
|
+
*/
|
|
4
|
+
import { EmbeddingProvider } from '../types';
|
|
5
|
+
export interface OpenAIEmbeddingsConfig {
|
|
6
|
+
apiKey: string;
|
|
7
|
+
model?: string;
|
|
8
|
+
dimensions?: number;
|
|
9
|
+
batchSize?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class OpenAIEmbeddings implements EmbeddingProvider {
|
|
12
|
+
private client;
|
|
13
|
+
private model;
|
|
14
|
+
private dimensions;
|
|
15
|
+
private batchSize;
|
|
16
|
+
constructor(config: OpenAIEmbeddingsConfig);
|
|
17
|
+
embed(text: string): Promise<number[]>;
|
|
18
|
+
embedBatch(texts: string[]): Promise<number[][]>;
|
|
19
|
+
getDimension(): number;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=openai-embeddings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-embeddings.d.ts","sourceRoot":"","sources":["../../src/embeddings/openai-embeddings.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,sBAAsB;IASpC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IActC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAuBtD,YAAY,IAAI,MAAM;CAGvB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenAI Embeddings Provider
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OpenAIEmbeddings = void 0;
|
|
7
|
+
class OpenAIEmbeddings {
|
|
8
|
+
constructor(config) {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
10
|
+
const { OpenAI: OpenAIClass } = require('openai');
|
|
11
|
+
this.client = new OpenAIClass({ apiKey: config.apiKey });
|
|
12
|
+
this.model = config.model || 'text-embedding-3-small';
|
|
13
|
+
this.dimensions = config.dimensions || 1536;
|
|
14
|
+
this.batchSize = config.batchSize || 100;
|
|
15
|
+
}
|
|
16
|
+
async embed(text) {
|
|
17
|
+
try {
|
|
18
|
+
const response = await this.client.embeddings.create({
|
|
19
|
+
model: this.model,
|
|
20
|
+
input: text,
|
|
21
|
+
dimensions: this.dimensions,
|
|
22
|
+
});
|
|
23
|
+
return response.data[0].embedding;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
throw new Error(`Failed to generate embedding: ${error}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async embedBatch(texts) {
|
|
30
|
+
const embeddings = [];
|
|
31
|
+
// Process in batches
|
|
32
|
+
for (let i = 0; i < texts.length; i += this.batchSize) {
|
|
33
|
+
const batch = texts.slice(i, i + this.batchSize);
|
|
34
|
+
try {
|
|
35
|
+
const response = await this.client.embeddings.create({
|
|
36
|
+
model: this.model,
|
|
37
|
+
input: batch,
|
|
38
|
+
dimensions: this.dimensions,
|
|
39
|
+
});
|
|
40
|
+
embeddings.push(...response.data.map((item) => item.embedding));
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
throw new Error(`Failed to generate batch embeddings: ${error}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return embeddings;
|
|
47
|
+
}
|
|
48
|
+
getDimension() {
|
|
49
|
+
return this.dimensions;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OpenAIEmbeddings = OpenAIEmbeddings;
|
|
53
|
+
//# sourceMappingURL=openai-embeddings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai-embeddings.js","sourceRoot":"","sources":["../../src/embeddings/openai-embeddings.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAeH,MAAa,gBAAgB;IAM3B,YAAY,MAA8B;QACxC,iEAAiE;QACjE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,wBAAwB,CAAC;QACtD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,GAAG,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;gBACnD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAe;QAC9B,MAAM,UAAU,GAAe,EAAE,CAAC;QAElC,qBAAqB;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAEjD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;oBACnD,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;gBAEH,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAA6B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC3F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AAvDD,4CAuDC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CommunityDetector
|
|
3
|
+
*
|
|
4
|
+
* Detects communities (clusters of closely-related entities) in the knowledge
|
|
5
|
+
* graph using the **Label Propagation Algorithm (LPA)**.
|
|
6
|
+
*
|
|
7
|
+
* Why LPA?
|
|
8
|
+
* - O(V + E) per iteration → scales well to thousands of entities
|
|
9
|
+
* - No parameters to tune (unlike Louvain's resolution parameter)
|
|
10
|
+
* - Converges in ~5–10 iterations for most real-world graphs
|
|
11
|
+
*
|
|
12
|
+
* Algorithm:
|
|
13
|
+
* 1. Assign each entity its own unique community label.
|
|
14
|
+
* 2. Shuffle entity iteration order (breaks symmetry for better convergence).
|
|
15
|
+
* 3. Each entity adopts the most frequent label among its neighbours,
|
|
16
|
+
* weighted by relationship strength.
|
|
17
|
+
* 4. Repeat until labels stabilise or max iterations reached.
|
|
18
|
+
* 5. Groups entities that share the same label into communities.
|
|
19
|
+
*
|
|
20
|
+
* Large-community splitting:
|
|
21
|
+
* If a community exceeds `maxCommunitySize`, it is recursively split by
|
|
22
|
+
* running LPA on the sub-graph of its members only.
|
|
23
|
+
*/
|
|
24
|
+
import type { GraphCommunity } from './graph.types';
|
|
25
|
+
import type { GraphStore } from './knowledge-graph';
|
|
26
|
+
export interface CommunityDetectorConfig {
|
|
27
|
+
maxIterations?: number;
|
|
28
|
+
maxCommunitySize?: number;
|
|
29
|
+
}
|
|
30
|
+
export declare class CommunityDetector {
|
|
31
|
+
private readonly maxIterations;
|
|
32
|
+
private readonly maxCommunitySize;
|
|
33
|
+
constructor(config?: CommunityDetectorConfig);
|
|
34
|
+
/**
|
|
35
|
+
* Run community detection on the full graph.
|
|
36
|
+
* Returns a flat list of GraphCommunity objects (level 0 = leaf communities).
|
|
37
|
+
*/
|
|
38
|
+
detect(graph: GraphStore): GraphCommunity[];
|
|
39
|
+
private buildWeightedAdjacency;
|
|
40
|
+
private runLPA;
|
|
41
|
+
private groupByLabel;
|
|
42
|
+
private splitOversized;
|
|
43
|
+
private shuffle;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=community-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"community-detector.d.ts","sourceRoot":"","sources":["../../src/graph/community-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAE9B,MAAM,GAAE,uBAA4B;IAKhD;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,EAAE;IAsB3C,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,MAAM;IA8Cd,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,OAAO;CAOhB"}
|