feat: add model validator to strip quotes from string fields in LLMConfig
This commit is contained in:
parent
df102e99a9
commit
c069dd276e
1 changed files with 20 additions and 0 deletions
|
|
@ -73,6 +73,26 @@ class LLMConfig(BaseSettings):
|
||||||
|
|
||||||
model_config = SettingsConfigDict(env_file=".env", extra="allow")
|
model_config = SettingsConfigDict(env_file=".env", extra="allow")
|
||||||
|
|
||||||
|
@model_validator(mode="after")
|
||||||
|
def strip_quotes_from_strings(self) -> "LLMConfig":
|
||||||
|
"""
|
||||||
|
Strip surrounding quotes from all string fields in the model.
|
||||||
|
|
||||||
|
This handles cases where Docker's --env-file or shell quoting
|
||||||
|
accidentally includes quotes in the value (e.g., LLM_API_KEY="value").
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
LLMConfig: The instance with quotes stripped from all string fields.
|
||||||
|
"""
|
||||||
|
for field_name, _ in self.__class__.model_fields.items():
|
||||||
|
value = getattr(self, field_name, None)
|
||||||
|
if isinstance(value, str) and len(value) >= 2:
|
||||||
|
if (value.startswith('"') and value.endswith('"')) or (
|
||||||
|
value.startswith("'") and value.endswith("'")
|
||||||
|
):
|
||||||
|
setattr(self, field_name, value[1:-1])
|
||||||
|
return self
|
||||||
|
|
||||||
def model_post_init(self, __context) -> None:
|
def model_post_init(self, __context) -> None:
|
||||||
"""Initialize the BAML registry after the model is created."""
|
"""Initialize the BAML registry after the model is created."""
|
||||||
# Check if BAML is selected as structured output framework but not available
|
# Check if BAML is selected as structured output framework but not available
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue