optional semantic retrieval
This commit is contained in:
parent
7c3cd2ab63
commit
1bac1832f0
11 changed files with 453 additions and 3 deletions
|
|
@ -11,6 +11,7 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
|
|||
from repo_registry.core.service import RegistryService
|
||||
from repo_registry.llm_extraction import LLMCandidateExtractor, create_llm_connect_adapter
|
||||
from repo_registry.repo_ingestion.git import GitIngestionService
|
||||
from repo_registry.semantic import HashingEmbeddingProvider
|
||||
from repo_registry.storage.sqlite import NotFoundError, RegistryStore
|
||||
from repo_registry.web_api.schemas import (
|
||||
AbilityCreate,
|
||||
|
|
@ -60,6 +61,7 @@ class Settings(BaseSettings):
|
|||
checkout_root: str = Field(default="var/checkouts")
|
||||
llm_provider: str | None = Field(default=None)
|
||||
llm_model: str | None = Field(default=None)
|
||||
embedding_provider: str | None = Field(default=None)
|
||||
|
||||
|
||||
def get_settings() -> Settings:
|
||||
|
|
@ -78,10 +80,14 @@ def get_service(settings: Settings = Depends(get_settings)) -> RegistryService:
|
|||
model=settings.llm_model,
|
||||
)
|
||||
llm_extractor = LLMCandidateExtractor(adapter)
|
||||
embedding_provider = None
|
||||
if settings.embedding_provider == "hashing":
|
||||
embedding_provider = HashingEmbeddingProvider()
|
||||
return RegistryService(
|
||||
store,
|
||||
ingestion=GitIngestionService(settings.checkout_root),
|
||||
llm_extractor=llm_extractor,
|
||||
embedding_provider=embedding_provider,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue