UtteraUttera

Verifizierbarer Bericht

Nutzen Sie dies, wenn Sie eine Besprechung, einen Anruf oder eine Aussage in einen Bericht verwandeln müssen, den ein Dritter überprüfen kann. Ausgabe: Zusammenfassung, Transkript, Beweisgraph und signiertes PDF. API: POST /v1/summarize?mode=intelligence&report=pdf · Mindestplan: Professional (Developer während der Aktion).
Evidenzgraph
9 Knoten · 8 verifiziert
geäußert · claim · S0
La Espiga bestellt 500 kg starkes Weizenmehl.
«Fünfhundert Kilo, wie immer.» [8.9–11.0] verifiziert
bedingt · commitment · S1
Sie liefert die Bestellung am Donnerstagmorgen.
Bedingung: wenn La Espiga die Bestellung heute bestätigt
«Wenn du die Bestellung heute bestätigst, liefere ich sie am Donnerstagmorgen.» [27.1–31.0] verifiziert
strittig · claim · S0
Die Lieferung am Dienstag war vereinbart.
«wir hatten vereinbart, dass ihr am Dienstag liefert, oder?» [16.2–19.5] verifiziert
… und 6 weitere Knoten
Ausschnitt eines verifizierbaren Berichts: jede Aussage ist an ihr Zitat, ihren Sprecher und ihre Minute verankert, mit ihrem Status. Beispielbericht ansehen (signiertes PDF).

Eine KI-generierte Zusammenfassung verlangt etwas Unangenehmes von Ihnen: ihr zu vertrauen. Sie wissen nicht, ob dieser Satz in der Besprechung wirklich gefallen ist, wer ihn gesagt hat oder wann. Der verifizierbare Bericht von Uttera ändert das: statt eines Textes, den man glauben muss, erzeugt sie einen Bericht, der sich Satz für Satz prüfen lässt. Es ist unser charakteristischster Dienst.

Die Idee ist einfach und bewusst: wir entscheiden nicht, was wahr ist —das beurteilt, wer zuhört—. Was wir tun, ist, jede Aussage an die Aufnahme zu verankern: wir holen sie mit ihrem wörtlichen Zitat, dem Sprecher, dem Segment und der genauen Minute heraus und markieren, ob dieses Zitat Wort für Wort im Audio steht. Das Urteil bringen Sie; wir bringen, woher jeder Satz stammt, auf eine Weise, die sich nicht bestreiten lässt.

Wofür es gut ist

Jede Situation, in der zählt, was gesagt wurde und später jemand es in Zweifel ziehen kann:

Von Anfang an sollte klar sein, was Uttera beweist an Ihrem Bericht —und was nicht—:

Das entscheidet Uttera NICHT
Wahrheitsgehalt — stimmt das Gesagte? das beurteilt, wer zuhört
Das beweist Uttera SEHR WOHL
Verankerung · jeder Satz steht im Audio, mit Minute und Sprecher
Echtheit · der Bericht stammt von Uttera und niemand hat ihn verändert
Zeitstempel · ein unabhängiger Dritter bestätigt, wann er existierte
Drei Nachweise, die jeder selbst prüfen kann, ohne uns beim Wort nehmen zu müssen.

Der Beweisgraph

Die Analyse wird als Beweisgraph (evidence_graph) geliefert: eine Liste von claims, den relevanten Aussagen der Aufnahme. Jede trägt text, state (seinen Zustand: geäußert, bedingt, strittig… — die vollständige Liste unten), speakers, entities, ein mögliches depends_on (von welcher anderen Aussage sie abhängt) und ein evidence-Array mit den Stellen, die sie belegen (segment_id, t_start/t_end, quote und grounding).

Jede Aussage wird auf zwei Achsen eingeordnet, damit Sie auf einen Blick wissen, was es ist und wie viel es wiegt.

Was es ist — der Typ:

Wie viel es wiegt — der Zustand:

Dieses grounding ist die Verankerung jedes Zitats, und wir sagen es ungeschönt:

verifiedDas Zitat erscheint wortgleich im Transkript, in diesem Zeitabschnitt.
approxEs passt fast (gleiche Idee, nahe Formulierung) innerhalb desselben Segments.
unverifiedEs ließ sich keinem konkreten Abschnitt zuordnen. Es wird nicht als verifiziert signiert (verifiable:false) und im Bericht markiert oder ausgeschlossen.

🔴 Verankern heißt nicht, über die Wahrheit zu urteilen. Der Graph sagt wer was wo gesagt hat, und dass das Zitat wirklich im Audio steht. Er sagt nicht, dass das Gesagte wahr ist: das —und die Genauigkeit des Transkripts— entscheidet, wer zuhört. Es ist dieselbe Unterscheidung wie bei Verifizieren: Echtheit und Verankerung sind nicht Wahrheitsgehalt.

Die Zahlen im Bericht stimmen mit dem Gesagten überein

Ein Protokoll lebt von seinen Zahlen: ein Betrag, eine Frist, eine Menge, ein Prozentsatz. Deshalb gleicht der Bericht eine Zahl in einer Aussage mit dem wörtlichen Zitat ab, aus dem sie stammt. Taucht die Zahl aus dem Bericht nicht im Gesagten auf, wird sie markiert —sie wird nicht durchgelassen, als wäre sie belegt—.

geäußert · Zahl · S0
La Espiga bestellt 500 kg starkes Weizenmehl.
«…ich nehme 500 Kilo, wie immer.» [8.9–11.0]
✓ die Zahl ist im Zitat bestätigt
Die Zahl im Bericht ist durch das Gesagte belegt. Wäre sie es nicht, würde der Bericht sie markieren.

Zwei Prüfstufen

Nicht jeder Bericht braucht dieselbe Strenge. Darum gibt es zwei Stufen:

Standard
Der verifizierbare Bericht, wie Sie ihn kennen.
✓ jede Aussage verankert an Zitat, Sprecher und Minute
✓ Zahlen gegen das Gesagte abgeglichen
✓ signiert (Ed25519 + Zeitstempel)
Forensisch · maximale Strenge
Für den Fall, dass der Beweis strenger Prüfung standhalten muss.
✓ alles aus der Standard-Stufe
✓ eine zusätzliche unabhängige Prüfung, dass jede Aussage wirklich durch ihren Beweis gedeckt ist
Die forensische Stufe ist für Gutachten, Rechtsstreit und formale Prüfung gedacht.

Forensisch: demnächst verfügbar für die höheren Pläne.

So fordern Sie sie an

Über die API ist es der Zusammenfassungs-Dienst mit ?mode=intelligence (und, um den Berichtstyp festzulegen, report_schema/report_prompt). Fügen Sie ?report=pdf für das signierte PDF hinzu: der bereits validierte Graph liegt im Dokument, abgedeckt von seiner Signatur, sodass das PDF allein zum Prüfen genügt. Das PDF kommt in report.pdf_base64 mit seinen Signaturen (content_signature, container_signature, pdf_sha256, key_fingerprint). Abgerechnet wird pro Token, wie die Zusammenfassung; eine unverified-Aussage wird nicht separat berechnet noch als verifiziert verkauft.

curl -X POST "https://api.uttera.ai/v1/summarize?mode=intelligence&report=pdf" \
  -H "Authorization: Bearer $UTTERA_API_KEY" \
  -F "file=@besprechung.mp3" \
  | jq -r '.report.pdf_base64' | base64 -d > bericht.pdf

Ohne Programmieren, im Studio: haken Sie das Kästchen „Verifizierbarer Bericht" an, wählen Sie die Ausgabesprache und führen Sie aus; der Graph wird auf dem Bildschirm gezeichnet und Sie können ihn (JSON) neben dem PDF herunterladen.

Für lange Aufnahmen, im Hintergrund. Die tiefe Analyse kann länger dauern, als eine Verbindung hält; fügen Sie &async=1 hinzu und holen Sie das Ergebnis später ab (Asynchroner Modus). Sobald das PDF ausgestellt ist, kann es jeder unter Einen Bericht verifizieren ohne Konto prüfen.

Einen Bericht verifizieren

Jeder PDF-Bericht, den wir ausstellen, ist kryptografisch signiert. Jeder —Sie, Ihr Kunde, die andere Seite einer Verhandlung— kann prüfen, dass ein Bericht von uns stammt und dass niemand ihn unterwegs angefasst hat, ohne uns um Erlaubnis zu fragen und ohne Konto.

Der schnellste Weg ist die Seite. Auf uttera.ai/de/verify laden Sie das PDF hoch, und das war's: Es gibt nichts zu kopieren oder einzufügen, weil die Signatur in der Datei selbst mitreist. Sie ist für jeden gedacht, der einen Bericht erhält und keinen Code schreiben wird — einen Anwalt, einen Sachverständigen, die Gegenpartei. Der Rest dieses Kapitels ist dafür, es selbst zu tun, mit curl oder ohne den Umweg über uns.

🔴 Authentizität ist nicht Wahrheit. Einen Bericht zu verifizieren sagt Ihnen, woher das Dokument stammt und dass niemand es verändert hat. Es sagt nicht, dass das, was darin steht, wahr ist. Der Bericht wird aus einer vom Kunden bereitgestellten Aufnahme erzeugt, und sowohl die Richtigkeit der Transkription als auch die Wahrheit dessen, was darin gesagt wird, liegen in seiner Verantwortung. Uttera war nicht Zeuge dessen, was aufgenommen wurde, prüft es nicht und zertifiziert es nicht.

Was es ist und was es nicht ist. Es ist eine kryptografische Authentizitätssignatur mit Ed25519. Es ist keine qualifizierte elektronische Signatur im Sinne der eIDAS-Verordnung: Sie beweist, dass das Dokument aus unserem System stammt und sich nicht verändert hat, sie ist nicht das Äquivalent eines Zertifikats eines qualifizierten Anbieters. Wir sagen das hier, und der Bericht sagt es auch.

Warum es zwei Signaturen gibt

Jeder Bericht trägt zwei, und jede beantwortet eine andere Frage:

SignaturWorüberWas sie beantwortet
Inhaltwas der Bericht sagt: Zusammenfassung, Transkript, Kundenname, Datum und Nutzung“stammt dieser Text von Uttera?” — sie gilt weiterhin, wenn das PDF neu gedruckt, beschnitten oder erneut gespeichert wurde
Containerdie Bytes der PDF-Datei“ist diese Datei genau die, die ausgestellt wurde?” — sie erkennt ein einziges geändertes Byte

Die des Inhalts ist im Inneren des Berichts abgedruckt, in der Fußzeile jeder Seite, als kurzer Fingerabdruck. Die des Containers kann nicht hinein —etwas zu signieren, das danach verändert wird, ist unmöglich— daher wird sie nach dem fertigen Dokument angehängt, auf einer Zeile am Ende der Datei, die mit %%UTTERA-FIRMA-V1: beginnt. Ein PDF-Reader sieht sie nie: Das Format schreibt vor, ab dem letzten startxref zu lesen, sodass alles nach dem %%EOF ignoriert wird.

Das ist es, was das PDF allein genügen lässt, um beide Signaturen zu prüfen. Früher wurde sie von der API separat zurückgegeben, und Sie mussten sie neben der Datei aufbewahren: In dem Moment, in dem jemand den Bericht per E-Mail weiterleitete, blieb die Signatur zurück, und das Dokument ließ sich überhaupt nicht mehr verifizieren. Die API gibt sie weiterhin in report.container_signature zurück, für jeden, der sie lieber separat archiviert.

Der öffentliche Schlüssel

Wir veröffentlichen ihn an drei Stellen, und alle drei geben dasselbe:

https://uttera.ai/.well-known/uttera-firma.pub     das PEM, für sich allein
https://uttera.ai/.well-known/uttera-firma.json    jeder Schlüssel, mit seinen Daten
https://api.uttera.ai/v1/reports/public-key        der, der gerade jetzt signiert

Die Vertrauenskette ist dieselbe, die DKIM- oder JWKS-Schlüsselsätze verwenden: Das TLS-Zertifikat von uttera.ai bezeugt, dass die Domain uns gehört, und diese Domain veröffentlicht den Schlüssel. Sie müssen uns das nicht am Telefon glauben.

Es über die Befehlszeile prüfen

Der Endpunkt ist öffentlich und benötigt keinen API-Schlüssel:

POST https://api.uttera.ai/v1/reports/verify

Mit dem PDF und sonst nichts. Das ist der normale Modus: Die Signatur ist in der Datei, sodass nichts nötig ist, was Sie separat hätten aufbewahren müssen. Er prüft beide Signaturen auf einmal:

curl -s -X POST https://api.uttera.ai/v1/reports/verify \
  -H "Content-Type: application/json" \
  -d "{\"modo\":\"pdf\",\"pdf_b64\":\"$(base64 -w0 report.pdf)\"}"

{"mode": "pdf", "signed": true,
 "valid_container": true, "valid_content": true,
 "key_fingerprint": "56ac333b…",
 "fields": {"cliente": "…", "titulo": "…", "generado": "1789641036", …}}

Beide true ist der gute Fall. valid_content true mit valid_container false bedeutet, der Text ist unser, aber die Datei wurde erneut gespeichert — jedes PDF-Werkzeug, das sie öffnet und schreibt, ändert die Bytes — was nicht dasselbe ist wie eine Fälschung. signed false bedeutet, die Datei trägt keine Signatur von uns, oder sie wurde entfernt.

Die beiden Modi unten sind für den Fall, dass Sie die Teile getrennt haben: einen älteren Bericht oder eine für sich archivierte Signatur.

Die Datei prüfen (Container-Signatur). Sie brauchen das PDF und die Signatur, die in report.container_signature dazukam:

curl -s -X POST https://api.uttera.ai/v1/reports/verify \
  -H "Content-Type: application/json" \
  -d "{\"modo\":\"contenedor\",
       \"pdf_b64\":\"$(base64 -w0 report.pdf)\",
       \"firma_b64\":\"THE_CONTAINER_SIGNATURE\"}"

{"valid": true, "mode": "contenedor", "key_fingerprint": "56ac333b…"}

Den Inhalt prüfen. Sie brauchen die Analyseantwort genau so, wie wir sie zurückgegeben haben, plus report.content_signature und das Datum aus report.generated_unix — den Unix-Zeitstempel, das ist der signierte Wert; generated_at ist das geschriebene Datum, zum Lesen. Der Zeitstempel ist auf dem Bericht selbst abgedruckt, neben der Nummer:

curl -s -X POST https://api.uttera.ai/v1/reports/verify \
  -H "Content-Type: application/json" \
  -d '{"modo":"contenido",
       "datos": { …the /v1/summarize response… },
       "cliente":"Meridiano Asesores, S.L.",
       "titulo":"Minutes of the meeting",
       "generado":1789639533,
       "firma_b64":"THE_CONTENT_SIGNATURE"}'

Wir speichern dafür nichts. Verifizieren ist eine Operation mit öffentlichem Schlüssel über das, was Sie uns senden: Wir schlagen nichts nach. Deshalb funktioniert es bei einem Bericht von vor Jahren, und deshalb können wir Ihnen nicht sagen, wie viele Berichte wir ausgestellt haben, oder einen finden, den Sie verloren haben.

Schlüsselrotation

Jeder Schlüssel wird zwölf Monate lang verwendet und beim geringsten Verdacht früher ersetzt. Zurückgezogene Schlüssel bleiben für immer veröffentlicht: Ein heute signierter Bericht muss in zehn Jahren verifizierbar sein.

Deshalb trägt jeder Bericht neben seiner Signatur den Fingerabdruck des Schlüssels, der ihn signiert hat. Der Prüfer weiß, welchen er verwenden muss, ohne alle durchzuprobieren.

Sollten wir je einen Schlüssel zurückziehen müssen, weil er kompromittiert wurde, würden wir es hier mit dem Datum sagen. Und wir würden auch den unangenehmen Teil sagen: Mit ihm signierte Berichte beweisen dann nichts mehr, weil derjenige, der den Schlüssel besaß, rückdatierte Dokumente hätte signieren können.