Source code for tooluniverse.database_setup.provider_resolver

"""Provider/model resolution helpers based on explicit args and environment.

Resolution order
---------------
provider: explicit > EMBED_PROVIDER > by available creds (azure > openai > huggingface > local)
model   : explicit > EMBED_MODEL > provider defaults
"""

import os


[docs] def resolve_provider(explicit: str | None = None) -> str: """Resolve an embedding provider string. Order: explicit → EMBED_PROVIDER → available credentials (azure > openai > huggingface > local). """ if explicit: return explicit env = os.getenv("EMBED_PROVIDER") if env: return env if os.getenv("AZURE_OPENAI_API_KEY"): return "azure" if os.getenv("OPENAI_API_KEY"): return "openai" if os.getenv("HF_TOKEN"): return "huggingface" return "local"
[docs] def resolve_model(provider: str, explicit: str | None = None) -> str: """Resolve an embedding model/deployment id for the given provider. Order: explicit → EMBED_MODEL → provider default (env override where applicable). """ if explicit: return explicit em = os.getenv("EMBED_MODEL") if em: return em if provider == "azure": # deployment name return os.getenv("AZURE_OPENAI_DEPLOYMENT", "text-embedding-3-small") if provider == "huggingface": return os.getenv("HF_EMBED_MODEL", "sentence-transformers/all-MiniLM-L6-v2") if provider == "local": return os.getenv("LOCAL_EMBED_MODEL", "all-MiniLM-L6-v2") # openai/default return "text-embedding-3-small"