runtime.embeddingSearch Runtime drafted

Embedding Search — provider/protocol 등록

embedding provider 등록 패턴 + cosine similarity search SSOT. **status=drafted — providers/embeddingProvider.py 코드 미신설 (Phase 3.B A-track)**. 본 spec 은 코드 작성 시 따를 표준 인터페이스.

이 스킬

Embedding Search — provider/protocol 등록

embedding provider 등록 패턴 + cosine similarity search SSOT. **status=drafted — providers/embeddingProvider.py 코드 미신설 (Phase 3.B A-track)**. 본 spec 은 코드 작성 시 따를 표준 인터페이스.

Runtime drafted runtime.embeddingSearch

이어 가기

절차

실행 순서

  1. 1

    section_content (dartlab DART 공시) → 한 번 embed → `gather/sectionEmbedding.parquet` cache.

  2. 2

    갱신: 신규 공시 발견 시 incremental embed.

  3. 3

    의존성: numpy direct, scipy/sklearn 0.

표준 인터페이스 (코드 작성 시)

class EmbeddingProvider(Protocol):
    def embed(self, text: str | list[str]) -> np.ndarray: ...
    def embed_batch(self, texts: list[str], batch_size: int = 100) -> np.ndarray: ...

class AnthropicEmbeddingProvider:
    """Anthropic embedding API"""

class LocalEmbeddingProvider:
    """Sentence-transformers fallback (의존성 X — numpy direct)"""

검색 패턴

# 1. embed query
query_vec = provider.embed("HBM 양산")

# 2. cosine similarity vs document corpus
docs = load_section_embeddings()   # gather/sectionEmbedding 출력
scores = (docs @ query_vec) / (np.linalg.norm(docs, axis=1) * np.linalg.norm(query_vec))

# 3. top-k
top_k = np.argsort(scores)[-10:][::-1]

storage

  • section_content (dartlab DART 공시) → 한 번 embed → gather/sectionEmbedding.parquet cache.
  • 갱신: 신규 공시 발견 시 incremental embed.
  • 의존성: numpy direct, scipy/sklearn 0.

강행 룰

  1. provider 단일 SSOT — providers/embeddingProvider.py.
  2. embedding 결과 외부 본문 시 untrusted wrap (RAG pipeline 적용).
  3. cosine similarity 외 다른 metric 사용 시 명시.

기본 검증

embed 결과 dim 일관 (Anthropic 1024 / local model 384). batch size 100 기본. cache hit 율 측정.

런타임

실행 환경별 호환성

환경상태비고 / 제한
Local Python limited
Server limited
MCP limited
Web AI limited
Pyodide limited