use crate::http::context::{AppContext, OpenApiResult, bad_request}; use crate::http::payloads::ModelPayload; use crate::io::fs; use crate::llm::chat; use poem_openapi::{param::Query, payload::Json}; pub async fn get_model_preference(ctx: &AppContext) -> OpenApiResult>> { let result = fs::get_model_preference(ctx.store.as_ref()).map_err(bad_request)?; Ok(Json(result)) } pub async fn set_model_preference( payload: Json, ctx: &AppContext, ) -> OpenApiResult> { fs::set_model_preference(payload.0.model, ctx.store.as_ref()).map_err(bad_request)?; Ok(Json(true)) } pub async fn get_ollama_models( base_url: Query>, ) -> OpenApiResult>> { let models = chat::get_ollama_models(base_url.0) .await .map_err(bad_request)?; Ok(Json(models)) }