From 6a362d58a952c2de0d3097b03b212388a6bc35e4 Mon Sep 17 00:00:00 2001 From: tanaka takashi Date: Sat, 27 Jun 2026 17:00:42 +0900 Subject: 一般設定の追加(UI/Ollama設定) settings.jsonに設定を保存 UIから言語設定対応 Ollama設定でシステムプロンプト, temperature, コンテキスト長などのパラメータを設定可能 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ollama_web/routes/settings_route.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/ollama_web/routes/settings_route.py (limited to 'src/ollama_web/routes/settings_route.py') diff --git a/src/ollama_web/routes/settings_route.py b/src/ollama_web/routes/settings_route.py new file mode 100644 index 0000000..560f8d9 --- /dev/null +++ b/src/ollama_web/routes/settings_route.py @@ -0,0 +1,30 @@ +"""Application settings API endpoints.""" + +from __future__ import annotations + +from starlette.requests import Request +from starlette.responses import JSONResponse + +from ..settings_store import ( + SettingsValidationError, + load_app_settings, + save_app_settings, +) + + +async def get_settings(request: Request) -> JSONResponse: + """GET /api/settings: return effective persisted application settings.""" + runtime = request.app.state.settings + return JSONResponse(load_app_settings(runtime.data_dir, runtime.language)) + + +async def put_settings(request: Request) -> JSONResponse: + """PUT /api/settings: validate and persist application settings.""" + try: + body = await request.json() + cleaned = save_app_settings(request.app.state.settings.data_dir, body) + except SettingsValidationError as exc: + return JSONResponse({"error": str(exc)}, status_code=400) + except Exception: # noqa: BLE001 + return JSONResponse({"error": "Invalid JSON body"}, status_code=400) + return JSONResponse(cleaned) -- cgit v1.2.3