# backend/app/agents/connectors_bridge.py # CONNECTOR_KNOWLEDGE 라우팅 — 웹검색/지식 출처 커넥터. from ..config import get_settings class MockSearchConnector: """시드 기반 출처(research-data.js 출처군: 논문 3 / 뉴스 5 / 보고서 2)를 반환. 오프라인에서도 종합 리포트가 생성되도록 데모 결정성을 보장.""" SEED_HITS = ( [ { "title": f"학술 논문 {i + 1}", "url": "", "kind": "pdf", "snippet": "추론 비용의 병목은 메모리 대역폭", "group": "논문", } for i in range(3) ] + [ { "title": f"뉴스 기사 {i + 1}", "url": "", "kind": "web", "snippet": "HBM4 양산 경쟁", "group": "뉴스", } for i in range(5) ] + [ { "title": f"산업 보고서 {i + 1}", "url": "", "kind": "pdf", "snippet": "데이터센터 전력 규제", "group": "보고서·블로그", } for i in range(2) ] ) def search(self, query: str, k: int = 8) -> list[dict]: return self.SEED_HITS[:k] def get_knowledge_connector(): mode = getattr(get_settings(), "connector_knowledge", "mock") if mode == "real": # phase-13 (Tavily/검색 API 등) raise NotImplementedError("phase-13: real knowledge connector") return MockSearchConnector()