psi-slides · zurück zu „Im Hörsaal“ · This page in English
Der Prompter
Das Cockpit, das Fenster, das nur die vortragende Person sieht, kann zuhören, während man spricht. Wenn etwas gesagt werden muss, legt der Prompter einen kurzen Hinweis auf einen Streifen am unteren Rand der Folienkopie im Cockpit. Meistens sagt er nichts.
Er bleibt aus, solange man ihn nicht
einschaltet. Man startet node build.js auf der
Kommandozeile mit --watch --prompter (die
Desktop-App kann ihn nicht ausführen), und auch dann hört er erst
zu, wenn man im Cockpit Shift-S drückt oder den Knopf
◌ prompter in der Fußzeile, der dasselbe tut. Ein zweiter Tastendruck
schaltet ihn wieder ab.
Er geht online, und er kostet Geld. Er fragt ein Sprachmodell über das Internet, braucht also eine Netzverbindung und den API-Schlüssel eines OpenRouter-Kontos, und jede Anfrage wird diesem Konto berechnet. Das Mikrofon hört alle im Saal; das sollte man ihnen vor Beginn sagen.
Was er einflüstert
Er meldet sich, wenn man hinter der Zeit ist, wenn ein Punkt abstrakt bleibt, obwohl die Folien ein Beispiel dafür haben, wenn das eben Gesagte der eigenen Folie widerspricht, wenn man zu schnell spricht oder wenn die eigenen Notizen für diese Folie etwas vorgesehen haben, an dem man vorbeigegangen ist. Das Tempo zählt psi-slides selbst und gibt dem Modell die Zahlen: Wörter pro Minute, Fülllaute (äh, ähm), die längste Pause.
Im Bild stehen auf der Folie 90 Millisekunden, und die vortragende Person hat gerade „ich glaube, es waren 250 Millisekunden“ gesagt. Auf dem roten Streifen steht die Antwort des Prompters, Wort für Wort so, wie das Modell sie gegeben hat. Rot ist er, weil das Modell ihn als dringend markiert hat, eine Stufe für etwas, das den Saal in die Irre führen würde, wenn es so stehen bliebe.
Ein Hinweis bleibt im Cockpit. Er steht auf der Folienkopie im Cockpit und verblasst nach 15 Sekunden, ein dringender nach 25; Esc nimmt ihn früher vom Streifen. Nichts, was der Prompter sagt, erscheint auf der Projektion.
Er kann einer Folie, die noch kommt, eine Karte hinzufügen, der letzten Folie eingeschlossen, wenn man im Vorbeigehen etwas gesagt hat, das dort noch einmal gesagt werden sollte. K zeigt die Sprechernotizen als Karten, beschrieben auf „Im Hörsaal“.
Die Zeile unter dem Streifen zeigt in der ersten Minute die Wörter, die die Spracherkennung aufnimmt. Danach sagt sie, wann der Prompter zuletzt das Modell gefragt hat; so unterscheidet man einen Prompter, der nichts zu sagen hat, von einem, der stehen geblieben ist.
Was er braucht
Chrome und --watch. Das
Zuhören übernimmt die eigene Spracherkennung von Chrome. Der Schalter
--watch lässt node build.js
weiterlaufen und baut die Vorlesung bei jedem Speichern neu; das Cockpit
gibt, was es hört, an dieses laufende Programm weiter, und das Programm
fragt ein Sprachmodell. Die Desktop-App kann den Prompter nicht ausführen: Sie
übergibt --prompter nicht und hat keine
Netzberechtigung; dafür nimmt man die Kommandozeile.
Internet und einen OpenRouter-Schlüssel. Das Modell
wird über openrouter.ai erreicht. Den API-Schlüssel legt man in einem
OpenRouter-Konto an, über das auch die Anfragen bezahlt werden, und legt
ihn in die Datei ~/.config/psi-slides/openrouter.key, die nur
man selbst lesen darf, oder in die Umgebungsvariable
OPENROUTER_API_KEY. Ohne Schlüssel läuft der Prompter als
Probe: Er fragt kein Modell und schreibt nur ins Protokoll, was er
hört.
Geld. Eine Keynote samt allen Proben und Testläufen davor hat mit dem voreingestellten Modell, Claude Sonnet 5, etwa einen US-Dollar gekostet. Was ein Vortrag kostet, hängt vom Modell ab und davon, wie oft der Prompter fragt. Er stellt höchstens 360 Anfragen pro Stunde, wenn man keine niedrigere Grenze setzt.
Eine Probe braucht keinen Schlüssel
--prompter-dry-run erledigt alles
außer dem Aufruf des Modells: Der Prompter hört zu, führt die Uhr und
wendet die Regeln an, wann ein Hinweis erscheinen darf. An openrouter.ai
geht nichts, aber Chrome schickt den Ton weiterhin an Google, wenn es
die Sprache nicht auf dem eigenen Rechner erkennen kann.
Der Block prompter: in den Einstellungen oben in
source.md legt das Modell fest, wie viel neue Rede der
Prompter abwartet, bevor er wieder fragt, wie lange er nach einem Hinweis still ist, ob er
Karten ergänzen darf und wie oft er in einer Stunde fragen darf.
# in den Einstellungen oben in source.md
# duration: die geplante Dauer in Minuten, für die Uhr;
# cooldown: die Sekunden Ruhe nach jedem Hinweis
duration: 45
prompter:
cooldown: 60
# der Vortrag: neu gebaut, ausgeliefert, das Cockpit in Chrome offen
# und der Prompter an, wegen des prompter:-Blocks oben
node build.js lectures/my-lecture/source.md --present
# eine Probe: nichts geht an das Modell, kein Schlüssel nötig
node build.js lectures/my-lecture/source.md --present --prompter-dry-run
Was den Rechner verlässt und was auf ihm bleibt
Der Prompter schickt Text an openrouter.ai: das
Transkript und den Text der Vorlesung samt Sprechernotizen. Von dort geht
der Text an das Unternehmen, das das Modell betreibt. Der Prompter verschickt
keinen Ton, aber die Spracherkennung ist die von Chrome, und Chrome schickt
den Ton an Google, wenn es die Erkennung nicht auf dem eigenen Rechner
ausführen kann; das Cockpit sagt, welches von beiden. Nichts davon
erscheint auf der Projektion oder wird in source.md
geschrieben. node build.js liest den Schlüssel aus der
Umgebung und schreibt ihn nie in die HTML-Dateien.
Jeder Lauf schreibt ein Protokoll neben
source.md, in prompter-<date>.jsonl: was
der Prompter gehört hat, welche Hinweise er gezeigt hat und was er sagen
wollte, aber nach seinen Regeln nicht durfte, mit der Regel, die es
verhindert hat. Daneben steht prompter-<hash>.prompt.txt
mit dem Text der Vorlesung, genau so, wie das Modell ihn bekommen hat. Das
Protokoll enthält die gesprochenen Worte wörtlich, deshalb gehört es nicht
in Repositorys, die man veröffentlicht. Während des Vortrags zeigt ein
Shift-Klick auf den Prompter-Knopf die letzten zehn Hinweise
und Karten. Danach liest
node build.js source.md --prompter-debrief das neueste
Protokoll zurück: wann die Uhr gestartet wurde, wie der Vortrag die
@mm:ss-Marken in den Notizen gehalten hat und was der
Prompter geflüstert und zurückgehalten hat.
Das Mikrofon hört den ganzen Saal
Fragen und Einwürfe aus dem Publikum werden transkribiert und wie die eigenen Worte an das Modell geschickt. Deshalb sollte man dem Publikum vor dem Vortrag sagen, dass der Prompter mithört, und ihn mit Shift-S ausschalten, wenn jemand aus dem Saal spricht, etwa in der Fragerunde.
Ob man ihn im eigenen Rahmen einsetzen darf, muss man selbst prüfen: Der Datenschutz (in der EU die DSGVO) und die Persönlichkeitsrechte der Anwesenden gelten auch für ihre Worte.
Zum Weiterlesen
- Was psi-slides ist Die Startseite: eine Vorlesung, wie der Saal sie sieht und wie die Lesenden sie bekommen, und warum das dieselbe Datei ist.
- Im Hörsaal Der Rest des Cockpits: die zwei Fenster, die Schritte, die Karten, die der Prompter ergänzen kann, und die Tasten, die den Blick des Saals von der Folie nehmen.
- Loslegen Die App und die Kommandozeile, und wie man das Tutorial auf einem Rechner baut, auf dem nichts installiert ist.
- Sicherheit
Was
--watch,--serveund--prompterauf dem eigenen Rechner öffnen, und wohin die Daten des Prompters gehen, in einer Liste (englisch).