studio-translate-ollama/MODULE.de.md
flemming-it 884e275b0e feat: studio.translate.ollama v0.1.0 — Ollama-backed translate hook
First plugin to exercise the Studio-plugin translate hook
end-to-end. Routes through an Ollama-shaped /api/chat
endpoint configured via OLLAMA_ENDPOINT (default
http://localhost:11434/api/chat).

System prompt constrains the model to ONLY the translation —
no commentary, no markdown frames — so the translate hook
contract (plain string in, plain string out) stays honest.

Declared permissions: net: localhost + net: 127.0.0.1 +
net: ollama. Operator policy extends the ceiling for
remote / cloud LLM endpoints.

v0.1 limits: no glossary, no batching, no caching. Same SDK
v0.1 single-world contract — declares Declined stubs for the
theme and output-view hooks.

Built artefact: ~108 KiB stripped wasm. Uploaded to
releases.fai.flemming.ai (sha256 0101ed6e…) and reachable via
`fai install studio.translate.ollama`.

Signed-off-by: flemming-it <sf@flemming.it>
2026-05-25 23:02:44 +02:00

2.2 KiB

studio.translate.ollama

Translate-Hook-Plugin für F∆I Studio. Routet translate- Aufrufe durch einen konfigurierten Ollama-/api/chat-Endpunkt — so wird Server-gelieferter englischer Text (MCP-Tool- Beschreibungen, n8n-Endpunkt-Namen, [EN]-gebadgete Strings) in die aktive Studio-Sprache übersetzt, just-in-time.

Capability

  • studio.translate.ollama@0.1.0

Implementierter Hook

  • translate(text, from_locale, to_locale) -> string

Die anderen beiden Studio-Plugin-Hooks (theme, output-view) liefern PluginError::Declined — dieses Plugin übersetzt nur.

Konfiguration

Liest zwei Umgebungsvariablen, die der Operator dem Plugin über die env:-Berechtigung verfügbar macht:

Variable Default
OLLAMA_ENDPOINT http://localhost:11434/api/chat
OLLAMA_MODEL qwen2.5:14b

Für andere Endpunkte (z.B. remote Inferenz-Node): OLLAMA_ENDPOINT vor fai serve setzen und den Host in den net:-Berechtigungen unten ergänzen.

Berechtigungen

permissions:
  - "net: localhost"
  - "net: 127.0.0.1"
  - "net: ollama"

Operator:innen mit nicht-Loopback-Endpunkt erweitern ihre Operator-Policy-Ceiling um den Upstream-Host.

Wie der System-Prompt arbeitet

Das Plugin sendet zwei Nachrichten an das Modell: einen festen System-Prompt, der die Ausgabe auf NUR die Übersetzung einschränkt (keine Anführungszeichen, kein Kommentar, keine Erklärung), und eine User-Message mit dem Quelltext. Der Sprach-Hinweis steht im System-Prompt — das Modell behandelt ihn als Anweisung, nicht als zu übersetzenden Inhalt.

So bleibt der Translate-Hook-Vertrag ehrlich: der Caller erwartet einen reinen String zurück, keine markdown-umrahmte LLM-Antwort.

Grenzen in v0.1.0

  • Kein Glossar / keine Terminologie-Liste — das Modell stützt sich auf sein Allgemeinwissen.
  • Kein Batching. Jeder Aufruf ist ein HTTP-Request.
  • Kein Caching. Studios Plugin-Host könnte in einer späteren Iteration einen pro-Aufruf-Cache ergänzen.

Build

cargo build --release --target wasm32-wasip2
# Ausgabe: target/wasm32-wasip2/release/studio_translate_ollama.wasm