models

jev-latest

Markdown · JSON

jev-latest

Entscheidungsmodell von TypeSafe: Es schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON durch Optionswahl, Skalenbewertung oder «Ja/Nein» mit Wahrscheinlichkeiten. Es eignet sich für Routing, die Sortierung von Anfragen, Moderation und Scoring; alle Fragen einer Anfrage werden parallel bewertet.

Über das Modell

Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.

Jev ist das Flaggschiffmodell von TypeSafe und das erste Modell der neuen Klasse System One. Es schreibt keinen Text, sondern trifft schnell Entscheidungen, die ein Programm direkt nutzen kann: Sie übermitteln einen Zustand (state) – Text oder JSON – und einen Satz von Fragen und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten.

Sprachmodelle schreiben Wörter für Menschen; Jev ist laut TypeSafe näher an Code: Die Antwort hat sofort die vom Code benötigte Form, kommt schnell und enthält keinen Wert ausserhalb der vorgegebenen Optionen. Das Modell soll bei wiederholten Anfragen stabile Antworten liefern.

Wie sich System One von einem Sprachmodell unterscheidet

  • Keine Generierung. Jev schreibt weder Nutzerantworten noch Code und erklärt keinen Denkverlauf. Sie geben die möglichen Antworten durch einen von drei Fragetypen vor.
  • Auf kalibrierte Entscheidungen trainiert. TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und spiegeln Unsicherheit wider. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten etwa 80% korrekt sein. Kalibrierung ist eine Eigenschaft einer grossen Stichprobe und garantiert nicht die Richtigkeit einer einzelnen Antwort.
  • Ein anderes Trainingsziel. Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF); laut TypeSafe fördert dies Gefälligkeit und selbstsicher klingende Fehler. Einer der Mitautoren von RLHF, Diogo Almeida, ist Mitgründer von TypeSafe.

Der Name verweist auf «System 1» aus Daniel Kahnemans Buch «Schnelles Denken, langsames Denken»: schnelle intuitive Urteile gegenüber langsamem, überlegtem Denken von «System 2». Jev wurde für schnelle, eng begrenzte Urteile entwickelt.

Drei Fragetypen

Eine Frage ist ein einzelnes Urteil über den Zustand; die Antwort ein Wert, den Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.

  1. Choice – Optionswahl. Zuständige Abteilung für eine Anfrage, Produktkategorie oder Sprache eines Codeabschnitts. Die Optionen sind ein Wörterbuch «Option → Beschreibung», mit bis zu 255 Einträgen. Die Antwort enthält den gewählten choice, probabilities für sämtliche Optionen mit einer Summe von 1 und confidence. Falls die Liste nicht alle Fälle abdeckt, ergänzen Sie «andere» oder «keine der genannten».
  2. Score – Skalenbewertung. Eine Position auf einer geordneten Skala, die Sie beschreiben: Fehlerschwere, Kundenverärgerung oder Fähigkeitsniveau. Die Skala hat 2 bis 10 Stufen, von niedrig bis hoch; das Modell bewertet jede Stufe separat, ohne ihre Nummer und Nachbarn zu sehen. Die Antwort enthält score, die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, sodass der Wert zwischen Stufen liegen kann, legend mit Stufenbeschreibungen, probabilities und confidence.
  3. Noul – Ja oder Nein. Ob eine Aussage zutrifft. noul ist die «Ja»-Wahrscheinlichkeit von 0 bis 1: nahe 1 ein sicheres «Ja», nahe 0 ein sicheres «Nein», nahe 0,5 ist das Modell unentschieden. Es gibt kein separates confidence: Eine Zahl beschreibt die Antwort vollständig. Optionales criteria präzisiert, was als «Ja» und was als «Nein» gilt.

So wählen Sie: Bekannte ungeordnete Optionen – choice; Stufen eines Spektrums – score; reines «Ja/Nein», bei dem die Wahrscheinlichkeit zählt – noul. Noul 0,5 bedeutet gleiche Chancen für «Ja» und «Nein», kein «mittleres Niveau»: Einen Grad misst score. Wenn zwei Typen passen, wählen Sie den, mit dem Code sofort handeln kann: choice für Verzweigungen, score für einen Schwellenwert, noul für if.

Typen lassen sich in einer Anfrage mischen. Die Antwort ist stets auf Ihre Optionen begrenzt und unabhängig von anderen Fragen: Fragen können hinzugefügt oder entfernt werden, ohne die übrigen Antworten zu ändern.

Zustand

Der Zustand ist das, was das Modell bewertet: eine Kundennachricht, ein Dokumentabschnitt, ein Datenbankeintrag oder Ihr Anwendungszustand.

  • Zeichenfolge – bei einem einzelnen Text: Nachricht, Artikel oder Auszug.
  • Objekt – benannte Felder, zusammenhängende Datensätze oder Anwendungszustand. TypeSafe empfiehlt Objekte für die meisten Anfragen: Jeder Teil hat einen verständlichen Namen.
  • Array – eine Folge von Nachrichten oder Datensätzen.

Bereiten Sie ihn wie Materialien für Fachpersonen vor: Korrespondenz, Bestellung und Rückgaberegeln gehören zusammen, wenn die Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage nur einen Zustandsteil, nennen Sie den Pfad dazu in Backticks, etwa ticket.messages[0].text.

Fragen formulieren

  • Ein schnelles Urteil pro Frage. Eine gute Frage kann eine kundige Person mit dem nötigen Kontext in einer Sekunde beantworten: «Ist die Nachricht dringend?». «Analysiere die Nachricht und entscheide, was zu tun ist» benötigt bereits langsames Denken und muss in einfache Fragen zerlegt werden.
  • Die ganze Frage gehört in instructions. Der Fragenschlüssel, etwa refund_requested, dient nur Ihrem Code und wird dem Modell nicht übermittelt.
  • Alle Fragen zu einem Zustand in einer Anfrage. Das Modell bewertet sie parallel: Laut TypeSafe erhöhen zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage «für alle Fälle» ist fast kostenlos; der Code entscheidet selbst, welche Antworten er benötigt.
  • Komplexe Urteile aufteilen. Statt «Bewerte eine Startup-Bewerbung» fragen Sie separat nach Marktgrösse, technischer Machbarkeit und Unterschieden zu Konkurrenten; das Endergebnis berechnet der Code mit Gewichtungen. Bei geänderten Prioritäten ändern Sie die Gewichte und schreiben nicht die Frage um.
  • Abhängige Fragen in einer zweiten Anfrage. Antworten derselben Anfrage sind füreinander kein Kontext. Eine zweite Anfrage ist nur erforderlich, wenn sie ohne die erste Antwort nicht zusammengestellt werden kann: Daten müssen nachgeladen oder Optionen der nächsten Frage gewählt werden.
  • Lange Fragen als Objekt. instructions und criteria sind gewöhnlich Zeichenfolgen, können aber Objekte oder Arrays sein: Die Frage steht in einem Feld, Daten in anderen. So lässt sich ein Lebenslauf mit einer Frage gegen Datenbankeinträge prüfen.

Sicherheit

Bei choice und score zeigt confidence von 0 bis 1, wie stark sich die Wahrscheinlichkeit auf eine Antwort konzentriert: 1 vollständig auf eine Option, 0 gleichmässig auf alle. Bei score verringert eine benachbarte Stufe die Sicherheit weniger als eine weit entfernte. Bei noul ist die Sicherheit der Wert selbst: Je weiter von 0,5 entfernt, desto eindeutiger die Antwort.

TypeSafe empfiehlt drei Bereiche:

  1. Hohe Sicherheit – automatisch handeln.
  2. Mittlere – vorsichtig handeln, beispielsweise den Nutzer um Bestätigung bitten.
  3. Niedrige – den Fall einem Menschen übergeben, die Anfrage präzisieren oder einen Ersatzweg nutzen, etwa ein leistungsfähigeres Modell mit Denkprozessen.

Je teurer ein Fehler, desto strenger der Schwellenwert: Für irreversible Aktionen höher als für Lesevorgänge. Die Antwort zeigt die Auswahl; die Sicherheit zeigt, ob gehandelt werden sollte. Stimmen Sie Schwellenwerte auf eigene Daten ab, indem Sie Sicherheit und Genauigkeit vergleichen.

Ein System um Jev herum aufbauen

Jev ist nicht für Agenten gedacht, die ihren nächsten Schritt selbst wählen und in jeder Runde vom Weg abkommen können, sondern für Programme, deren Prozess vom Code gesteuert wird, während das Modell eng begrenzte Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:

  1. Was sich mit Code erledigen lässt, wird mit Code erledigt – zuverlässig und günstig.
  2. In den Zustand gehört nur, was die aktuellen Fragen benötigen; aktuelle Fakten kommen aus der eigenen Wissensbasis und nicht aus dem Modellgedächtnis.
  3. Struktur im Zustand: verschachteltes JSON; in der Frage der Pfad zum benötigten Feld in Backticks, wenn dies Mehrdeutigkeit verringert.
  4. Möglichst eng begrenzte, konkrete Fragen – laut TypeSafe vielleicht die wichtigste Regel: Eine breite Frage verbirgt mehrere Urteile hinter einer Antwort.
  5. Struktur in Fragen: Die Frage selbst bleibt kurz; Erklärungen, Beispiele und Werte aus Ihrer Datenbank stehen in benachbarten Feldern des Objekts instructions oder criteria statt in einer langen Zeichenfolge.
  6. Viele unabhängige Fragen zum selben Zustand in einer Anfrage – mehr Nutzen pro Dollar.
  7. Der Code verbindet Antworten: durch Regeln, eine gewichtete Summe oder als Merkmale für ein klassisches Modell des maschinellen Lernens.
  8. Verzweigung nach Sicherheit: Unsichere Fälle gehen an einen Menschen oder ein Modell mit Denkprozessen.

Jev ist weder Chat noch Codevervollständigungsmodell und kann bei einem Programmieragenten kein Sprachmodell ersetzen. Ein Agent kann jedoch für Sie Code schreiben, der Jev dort aufruft, wo eine schnelle, kalibrierte Antwort benötigt wird.

Einsatzgebiete

  • Hintergrundautomatisierung – Entscheidungen, die eine Million Mal ohne anwesenden Menschen ausgeführt werden.
  • Echtzeit – laut TypeSafe werden die meisten Anfragen in etwa 100 ms ausgeführt: ausreichend für laufende Verarbeitung und Oberflächen.
  • Grosse Datenmengen – Suche in riesigen Korpora, Kennzeichnung von Agentenprotokollen und Merkmale für Prognosen.
  • Prüfung anderer Modelle – Anfragen, Extraktionen, Denkprozesse und Werkzeugaufrufe: Umgehung von Grenzen, Zitierfehler und erfundene Inhalte.
  • Suche und Rangfolge – Relevanz eines Paars «Anfrage – Kandidat», erneutes Ranking und Kontextauswahl.
  • Verzweigung nach Absicht – Was möchte der Nutzer und welcher Bearbeiter wird benötigt: einfache Logik, ein Fachmodell oder ein Mensch; Thema, Schwierigkeit und Risiko bestimmen, welches Sprachmodell die Anfrage erhält.
  • Schutzprüfungen – Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstösse und Offenlegung persönlicher Daten.
  • Support – Thema und Absicht der Anfrage, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückgabewunsch und Warteschlange.
  • Moderation – nach Plattformregeln: toxische Inhalte, Belästigung, Spam, Betrug, gefährliche Ratschläge und persönliche Daten; je nach Schwere und Sicherheit durchlassen, warnen, prüfen oder sperren.
  • Branchen – Versicherungsfälle, Finanzermittlungen und KYC, Verträge und Werbung, Produktkarten, Personalauswahl, Leads, Spiele, Risiken, Nachfrageprognosen, Wissensgraphen, wissenschaftliche Übersichten und semantische Codeprüfungen in CI.

Eigenschaften

  • jev-latest ist der Alias der neuesten stabilen Version, derzeit Jev 1.13; die antwortende Version steht im Feld model, etwa jev-1.13.0. Mit einer neuen Version wechselt der Alias dorthin; Antworten können sich ohne Ihre Änderungen verändern. Überwachen Sie dieses Feld, wenn Schwellenwerte auf eine Version abgestimmt sind.
  • Kontext – 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; Zustand mit der längsten Frage bis zu 32K. Das Modell liest den Zustand einmal und prüft sämtliche Fragen parallel dagegen.
  • Eingabe – nur Text: Zeichenfolge, JSON-Objekt oder Textarray. Bilder, Audio und Video werden noch nicht unterstützt; wandeln Sie sie vorab in Text um.
  • Sprache – Die Haupttrainingssprache ist Englisch; dort ist die Genauigkeit derzeit am höchsten. Weitere Sprachen, darunter Chinesisch, Japanisch und Koreanisch, nimmt das Modell an, doch mit geringerer Genauigkeit. Prüfen Sie es mit eigenen Daten.
  • Preise und Abrechnung in Ailoot API — die Konditionen hängen von der gewählten Methode ab und sind auf deren Karte angegeben.
  • Anpassung – Jev wird nicht mit Kundendaten nachtrainiert: Eigene Materialien gehören in state, Fachregeln in instructions und criteria.
  • Daten – Laut TypeSafe wird Jev nicht mit Kundenanfragen und -antworten trainiert.

Bekannte Schwächen von Jev 1.13

TypeSafe nennt die Schwächen der aktuellen Version offen und verspricht, vieles in späteren Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:

  1. Wörtliches Lesen. Es beantwortet die geschriebene Frage, nicht die gemeinte: Einschränkungen, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in criteria; teilen Sie eine unvermeidbare Interpretation in zwei wörtliche Fragen auf.
  2. Kein Taschenrechner. Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig; Fehler wachsen mit dem Umfang. Zählen Sie im Code und stellen Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Farbnamen. score eignet sich für einen Schwellenwert, nicht für eine genaue Zahl zwischen Stufen.
  3. Daten und Zeit. Welches Datum früher liegt, wie viel Zeit dazwischen liegt oder ob ein Datum in einen Zeitraum fällt, ist unzuverlässig, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile über choice mit einer Option «nicht angegeben» und vergleichen Sie im Code.
  4. Indirektheit. Doppelte Verneinungen und Fragen zu Eigenschaften einer Eigenschaft verringern die Genauigkeit. Schreiben Sie direkt und nennen Sie Zustandsteile beim Namen.
  5. Überflüssiger Zustand. Fremder Text verringert die Genauigkeit. Filtern Sie im Code; wenn das nicht möglich ist, sortieren Sie Irrelevantes durch noul-Fragen aus.
  6. Feindseliger Text. Das Modell erwartet standardmässig keine Täuschungen im Zustand: Eine eingeschleuste Anweisung oder Text, der seine eigene Klassifizierung bestreitet, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Start.
  7. Widersprüche. Wenn instructions und criteria Unterschiedliches verlangen, etwa bei noul «Ja» als «Nein» beschreiben, sinkt die Genauigkeit. Kriterien setzen die Frage fort.
  8. Optionsreihenfolge. Manchmal bevorzugt das Modell die erste choice-Option. Ordnen Sie Optionen um und prüfen Sie, ob die Antwort gleich bleibt.
  9. Generierung. Jev wurde nicht zum Textschreiben trainiert. Für Datenextraktion finden Sie Kandidaten mit einem regulären Ausdruck oder einem generativen Modell; Jev wählt über choice den passenden.
Ailoot · System One POST /v1/systemone jev-latest

jev-latest

TypeSafe /jev-latest

Einstieg

Entscheidungsmodell von TypeSafe: Es schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON durch Optionswahl, Skalenbewertung oder «Ja/Nein» mit Wahrscheinlichkeiten. Es eignet sich für Routing, die Sortierung von Anfragen, Moderation und Scoring; alle Fragen einer Anfrage werden parallel bewertet.

Zulässige Eingaben
Text
Ergebnisse
structured

In Ailoot verfügbar · Eingaben und Methoden

Ailoot · System One POST /v1/systemone
Eingabe
text
Ausgabe
structured
Kontext
64'000 tokens
Ausgabeformat
json
FeldTypAnforderungWerte und LimitsStandard
FeldmodelTypstringAnforderungErforderlichWerte und Limits
jev-latest
Standard—
FeldstateTypstring|object|arrayAnforderungErforderlichWerte und LimitsStandard—
FeldquestionsTypobjectAnforderungErforderlichWerte und Limits
Mindestanzahl Objektfelder: 1
Standard—
Feldquestions.<id>.typeTypstringAnforderungErforderlichWerte und Limits
noul, choice, score
Standard—
Feldquestions.<id>.instructionsTypstring|object|array|nullAnforderungOptionalWerte und LimitsStandard—
Feldquestions.<id>.criteriaTypobject|array|nullAnforderungOptionalWerte und Limits
Bedingungen: noul: optionale, nullable Beschreibungen für true/false; choice: Kriterienobjekt; score: nicht leeres Kriterienarray
Standard—
FeldstreamTypboolean|nullAnforderungOptionalWerte und Limits
false, null
Standard—
Kombinationen von Eingabematerialien

noul · Erforderlich: state, questions.<id>.type=noul

choice · Erforderlich: state, questions.<id>.type=choice, criteria object

score · Erforderlich: state, questions.<id>.type=score, nonemptycriteriaarray

Methodenparameter und Lebenszyklus
ParameterVertrag
Parametermaterial_typesVertragtext
ParameterrequiredVertragmodel, state, questions
Parameteroptional_controlsVertragnull
Parametercontent_typeVertragapplication/json

Lebenszyklus: exact retained published method

Methodenstrukturen und IDs sind exakt; die Fähigkeiten des Anbieters sind von der Zulassung einer Anfrage zu unterscheiden.

Tarife

Ailoot-Methodentarife

Ailoot System OnePOST /v1/systemone
Eingabe
≈$ 0.000084 / 1K
Ausgabe
$ 0.00 / 1K

Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschliessenden Verbrauchsdatensatzes. So funktionieren Reservierung und Abrechnung →

Beispielanfragen

Ailoot · System One

Klassifikationsbeispiel
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "jev-latest", "state": "", "questions": {"is_urgent": {"type": "noul", "instructions": "Does the supplied customer message express urgency?"}}}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["state"]=text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT

Ergebnisse abrufen und speichern

Ailoot · System One

json

Alle fertiggestellten Ergebnisse aufbewahren

Bewahren Sie jede vollständig zurückgegebene Antwort, Datei und jeden Inhaltsteil auf.

Bewahren Sie jede Antwort zusammen mit der übergebenen Frage-ID, Wahrscheinlichkeit und Legende auf; die Konfidenzformel mit n setzt n>1 voraus, ohne daraus eine API-Regel zur Mindestanzahl von Auswahlmöglichkeiten abzuleiten.

Antwortfelder
FeldTyp
Feldanswers.<id>.typeTypstring
Feldanswers.<id>.noulTypnumber
Feldanswers.<id>.choiceTypstring
Feldanswers.<id>.scoreTypnumber
Feldanswers.<id>.confidenceTypnumber
Feldanswers.<id>.probabilitiesTypobject
Feldanswers.<id>.legendTypobject
FeldusageTypobject
Fehler und nächste Schritte
AntwortBedingungNächster Schritt
Antwort400 · invalid_request_errorBedingungPflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültigNächster SchrittDie angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.

Aliasnamen

Modellaliasnamen

Ailoot jev-latest

Aliasnamen für Methodenpfade

Verwenden Sie die oben angezeigten Methodenpfade.

Zugehörige Aufrufer-IDs

jev-latest

FAQ · jev-latest
Welche Eingaben und Ergebnisse sind verfügbar?

POST /v1/systemone · jev-latest: text → structured

Welche Felder verwendet die Anfrage?

POST /v1/systemone · jev-latest: model, state, questions, stream

Welche Grenzen gelten?

POST /v1/systemone · jev-latest: ctx: 64000

Weitere Details

Verbinden Sie Ailoot mit Claude Code, OpenCode, Hermes oder Ihrer eigenen Anwendung.

Das Unternehmen und sein Projektportfolio

Das Unternehmen und sein Projektportfolio: Millionen von Kunden; monatliche Umsätze in Milliardenhöhe.

Tokens mit Rabatt kaufen.

Aborabatt für regelmäßige Arbeit. Aktionscodes bieten bis 50% beim Tokenkauf.

Abo
Wählen Sie einen Tarif mit Rabatt für Ihre regelmäßigen Anfragen.
Aktionscode bis 50%
Geben Sie den Code beim Kauf ein. Der Preis wird nach den gültigen Aktionsbedingungen berechnet.
Ausgaben in der Historie
Modell, Tokens und Betrag werden für jede Anfrage gespeichert.

Abo wählen · Modellpreise ansehen

Verbinden Sie die API mit dem Produkt, das Sie verkaufen.

SaaS, Anwendungen und Bots nach dem offiziellen Angebot und Lizenzvertrag von Ailoot. Fordern Sie für den Weiterverkauf eine Reseller-Lizenz an.

Kommerzielle Anwendung
Integrieren Sie Text-, Bild-, Video- und Audioerzeugung in kostenpflichtige Funktionen Ihres Dienstes.
Reseller-Lizenz
Senden Sie Projektbeschreibung und Zugangsmodell. Fordern Sie schriftliche Nutzungs- und Weiterverkaufsbedingungen an.
Dokumente auf der Website
Offizielles Angebot, Lizenzvertrag und Datenschutzerklärung sind vor der Verbindung zugänglich.

Reseller-Lizenz anfordern · Offizielles Angebot und Lizenzvertrag