feat: add AI descriptions and platform submission checks
This commit is contained in:
@@ -13,9 +13,15 @@ class ModelSettingsInput(Contract):
|
||||
base_url: str = Field(max_length=2000)
|
||||
api_key: SecretStr | None = None
|
||||
model: str = Field(min_length=1, max_length=200)
|
||||
description_model: str = Field(default="", max_length=200)
|
||||
protocol: Literal["chat_completions", "responses"] = "chat_completions"
|
||||
enabled: bool = False
|
||||
|
||||
@field_validator("description_model")
|
||||
@classmethod
|
||||
def clean_description_model(cls, value):
|
||||
return value.strip()
|
||||
|
||||
@field_validator("base_url")
|
||||
@classmethod
|
||||
def valid_url(cls, value):
|
||||
|
||||
@@ -18,6 +18,7 @@ def settings_output(row):
|
||||
return {
|
||||
"base_url": row.base_url,
|
||||
"model": row.model,
|
||||
"description_model": row.description_model,
|
||||
"protocol": row.protocol,
|
||||
"configured": bool(row.api_key_encrypted),
|
||||
"enabled": row.enabled,
|
||||
@@ -49,6 +50,8 @@ def router(runtime):
|
||||
row.revision += 1
|
||||
row.tested_revision, row.test_results = None, {}
|
||||
row.base_url, row.model, row.protocol = body.base_url, body.model, body.protocol
|
||||
if "description_model" in body.model_fields_set:
|
||||
row.description_model = body.description_model
|
||||
if key:
|
||||
row.api_key_encrypted = cipher(runtime.settings).encrypt(key.encode()).decode()
|
||||
row.enabled = body.enabled and row.tested_revision == row.revision
|
||||
|
||||
Reference in New Issue
Block a user