in aidial_adapter_openai/app_config.py [0:0]
def from_env(cls) -> "ApplicationConfig":
def _parse_env_deployments(deployments_key: str) -> List[str] | None:
deployments_value = os.getenv(deployments_key)
if deployments_value is None:
return None
return list(map(str.strip, (deployments_value).split(",")))
def _parse_env_dict(key: str) -> Dict[str, str] | None:
value = os.getenv(key)
return json.loads(value) if value else None
def _parse_eliminate_empty_choices() -> bool | None:
old_name = "FIX_STREAMING_ISSUES_IN_NEW_API_VERSIONS"
new_name = "ELIMINATE_EMPTY_CHOICES"
if old_name in os.environ:
logger.warning(
f"{old_name} environment variable is deprecated. Use {new_name} instead."
)
return get_env_bool(old_name)
elif new_name in os.environ:
return get_env_bool(new_name)
return None
deployment_fields = {
deployment_key: _parse_env_deployments(deployment_key)
for deployment_key in (
"DALLE3_DEPLOYMENTS",
"GPT4_VISION_DEPLOYMENTS",
"MISTRAL_DEPLOYMENTS",
"DATABRICKS_DEPLOYMENTS",
"GPT4O_DEPLOYMENTS",
"GPT4O_MINI_DEPLOYMENTS",
"AZURE_AI_VISION_DEPLOYMENTS",
"NON_STREAMING_DEPLOYMENTS",
)
}
dict_fields = {
key: _parse_env_dict(key)
for key in (
"MODEL_ALIASES",
"API_VERSIONS_MAPPING",
"COMPLETION_DEPLOYMENTS_PROMPT_TEMPLATES",
)
}
return cls(
**remove_nones(
{
**deployment_fields,
**dict_fields,
"DALLE3_AZURE_API_VERSION": os.getenv(
"DALLE3_AZURE_API_VERSION"
),
"ELIMINATE_EMPTY_CHOICES": _parse_eliminate_empty_choices(),
}
),
)