Skip to content

Commit 0d42404

Browse files
SonAIengineclaude
andcommitted
feat: 엔티티 추출/리랭커/쿼리 분해 확장 모듈 추가
- ChunkEntityIndex, SpaCyEntityExtractor, HybridEntityExtractor, TableIngester - Reranker, QueryDecomposer, Community, EntityResolver, DualLevelSearch - graph.py에 chunk_entity_index/query_decomposer/reranker 통합 - spacy/rag optional dependency 추가 - 테스트 8건 추가 (422 passed) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent c4f79f2 commit 0d42404

File tree

130 files changed

+5300
-21
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+5300
-21
lines changed

pyproject.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ neo4j = ["neo4j>=5.25"]
5353
qdrant = ["qdrant-client>=1.12"]
5454
minio = ["miniopy-async>=1.21"]
5555
embedding = ["aiohttp>=3.9"]
56+
spacy = ["spacy>=3.7"]
57+
rag = ["spacy>=3.7", "aiohttp>=3.9"]
5658
mcp = ["mcp[cli]>=1.5", "aiosqlite>=0.20"]
5759
scale = [
5860
"neo4j>=5.25",

src/synaptic/__init__.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
from synaptic.activity import ActivityTracker
4444
from synaptic.agent_search import AgentSearch, SearchIntent, suggest_intent
4545
from synaptic.evidence import EvidenceAssembler
46+
from synaptic.extensions.chunk_entity_index import ChunkEntityIndex
4647
from synaptic.extensions.classifier_rules import RuleBasedClassifier
4748
from synaptic.extensions.embedder import EmbeddingProvider, MockEmbeddingProvider
4849
from synaptic.extensions.phrase_extractor import PhraseExtractor
@@ -74,6 +75,7 @@
7475
from synaptic.ppr import personalized_pagerank
7576
from synaptic.protocols import (
7677
Digester,
78+
EntityExtractor,
7779
GraphTraversal,
7880
KindClassifier,
7981
QueryRewriter,
@@ -88,6 +90,7 @@
8890
__all__ = [
8991
"ActivatedNode",
9092
"ActivityTracker",
93+
"ChunkEntityIndex",
9194
"AgentSearch",
9295
"ClassificationResult",
9396
"ConsolidationLevel",
@@ -97,6 +100,7 @@
97100
"EdgeKind",
98101
"EmbeddingProvider",
99102
"EmbeddingRelationDetector",
103+
"EntityExtractor",
100104
"EvidenceAssembler",
101105
"EvidenceChain",
102106
"EvidenceStep",
@@ -120,6 +124,9 @@
120124
"ResonanceWeights",
121125
"RuleBasedClassifier",
122126
"RuleBasedRelationDetector",
127+
"SpaCyEntityExtractor",
128+
"HybridEntityExtractor",
129+
"TableIngester",
123130
"SearchIntent",
124131
"SearchResult",
125132
"StorageBackend",
@@ -166,5 +173,17 @@ def __getattr__(name: str) -> object:
166173
from synaptic.extensions.llm_provider import OpenAILLMProvider
167174

168175
return OpenAILLMProvider
176+
if name == "SpaCyEntityExtractor":
177+
from synaptic.extensions.entity_extractor_spacy import SpaCyEntityExtractor
178+
179+
return SpaCyEntityExtractor
180+
if name == "HybridEntityExtractor":
181+
from synaptic.extensions.entity_extractor_hybrid import HybridEntityExtractor
182+
183+
return HybridEntityExtractor
184+
if name == "TableIngester":
185+
from synaptic.extensions.table_ingester import TableIngester
186+
187+
return TableIngester
169188
msg = f"module 'synaptic' has no attribute {name!r}"
170189
raise AttributeError(msg)
2.28 KB
Binary file not shown.
-3.82 KB
Binary file not shown.
-8 Bytes
Binary file not shown.
-12.7 KB
Binary file not shown.
651 Bytes
Binary file not shown.
-21.2 KB
Binary file not shown.
8 Bytes
Binary file not shown.
-4.69 KB
Binary file not shown.

0 commit comments

Comments
 (0)