jev

n8n Nodes für Jev (TypeSafe System One): Ja/Nein-Fragen, Klassifizieren, Bewerten und Verzweigen mit kalibrierten Wahrscheinlichkeiten – direkt oder über einen LiteLLM-Proxy

Documentation

@marcmeese/n8n-nodes-jev

n8n Community Nodes für Jev von TypeSafe: Ja/Nein-Fragen, Klassifizieren und Bewerten mit kalibrierten Wahrscheinlichkeiten – und Items direkt danach verzweigen. Jev ist ein spezialisiertes Entscheidungsmodell; ein zusätzliches LLM ist nicht nötig.

Credential „Jev API“

Feld Beschreibung
Connection Direct (TypeSafe) oder LiteLLM Proxy
Base URL Nur direkt: Root-URL der API, Default https://api.typesafe.ai
Proxy URL Nur LiteLLM: Root-URL des Proxys, z. B. http://litellm:4000 (ohne /v1).
API Key TypeSafe-Key (direkt) bzw. LiteLLM-Virtual-Key (Proxy). Wird als Authorization: Bearer … gesendet.

Über LiteLLM (ab 1.104.2): Das Plugin ruft den nativen Decisions-Endpunkt POST <proxy>/v1/systemone auf, nicht mehr die /typesafe-Pass-through-Route. Jev muss dafür als Deployment in der model_list stehen; im Node wird der model_name gewählt (hier jev), nicht die TypeSafe-Version. Damit greifen Routing, Rate-Limits (rpm/tpm), Kosten und Budgets des Proxys.

model_list:
  - model_name: jev
    litellm_params:
      model: typesafe/jev-1.13.0
      api_key: os.environ/TYPESAFE_API_KEY
    model_info:
      mode: evaluation

Das Modell-Dropdown lädt GET <proxy>/v1/model/info und zeigt die Deployments mit mode: evaluation (gibt es keine, alle). Der Credential-Test ruft GET …/v1/models auf.

Nodes

Node Funktion
(Jev) Yes/No Eine Ja/Nein-Frage. Ergebnis: answer (yes/no/uncertain) und probability. Mit Branch Outputs gehen Items an die Ausgänge Yes / No / Uncertain.
(Jev) Classify Wählt eine Option aus deiner Liste (Name + optionale Beschreibung, 2–255). Ergebnis: choice, confidence, uncertain, probabilities. Mit Branch Outputs ein Ausgang pro Option plus Uncertain.
(Jev) Score Bewertet auf 2–10 geordneten Stufen. Ergebnis: score (kann zwischen Stufen liegen), level/levelLabel (nächste Stufe), confidence, probabilities, legend.
(Jev) Ask Multiple Mehrere Ja/Nein-, Choice- und Score-Fragen in einem Aufruf – per Formular oder als questions-JSON im API-Format. Ergebnis: answers unter den Frage-IDs.
(Jev) List Models Verfügbare Modelle und Aliase (über LiteLLM: Modelliste des Proxys)

Gemeinsame Parameter

  • State Source: Text, JSON oder das ganze Eingabe-Item – der Inhalt, den Jev bewertet.
  • Model: direkt aus /v1/models geladen, Default jev-latest. Für stabile Schwellen eine feste Version (z. B. jev-1.13.0) per Expression setzen. Über LiteLLM den model_name des Proxys wählen (z. B. jev); die Version legt dann die Proxy-Config fest.
  • Schwellen: Yes/No mit Yes From / No Up To (dazwischen unsicher), Classify mit Min Confidence. Startwerte konservativ wählen und mit eigenen Daten nachjustieren (Confidence).
  • Options → Output Field (Default jev): Das Ergebnis landet dort im Original-Item, zusammen mit model (Version, die geantwortet hat) und usage.
  • Options → Max Retries (Default 3): Wiederholungen bei 429/529, retry-after wird beachtet.
  • Continue On Fail wird unterstützt.

Als Tool für den AI Agent

Yes/No, Classify, Score und Ask Multiple lassen sich als Tool an einen AI Agent hängen (im Agent als „(Jev) Yes/No Tool“ usw.). Im Tool-Modus gibt es keine Verzweigung; der Agent bekommt das Ergebnis-JSON.

Fragen funktionieren auf Englisch am besten; andere Sprachen gehen, aber auf die Konfidenz achten.

Entwicklung

npm install
npm run build   # tsc + Icons
npm test        # node --test gegen dist/
npm run lint
JEV_API_KEY=… npm run test:live                                  # live gegen TypeSafe
JEV_API_KEY=<LiteLLM-Key> JEV_PROXY_URL=http://litellm:4000 npm run test:live

Veröffentlicht wird über .github/workflows/n8n-jev.yml, sobald die Version in package.json erhöht und auf main gepusht wird.

Discussion