UI:n system prompt ja sampling-parametrit välittyvät inferenssiin asti
Frontend lähettää agentin asetukset (system_prompt, temperature, top_k, max_tokens, repeat_penalty, stop) API:lle. Hub välittää ne solmulle. Native-node ja Wasm-coder käyttävät välitettyjä arvoja hardkoodattujen sijaan.
This commit is contained in:
@@ -1141,6 +1141,16 @@ struct ChatCompletionRequest {
|
||||
task_id: String,
|
||||
#[serde(default)]
|
||||
max_tokens: Option<u64>,
|
||||
#[serde(default)]
|
||||
system_prompt: Option<String>,
|
||||
#[serde(default)]
|
||||
temperature: Option<f64>,
|
||||
#[serde(default)]
|
||||
top_k: Option<u64>,
|
||||
#[serde(default)]
|
||||
repeat_penalty: Option<f64>,
|
||||
#[serde(default)]
|
||||
stop: Option<Vec<String>>,
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize)]
|
||||
@@ -1308,9 +1318,13 @@ async fn api_chat_completions(
|
||||
"model": payload.model,
|
||||
"task_id": payload.task_id,
|
||||
});
|
||||
if let Some(mt) = payload.max_tokens {
|
||||
msg.as_object_mut().unwrap().insert("max_tokens".to_string(), serde_json::json!(mt));
|
||||
}
|
||||
let obj = msg.as_object_mut().unwrap();
|
||||
if let Some(mt) = payload.max_tokens { obj.insert("max_tokens".to_string(), serde_json::json!(mt)); }
|
||||
if let Some(ref sp) = payload.system_prompt { obj.insert("system_prompt".to_string(), serde_json::json!(sp)); }
|
||||
if let Some(t) = payload.temperature { obj.insert("temperature".to_string(), serde_json::json!(t)); }
|
||||
if let Some(k) = payload.top_k { obj.insert("top_k".to_string(), serde_json::json!(k)); }
|
||||
if let Some(rp) = payload.repeat_penalty { obj.insert("repeat_penalty".to_string(), serde_json::json!(rp)); }
|
||||
if let Some(ref s) = payload.stop { obj.insert("stop".to_string(), serde_json::json!(s)); }
|
||||
|
||||
// Oneshot-kanava: solmu palauttaa tuloksen suoraan tälle pyynnölle
|
||||
let (resp_tx, resp_rx) = tokio::sync::oneshot::channel::<serde_json::Value>();
|
||||
|
||||
Reference in New Issue
Block a user