Compare commits

..

No commits in common. "18a84ef4cbdfd06667c4066724beef8ea0d80aec" and "38f9eeac0f101717170c5cf302adc6976007debf" have entirely different histories.

2 changed files with 1 additions and 30 deletions

Binary file not shown.

View file

@ -35,7 +35,7 @@ pub fn invoke(_ctx: Context, inputs: Inputs) -> Result<Outputs, ModuleError> {
prompt: &prompt,
};
let result = crate::llm::chat_with_identity(&client, &params)
.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<String> {
}
}
/// 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