diff --git a/module.wasm b/module.wasm index a531ccd..51fc8b7 100644 Binary files a/module.wasm and b/module.wasm differ diff --git a/src/lib.rs b/src/lib.rs index 54d729d..c13d8f1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -35,7 +35,7 @@ pub fn invoke(_ctx: Context, inputs: Inputs) -> Result { prompt: &prompt, }; let result = crate::llm::chat_with_identity(&client, ¶ms) - .map_err(|e| llm_error_to_module_error(e, &endpoint, &model))?; + .map_err(|e| ModuleError::internal(e.to_string()))?; Ok(Outputs::new() .with_text("response", result.response) @@ -51,35 +51,6 @@ fn payload_text(p: &Payload) -> Option { } } -/// Turn a transport/protocol error into a message that names the -/// likely cause and the fix, instead of a raw `ConnectionRefused`. -/// The endpoint is Ollama-shaped by default, so a connect failure -/// almost always means Ollama isn't running or the model isn't -/// pulled. -fn llm_error_to_module_error(e: crate::llm::LlmError, endpoint: &str, model: &str) -> ModuleError { - use crate::llm::LlmError; - match e { - LlmError::Http(detail) => ModuleError::internal(format!( - "LLM endpoint {endpoint} not reachable ({detail}). Is Ollama running? \ - Start it with `ollama serve`, then pull the model with `ollama pull {model}`. \ - If the LLM runs elsewhere, set the `endpoint` input to its /api URL." - )), - LlmError::Status(404) => ModuleError::internal(format!( - "LLM endpoint {endpoint} returned 404 for model '{model}' — the model is \ - likely not pulled. Run `ollama pull {model}` (or check the model name)." - )), - LlmError::Status(code) => ModuleError::internal(format!( - "LLM endpoint {endpoint} returned HTTP {code} for model '{model}'." - )), - LlmError::Decode(detail) => ModuleError::internal(format!( - "LLM response from {endpoint} was not valid Ollama JSON: {detail}" - )), - LlmError::MissingInput(name) => ModuleError::invalid_input(format!( - "missing required input '{name}'" - )), - } -} - #[cfg(target_arch = "wasm32")] fn make_client() -> WakiClient { WakiClient