diff --git a/python/src/aiconfig/editor/server/server.py b/python/src/aiconfig/editor/server/server.py index 12b9bc35e..0c373b5d1 100644 --- a/python/src/aiconfig/editor/server/server.py +++ b/python/src/aiconfig/editor/server/server.py @@ -1,5 +1,5 @@ import logging -from typing import Any, Type +from typing import Any, Dict, Type import lastmile_utils.lib.core.api as core_utils import result @@ -226,3 +226,18 @@ def delete_prompt() -> FlaskResponse: operation = make_op_run_method(method_name) return run_aiconfig_operation_with_request_json(aiconfig, request_json, f"method_{method_name}", operation, signature) + + +@app.route("/api/update_model", methods=["POST"]) +def update_model() -> FlaskResponse: + state = get_server_state(app) + aiconfig = state.aiconfig + request_json = request.get_json() + + model_name: str | None = request_json.get("model_name") + settings: Dict[str, Any] | None = request_json.get("settings") + prompt_name: str | None = request_json.get("prompt_name") + + operation = make_op_run_method(MethodName("update_model")) + operation_args: Result[OpArgs, str] = result.Ok(OpArgs({"model_name": model_name, "settings": settings, "prompt_name": prompt_name})) + return run_aiconfig_operation_with_op_args(aiconfig, "update_model", operation, operation_args) diff --git a/python/src/aiconfig/editor/server/server_utils.py b/python/src/aiconfig/editor/server/server_utils.py index 28dc313d3..8754b2c52 100644 --- a/python/src/aiconfig/editor/server/server_utils.py +++ b/python/src/aiconfig/editor/server/server_utils.py @@ -8,16 +8,17 @@ from enum import Enum from types import ModuleType from typing import Any, Callable, NewType, Optional, Type, TypeVar, cast -from aiconfig.registry import ModelParserRegistry -from aiconfig.schema import Prompt, PromptMetadata import lastmile_utils.lib.core.api as core_utils import result from aiconfig.Config import AIConfigRuntime +from aiconfig.registry import ModelParserRegistry from flask import Flask from pydantic import field_validator from result import Err, Ok, Result +from aiconfig.schema import Prompt, PromptMetadata + MethodName = NewType("MethodName", str) logging.getLogger("werkzeug").disabled = True