Skip to content

Commit 4bb7264

Browse files
jonahjung22dlqqq
authored andcommitted
fixing functionality of pydantic model
1 parent f88f92b commit 4bb7264

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

packages/jupyter-ai/jupyter_ai/model_providers/parameter_schemas.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from __future__ import annotations
2-
from typing import TYPE_CHECKING, cast, Literal, Optional
2+
from typing import TYPE_CHECKING, cast, Literal, Optional, Any
33
from pydantic import BaseModel
44

55
if TYPE_CHECKING:
6-
from typing import Any
6+
pass
77

88

99
PARAMETER_SCHEMAS: dict[str, dict[str, Any]] = {
@@ -116,15 +116,19 @@ class ParameterSchema(BaseModel):
116116
"""Pydantic model for parameter schema definition."""
117117
type: Literal['boolean', 'integer', 'float', 'string', 'array', 'object']
118118
description: str
119-
min: Optional[float] = None
120-
max: Optional[float] = None
121-
122119

123120
class GetModelParametersResponse(BaseModel):
124121
"""Pydantic model for GET model parameters response."""
125122
parameters: dict[str, ParameterSchema]
126123
parameter_names: list[str]
127124

125+
class UpdateModelParametersResponse(BaseModel):
126+
"""Pydantic model for PUT model parameters response."""
127+
status: str
128+
message: str
129+
model_id: str
130+
parameters: dict[str, Any]
131+
128132

129133
def get_parameter_schema(param_name: str) -> ParameterSchema:
130134
"""

packages/jupyter-ai/jupyter_ai/model_providers/parameters_rest_api.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import json
44

55
from litellm.litellm_core_utils.get_supported_openai_params import get_supported_openai_params
6-
from .parameter_schemas import get_parameters_with_schemas, coerce_parameter_value, GetModelParametersResponse
6+
from .parameter_schemas import get_parameters_with_schemas, coerce_parameter_value, GetModelParametersResponse, UpdateModelParametersResponse
77
from ..config_manager import ConfigManager
88
from ..config import UpdateConfigRequest
99

@@ -118,18 +118,16 @@ def put(self):
118118
)
119119
config_manager.update_config(update_request)
120120

121-
# TODO: Define the response type as a Pydantic model to prevent
122-
# breaking API changes. Response body is currently unused by frontend
123-
# but kept for API compatibility.
124-
response = {
125-
"status": "success",
126-
"message": f"Parameters saved for model {model_id}",
127-
"model_id": model_id,
128-
"parameters": coerced_parameters,
129-
}
121+
# Create Pydantic response model for API compatibility
122+
response = UpdateModelParametersResponse(
123+
status="success",
124+
message=f"Parameters saved for model {model_id}",
125+
model_id=model_id,
126+
parameters=coerced_parameters
127+
)
130128

131129
self.set_header("Content-Type", "application/json")
132-
self.finish(json.dumps(response))
130+
self.finish(response.model_dump_json())
133131

134132
except json.JSONDecodeError:
135133
raise HTTPError(400, "Invalid JSON in request body")

0 commit comments

Comments
 (0)