vibe.review.services.provider_factory¶
Provider resolution for VIBE Review.
Review uses a narrow subset of LLM functionality (single-shot, structured output). We still reuse the existing global configuration registry patterns: - Embedding/rerank providers selected by key (local/berget/mock). - LLM endpoints selected by name from config.yml (LLM_ENDPOINTS).
TemplateConfigLoader ¶
Protocol for loading template config.
get_template_config ¶
get_template_config(template_id: str) -> dict[str, Any]
Return the parsed config.yml for a template.
ReviewProviders ¶
Resolved providers for a review template.
ReviewProviderFactory ¶
Resolve providers from template config and app config.
Template config keys (in template's config.yml):
review:
embedding: local|berget|mock|auto
reranking: local|berget|mock|auto
evaluation:
create_embedding_provider ¶
create_embedding_provider(template_config: Mapping[str, Any] | None) -> EmbeddingProvider
Create embedding provider from template's review.embedding config.
create_rerank_provider ¶
create_rerank_provider(template_config: Mapping[str, Any] | None) -> RerankProvider
Create rerank provider from template's review.reranking config.
create_llm_client ¶
create_llm_client(template_config: Mapping[str, Any] | None, *, require_config: bool = False) -> BaseLLMClient
Create LLM client from template's review.evaluation endpoint config.
create_providers ¶
create_providers(template_config: Mapping[str, Any] | None, *, require_llm_config: bool = False) -> ReviewProviders
Create all review providers (embedding, rerank, LLM) from template config.
load_template_config ¶
load_template_config(template_id: str) -> dict[str, Any]
Load template config.yml by template ID.
Uses template_config_loader if provided, otherwise raises.
get_template_id_for_session ¶
get_template_id_for_session(db_session: Session, session_id: int) -> str | None
Look up template_id from a review session.
get_template_id_for_document ¶
get_template_id_for_document(db_session: Session, document_id: int) -> str | None
Look up template_id from a document's session.
create_embedding_provider_for_session ¶
create_embedding_provider_for_session(db_session: Session, session_id: int) -> EmbeddingProvider
Create embedding provider using template config from session.
create_rerank_provider_for_session ¶
create_rerank_provider_for_session(db_session: Session, session_id: int) -> RerankProvider
Create rerank provider using template config from session.
create_providers_for_session ¶
create_providers_for_session(db_session: Session, session_id: int, *, require_llm_config: bool = False) -> ReviewProviders
Create all providers using template config from session.
TemplateProviderAdapter ¶
Adapts TemplateDataProvider to TemplateConfigLoader protocol.
get_template_config ¶
get_template_config(template_id: str) -> dict[str, Any]
Get template config by loading template data and extracting config.
create_factory_with_app_context ¶
create_factory_with_app_context(app_config: Mapping[str, Any] | None = None) -> tuple[Any, ReviewProviderFactory]
Create a ReviewProviderFactory with proper app context.
Returns a tuple of (app_context, factory). The caller must use the app_context as a context manager.
Usage
ctx, factory = create_factory_with_app_context() with ctx: provider = factory.create_embedding_provider_for_session(db, session_id)