Eine Szene mit einem Assistenten bauen
Die Kette von der Widget-Liste bis zum gerenderten Bild: Regeln, Dokument, Probelauf, Entwurf, Veröffentlichen und Vorschau.
- Für wen
- Alle, die einen Assistenten Szenen gestalten lassen, und Entwicklerinnen und Entwickler, die verstehen wollen, was er dabei tut
- Voraussetzung
- ein verbundener Assistent mit dem Bereich Szenen, siehe Einen KI-Assistenten verbinden
- Ort
- ein Gespräch mit Ihrem Assistenten
Auf dieser Seite
Am Ende hat Ihr Assistent eine Szene aus Widgets gebaut, sie geprüft, als Entwurf gespeichert und Ihnen ein gerendertes Bild davon gezeigt. Der Weg von der Idee zum Bild ist eine Kette aus sechs Schritten, und jede Werkzeugbeschreibung nennt den nächsten, damit ein Assistent die Reihenfolge nicht raten muss.
Schritte
-
Die Widgets ansehen.
list_widgetsnennt die Widgets, aus denen eine Szene besteht: die eingebautentext,image,video,shape,graphic,documentundzone, die es immer gibt, und die Widgets der Apps, die Ihre Organisation installiert hat. Jeder Eintrag zeigt Kennung, App, Namen, einen Satz, die Pflichtfelder und ob die App installiert ist. Das Widget einer nicht installierten App lässt sich in ein Dokument schreiben, läuft aber auf keinem Display. -
Die Regeln holen.
get_widget_schemaliefert das vollständige JSON Schema der Konfiguration eines Widgets (Draft 2020-12): jedes Feld mittitleunddescription, die Pflichtfelder unterrequiredund unterexamplesmindestens eine vollständige Beispiel-Konfiguration. Ein Beispiel nehmen und die Werte tauschen ist der kürzeste Weg.Ein Wert steht in keinem Schema: die
graphicIddes eingebauten Widgetsgraphic. Sie ist eine feste Kennung aus der Bibliothek der Motive.list_graphicslistet sie mit Kategorie und Schlagwörtern, durchsuchbar nach Absicht mit deutschen Wörtern wie „pfeil“ oder „kaffee“. -
Das Dokument bauen. Ein Szenendokument hat drei Felder:
JSON{ "canvas": { "width": 1920, "height": 1080, "backgroundColor": "#ffffff" }, "widgets": [ { "id": "wgi_01K7Z9M4T0W14MCPTEXT000001", "appId": "core", "widgetType": "text", "appVersionPin": "0.0.0", "frame": { "x": 0, "y": 0, "w": 1920, "h": 1080 }, "zIndex": 0, "config": { "content": "Welcome" } } ], "transitions": { "in": { "kind": "fade", "durationMs": 600 }, "out": { "kind": "fade", "durationMs": 600 } }}Eine Szene hat keine Auflösung. Jedes Widget sitzt nach seinem
framein Einheiten der Leinwand, und die kurze Kante der Leinwand misst immer 1080: 16:9 ist 1920 × 1080, 9:16 ist 1080 × 1920. Jedes Display zeichnet so scharf, wie Gerät und Paket es erlauben. Ein Bereich ist ein Widget mitappId: "core"undwidgetType: "zone". Er teilt die Szene, und seineconfignenntname,primaryundcontent: einen Inhalt, eine eigene Folge oder eine Playlist. Höchstens ein Bereich istprimary, und dieser Hauptbereich bestimmt, wie lange die Szene läuft. Bereiche überlappen sich nicht, und ein Widget in einem Bereich sitzt dort ohne eigenen Rahmen.configkommt aus Schritt 2. -
Einen Probelauf machen.
validate_sceneprüft das Dokument, ohne etwas zu speichern: den Aufbau, die Regeln der Bereiche, die verwendeten Medien und jede Konfiguration gegen das Schema ihres Widgets. Jeder Befund nennt Widget und Feld:JSON{ "valid": false, "findings": [ { "severity": "BLOCKING", "type": "ConfigSchemaIncompatible", "message": "widget 'wgi_…' (text): config/content must NOT have fewer than 1 characters", "widgetId": "wgi_…", "field": "/content" } ]}BLOCKINGverhindert später das Veröffentlichen,WARNINGnicht. Ein Widget, das über den Rand der Leinwand ragt, wird gemeldet und hält nichts auf. -
Den Entwurf anlegen oder ändern.
create_scenelegt einen Entwurf aus dem Dokument an,update_sceneersetzt das Dokument einer bestehenden Szene. Beide machen den Probelauf noch einmal und schreiben gar nichts, wenn ein Befund blockiert. Beide brauchenconfirm: trueund beschreiben ohne es nur, was sie tun würden.Um eine bestehende Szene zu ändern, beginnen Sie mit
get_scene_document. Es liefert das Dokument des Entwurfs und seineversion. Ändern Sie dieses Dokument, prüfen Sie es mitvalidate_sceneund schicken Sie es als Ganzes anupdate_scene, zusammen mitexpectedVersionaus derselben Antwort, damit eine fremde Änderung dazwischen nicht überschrieben wird. Einzelne Widgets lassen sich nicht ändern, und ein Assistent, der das Dokument neu erfindet, verliert jede Einstellung, die er nicht kannte. -
Ansehen und nachbessern.
render_scenerendert eine veröffentlichte Fassung und liefert das Bild als PNG in der Antwort. Ein reiner Entwurf hat keine Fassung, veröffentlichen Sie ihn also zuerst mitpublish_scene. Auf ein Display kommt er dadurch nicht, solange ihm keines zugewiesen ist. Das Bild beantwortet, was kein Schema kann: ob der Text in seinem Kasten bleibt, ob etwas verdeckt ist, ob die Farben stimmen. Passt etwas nicht, geht es mitupdate_sceneund einem neuen Veröffentlichen weiter.
Ergebnis prüfen
get_scenezeigt die Szene mit ihren Widgets und ohne offenen Befund.- Das Bild aus
render_scenezeigt, was Sie wollten. - Was ein Display wirklich zeigt, beantwortet
get_player_screenshotmit der jüngsten Aufnahme des Geräts. Gibt es noch keine, fordertsend_player_commandmitcommand: "screenshot"eine an.
Wenn etwas nicht klappt
| Symptom | Bedeutung | Lösung |
|---|---|---|
create_scene oder update_scene liefert Befunde und speichert nichts |
Ein Befund blockiert. | Die genannten Felder korrigieren und validate_scene erneut aufrufen. |
update_scene antwortet conflict |
Jemand hat die Szene dazwischen geändert. | Das Dokument mit get_scene_document neu lesen und die Änderung auf den neuen Stand anwenden. |
render_scene sagt, es gebe keine Fassung |
Die Szene ist noch ein reiner Entwurf. | Sie mit publish_scene veröffentlichen und dann rendern. |
render_scene sagt, eine Vorschau sei nicht verfügbar |
In Ihrer Umgebung ist kein Dienst für Vorschaubilder eingerichtet. | Das Ergebnis stattdessen mit get_player_screenshot auf einem Display prüfen. |
| Ein Widget steht im Dokument, aber nicht auf dem Display | Seine App ist in Ihrer Organisation nicht installiert. | Die App installieren oder ein eingebautes Widget verwenden. |
War das hilfreich?