'openai' reads as the cloud company — an operator running self-hosted vLLM should be able to write what they mean. The new value speaks the identical OpenAI wire (a guard test asserts the emitted request stays byte-identical to api: openai, so the alias can never drift into a dialect) but yields vLLM-specific error hints (vllm serve, port 8000) instead of generic OpenAI prose. Manifest + docs name the value in DE and EN. Signed-off-by: flemming-it <sf@flemming.it>
3.8 KiB
text.translate
LLM-basierte Übersetzung zwischen Sprachen (Ollama, vLLM, jeder OpenAI-kompatible Server oder Anthropic). Sendet Quelltext an einen konfigurierten LLM-Endpunkt mit einem Übersetzungs-System-Prompt und liefert die Übersetzung plus audit-taugliche Modell-Herkunfts-Felder.
Capability
text.translate@0.1.0
Eingaben
| Name | Typ | Beschreibung |
|---|---|---|
text |
text | Quelltext. |
target_language |
text | Zielsprache in einfachem Englisch (z.B. German, French, ja-JP). |
source_language |
text | Optionaler Hinweis auf die Ausgangssprache. Leer = Modell erkennt selbst. |
endpoint |
text | Chat-Endpunkt passend zum gewählten api (Ollama /api/chat, OpenAI-kompatibel /v1/chat/completions — vLLM u. a., Anthropic /v1/messages). |
api |
text | Optionales Wire-Format: ollama (Default), vllm, openai, anthropic (vllm = OpenAI-Wire mit vLLM-spezifischen Hinweisen). |
model |
text | Modell-ID am Endpunkt (z.B. qwen2.5:14b). |
api_key |
text | Optionaler Bearer-Token für Cloud-Endpunkte. |
Ausgaben
| Name | Typ | Beschreibung |
|---|---|---|
translation |
text | Die Übersetzung. |
source_language |
text | Echo der Eingabe (oder erkannte Sprache bei Auto). |
target_language |
text | Echo der Eingabe. |
model_endpoint |
text | URL, gegen die übersetzt wurde. |
model_name |
text | Modell-ID wie an die LLM-API gesendet. |
model_digest |
text | SHA-256-Digest des bedienten Modells — nur bei Ollama, sonst leer. |
Die drei model_*-Ausgaben sind das Audit-Primitiv: jede
Übersetzung im Flow-Log lässt sich auch Monate später dem exakten
Modell-Hash zuordnen, der sie erzeugt hat.
Berechtigungen
permissions:
- "net: localhost"
- "net: 127.0.0.1"
- "net: api.openai.com"
- "net: api.anthropic.com"
Default-Policy erlaubt lokales Ollama und die zwei großen Hosted-Anbieter. Mit privatem LLM-Endpunkt: Hostname in die Operator-Policy-Ceiling aufnehmen; das Modul prüft seine Berechtigungen gegen diese Ceiling bei der Installation.
Für regulierte Umgebungen gebaut
Der Ollama-Endpunkt steht per Default auf einem lokalen Daemon
— Quelltext verlässt nie den Rechner. Cloud-Anbieter sind
Opt-in über die URL + Operator-Policy. Das model_digest-Feld
ist der kryptographische Vertrauensanker für die
Übersetzungs-Herkunft: zwei Ausgaben mit gleichem Digest
stammen vom selben Modell-Gewicht, Punkt.
Grenzen in v0.1.0
- Single-Shot. Lange Dokumente mit Chunking + Überlapp- Stitching folgt in v0.2.0.
- Keine Glossar-/Terminologie-Listen. Aktuell verlässt sich das
Modul auf das Allgemeinwissen des Modells; ein
glossary- Input ist auf der v0.2.0-Roadmap.
Beispiel-Flow
name: translate-to-german
inputs:
source: text
steps:
- id: translate
use: text.translate@^0
with:
text: $inputs.source
target_language: "German"
endpoint: "http://localhost:11434/api/chat"
model: "qwen2.5:14b"
outputs:
translation: $translate.translation
audit_model: $translate.model_digest
Build
cargo build --release --target wasm32-wasip2
# Ausgabe: target/wasm32-wasip2/release/text_translate.wasm