use crate::{api, core}; impl From for core::llm::completions::CompletionRequest { fn from(m: api::types::ApiCompletionRequest) -> Self { Self { model: m.model, prompt: m.prompt, options: core::llm::completions::CompletionOptions { temperature: m.options.temperature, keep_alive: m.options.keep_alive, num_ctx: m.options.num_ctx, top_p: m.options.top_p, top_k: m.options.top_k, seed: m.options.seed, num_predict: m.options.num_predict, stop: m.options.stop, stream: m.options.stream, }, } } } impl From for core::llm::chat::ChatCompletionRequest { fn from(m: api::types::ApiChatRequest) -> Self { Self { model: m.model, message: m.message.into(), options: core::llm::chat::ChatCompletionOptions { temperature: m.base.temperature, keep_alive: m.base.keep_alive, num_ctx: m.base.num_ctx, top_p: m.base.top_p, top_k: m.base.top_k, seed: m.base.seed, num_predict: m.base.num_predict, stop: m.base.stop, stream: m.base.stream, context_depth: m.base.context_depth.unwrap_or(10), }, conversation_id: m.conversation_id, parent_id: m.parent_id, } } } impl From for core::llm::chat::Message { fn from(m: api::types::ApiMessage) -> Self { Self { role: match m.role { api::types::ApiRole::System => core::llm::ChatRole::System, api::types::ApiRole::User => core::llm::ChatRole::User, api::types::ApiRole::Assistant => core::llm::ChatRole::Assistant, }, content: m.content, } } } impl From for core::auth::api_key::KeyRole { fn from(role: api::types::ApiKeyScope) -> Self { match role { api::types::ApiKeyScope::User => core::auth::api_key::KeyRole::User, api::types::ApiKeyScope::Admin => core::auth::api_key::KeyRole::Admin, } } }