Fix SSE route dependency and align architecture docs

This commit is contained in:
ash66
2026-05-18 16:32:42 +08:00
parent 86b9ac806a
commit 3f69cad404
149 changed files with 4786 additions and 5957 deletions

View File

@@ -0,0 +1,24 @@
"""Implement infrastructure support for dense retriever."""
from __future__ import annotations
from app.domain.retrieval import EmbeddingProvider, RetrievalQuery, Retriever, RetrievedChunk, VectorIndex
# Keep adapter behavior explicit so integration details remain easy to audit.
class DenseRetriever(Retriever):
"""Provide the Dense Retriever retriever."""
def __init__(self, *, embedding_provider: EmbeddingProvider, vector_index: VectorIndex) -> None:
"""Initialize the Dense Retriever instance."""
self.embedding_provider = embedding_provider
self.vector_index = vector_index
def retrieve(self, query: RetrievalQuery) -> list[RetrievedChunk]:
"""Handle retrieve for the Dense Retriever instance."""
query_vector = self.embedding_provider.embed_query(query.query)
return self.vector_index.search(query_vector, query.top_k, query.filters)
def search(self, query: str, top_k: int, filters: str | None = None) -> list[RetrievedChunk]:
"""Handle search for the Dense Retriever instance."""
return self.retrieve(RetrievalQuery(query=query, top_k=top_k, filters=filters))