diff --git a/network-poc/native-node/src/inference.rs b/network-poc/native-node/src/inference.rs index 0ce6810..932ebfa 100644 --- a/network-poc/native-node/src/inference.rs +++ b/network-poc/native-node/src/inference.rs @@ -109,7 +109,7 @@ impl LlmEngine { .map_err(|e| format!("Ollama JSON: {}", e))?; let text = body["response"].as_str().unwrap_or("").to_string(); - let total_duration_ns = body["total_duration"].as_u64().unwrap_or(0); + let _total_duration_ns = body["total_duration"].as_u64().unwrap_or(0); let eval_count = body["eval_count"].as_u64().unwrap_or(0) as usize; let eval_duration_ns = body["eval_duration"].as_u64().unwrap_or(1); @@ -129,23 +129,17 @@ impl LlmEngine { /// Siivoa markdown-koodiblokki-merkit ja selitystekstit fn strip_code_fences(text: &str) -> String { - let mut result = text.trim().to_string(); - - // Poista aloittava ```lang - if result.starts_with("```") { - if let Some(nl) = result.find('\n') { - result = result[nl + 1..].to_string(); + // Poistetaan kaikki ```-rivit ja kielitunnisteet (```python, ```rust jne.) + let lines: Vec<&str> = text.lines().collect(); + let filtered: Vec<&str> = lines.into_iter().filter(|line| { + let trimmed = line.trim(); + // Poista rivit jotka ovat pelkkiä ``` tai ```kielitunniste + if trimmed.starts_with("```") { + return false; } - } - - // Poista sulkeva ``` - let trimmed = result.trim_end(); - if trimmed.ends_with("```") { - let before = &trimmed[..trimmed.len() - 3]; - if before.is_empty() || before.ends_with('\n') { - result = before.trim_end().to_string(); - } - } + true + }).collect(); + let mut result = filtered.join("\n").trim().to_string(); // Poista selitysteksti lopusta (kaikki rivin "\nPlease note" jälkeen jne.) let lower = result.to_lowercase();