CI / test (push) Canceled after 0s
## Summary epic r04 - begin refactor ## Change Type - [x] Cowork feature - [ ] Bug fix - [ ] Core AI contribution - [ ] Test / hardening - [ ] Performance - [ ] Documentation ## Related Work Cowork Task: Core Repo: http://34.143.229.138/gitea-admin/fsg-ai-core-assets Core AI Issue: Core Task: Related PR: ## Scope What is intentionally included? What is intentionally NOT included? ## Validation - [ ] Unit tests - [ ] Integration tests - [ ] Manual verification - [ ] Regression check Commands / evidence: ## Security Impact Permission / credential / network / customer data impact: ## Compatibility - [ ] No breaking change - [ ] Breaking change documented ## Reviewer Notes Anything Cowork reviewers should pay attention to. --------- Co-authored-by: Anh Tran Nguyen Minh <anhtnm1@fpt.com> Co-authored-by: Huong Le Thi Thien <huongltt35@fpt.com> Co-authored-by: Nam Pham Dinh Thanh <nampdt@fpt.com> Co-authored-by: Vu Dam Tuan <vudt15@fpt.com> Co-authored-by: Hiep Ha Van <hiephv3@fpt.com> Co-authored-by: Lam Hoang Van <lamhv7@fpt.com> Reviewed-on: #7 Co-authored-by: Duy Le Huu <duylh19@fpt.com>
33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
"""Build a provider instance from the application config.
|
|
|
|
Kept as the historic entry point (``providers.build_provider``) that call sites
|
|
across the app already import, but it no longer owns a provider table of its
|
|
own: since R03-T02 the catalogue lives in
|
|
``infrastructure/providers/provider_registry.py`` so provider ids, wire
|
|
protocols, default models and capabilities are declared exactly once.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from typing import Any, Dict
|
|
|
|
from .base import Provider, ProviderError
|
|
|
|
|
|
def build_provider(name: str, conf: Dict[str, Any]) -> Provider:
|
|
"""Construct the adapter registered for ``name``.
|
|
|
|
Delegates to the central registry and translates its lookup failure into
|
|
:class:`ProviderError`, because every existing call site (chat turns,
|
|
Settings' connection test, the routing prober) already handles that type —
|
|
changing the exception would ripple into unrelated error handling.
|
|
"""
|
|
from ..infrastructure.providers.provider_registry import (
|
|
ProviderNotFoundError,
|
|
default_registry,
|
|
)
|
|
|
|
try:
|
|
return default_registry().build(name, conf)
|
|
except ProviderNotFoundError as exc:
|
|
raise ProviderError(f"Unsupported provider: {name}") from exc
|