Files
chat-api/src/mappers/api_to_core.rs
T
LucasDLTG 77bd729d95
CI / Rust CI (push) Successful in 5m19s
fix: streaming
2026-06-05 18:16:48 +02:00

67 lines
2.3 KiB
Rust

use crate::{api, core};
impl From<api::types::ApiCompletionRequest> 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<api::types::ApiChatRequest> 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<api::types::ApiMessage> 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<api::types::ApiKeyScope> 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,
}
}
}