Refactoring the structure a bit

This commit is contained in:
Dave
2026-02-16 16:24:21 +00:00
parent a2188e2c7f
commit 5923165fcf
21 changed files with 522 additions and 372 deletions

27
server/src/http/model.rs Normal file
View File

@@ -0,0 +1,27 @@
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<Json<Option<String>>> {
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<ModelPayload>,
ctx: &AppContext,
) -> OpenApiResult<Json<bool>> {
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<Option<String>>,
) -> OpenApiResult<Json<Vec<String>>> {
let models = chat::get_ollama_models(base_url.0)
.await
.map_err(bad_request)?;
Ok(Json(models))
}