67 lines
2.3 KiB
Rust
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,
|
|
}
|
|
}
|
|
}
|