
Share:
)
Diana ist Entwicklungsbeauftragte bei Vonage. Sie isst gerne frische Austern.
Wie man mit Vonage AI Studio und Notion ein Rollenspiel entwickelt
Lesedauer: 7 Minuten
Vom Spielen von RPGs zum Bauen von Vonage's Gate
Als ich jünger war, habe ich einen Teil meiner Spielzeit mit geschenkten Videospielen verbracht - absolute Perlen, aber auch solche, mit denen ich zugegebenermaßen etwas zu viel Zeit verbracht habe, was mir oft die eine oder andere Schelte einbrachte. Ich genoss eine Vielzahl von Spielen, von sozialen Simulationen und Plattformspielen über Ego-Shooter bis hin zu meinem persönlichen Favoriten, den Rollenspielen (RPG). Ohne dass mein jüngeres Ich es wusste, schärfte jede Stunde, die ich in diesen Fantasiewelten verbrachte, auf subtile Weise meine Problemlösungsfähigkeiten und meine Kreativität. Und genau diese Spieleabenteuer legten den Grundstein für diesen Blog.
Letztes Jahr veröffentlichte Larian Studios Baldur's Gate 3veröffentlicht, ein Rollenspiel, das auf dem Tabletop-Spiel Dungeon & Dragons basiert. Stellen Sie sich ein RPG so vor, als würden Sie in ein Buch eintauchen, in dem Sie nicht nur die Geschichte lesen, sondern selbst die Hauptfigur sind. Du navigierst durch Abenteuer, triffst Entscheidungen, interagierst mit anderen Charakteren und gestaltest den Ausgang der Geschichte auf der Grundlage deiner Entscheidungen. Es ist eine Chance, eine Geschichte auf eine praktische Art und Weise zu erleben, bei der die Welt auf Ihre Entscheidungen reagiert.
Ich habe das Spiel selbst gespielt und war sehr beeindruckt davon, wie einzigartig und fesselnd die Erfahrung jedes Spielers war, da es im Stil des "Choose your own adventure" aufgebaut war. Ich fühlte mich dann gezwungen, eine einfachere Version eines RPGs mit Vonage AI Studio und Nachrichten-API - Vonage's Gate!
Erstellen eines RPGs mit Botschaften
So werden wir eine Erzählung schaffen, in der die Spieler das Schicksal ihres Charakters bestimmen. Also, kanalisieren Sie die Energie Ihrer Hauptfigur und lassen Sie uns anfangen zu bauen!
Voraussetzungen
Datenbank und Spieleinrichtung
Als bewährte Methode werden wir alle im Spiel verwendeten Werte in einer Datenbank speichern - für dieses Beispiel verwenden wir Notion!
Wie man Notion als Datenbank verwendet
Sie ist benutzerfreundlich, erfordert keine fortgeschrittenen Datenbankkenntnisse und ist sehr praktisch, weil Änderungen sofort angezeigt werden - perfekt, um unsere Inhalte frisch und reaktionsschnell zu halten. Obwohl sie weniger skalierbar ist als herkömmliche Datenbanken, kann sie alles verarbeiten, was wir für diese App brauchen. Das Beste daran ist, dass sie sich problemlos in Vonage AI Studio und andere Low-Code-Plattformen integrieren lässt, was unser Leben sehr viel einfacher macht!
Erstellen Sie Ihr Arbeitsblatt
Weiter zu Begriff. Klicken Sie auf die Schaltfläche (+), um eine Seite hinzuzufügen. Klicken Sie auf der neuen Seite unter DATENBANK auf "Tabelle". Legen Sie die folgenden Spalten an:
ID (Typ: Zahl) - die ID der Nachricht wird über MMS gesendet
Nachricht (Typ: Titel) - der tatsächlich gesendete Text
Option1 (Typ: Zahl) - die Antwort, die ein Spieler sendet, wenn er Option 1 wählt
Option2 (Typ: Zahl) - die Antwort, die ein Spieler sendet, wenn er Option 2 wählt
Option3 (Typ: Zahl) - die Antwort, die ein Spieler sendet, wenn er Option 3 wählt
NextID1 (Typ: Zahl) - die ID der nächsten Nachricht, die der Spieler nach der Wahl von Option 1 erhält
NextID2 (Typ: Zahl) - die ID der nächsten Nachricht, die der Spieler nach der Wahl von Option 2 erhält
NextID3 (Typ: Zahl) - die ID der nächsten Nachricht, die der Spieler nach der Wahl von Option 3 erhält
Wie Sie Ihr Spiel strukturieren
Sie können die Geschichte so gestalten, wie Sie es möchten. In meiner Geschichte erhält der Spieler am Ende das Artefakt. Die an den Spieler gesendeten Texte werden durch seine Antworten auf die vorherige Nachricht ausgelöst. Sie können sogar die Daten dieses Beispielspiels aus meinem GitHub-Repositorium.
Charakter-Erstellung
Erste Nachricht: Senden Sie eine kurze Einführung und eine einfache Auswahl für die Charaktererstellung.
In meiner Datenbank kannst du sehen, dass ID 1 die anfängliche Nachricht anzeigt: "Willkommen in Vonage's Gate! Wähle eine Klasse: (1) Krieger, (2) Magier, oder (3) Schurke."
Bestätigung des Charakters: Sobald sie eine Wahl getroffen haben, schicken Sie eine Bestätigung mit einer kurzen Charakterbeschreibung.
Verlauf des Spiels
Unmittelbar nach der Bestätigung des Charakters präsentieren Sie das erste einfache Szenario, das eine Entscheidung erfordert. Wenn der Spieler eine Entscheidung trifft, antworten Sie mit einem kurzen Ergebnis und einem weiteren Entscheidungspunkt. Fahren Sie mit einer Reihe von einfachen Entscheidungspunkten fort, die die Geschichte in Gang halten, ohne komplexe Interaktionen zu erfordern. In dieser Demo lassen wir die Spieler mit Ein-Zeichen-Nachrichten antworten. Nach ein paar Entscheidungsrunden können wir die Demo mit einem einfachen Ende abschließen.
Database Setup
Aktivieren der Notion-API für den Datenzugriff und die Integration mit Vonage AI Studio
Jetzt kommt der spaßige Teil! Mit der benutzerfreundlichen Oberfläche von Vonage AI Studio können Sie den Gesprächsablauf Ihres Chatbots gestalten. Es handelt sich um eine Drag-and-Drop-Einrichtung, d. h. Sie brauchen keine Programmierkenntnisse, um loszulegen. Sie können verschiedene Dialogknoten hinzufügen und Antworten definieren.
Unser Ablauf sollte folgendermaßen aussehen:
Conversation Flow
Erstens, Vonage AI Studio einrichten.
Als Nächstes werden wir Knoten und Eigenschaften erstellen, um sie für den Konversationsfluss miteinander zu verbinden. Sie können auch die Zip-Datei dieses Beispiels herunterladen und den Agenten in Vonage AI Studio importieren. Wenn Sie dies von Grund auf neu aufbauen möchten, finden Sie hier die Knoten, die wir erstellen müssen, und die Knoten und Eigenschaften, mit denen wir sie verbinden müssen:
Eigenschaften > Parameter
Eigenschaftsname: Startparameter setzen
Erstellen Sie einen Parameter namens QUERY_PARAMETER und setzen Sie ihn auf 1, da unsere erste ID mit 1 beginnt.
Verbindung(en): START (links) und $QUERY_PARAMATER = 1 zum Webhook
Set Start Parameter
NODES > Integrationen > Webhook
Name des Knotens: Webhook
Methode: POST Anfrage-URL: https://api.notion.com/v1/databases/<databaseid>
/abfrage
Um eine Datenbank-ID zu findennavigieren Sie zu der Datenbank-URL in Ihrem Notion-Arbeitsbereich. Die ID ist die Zeichenfolge in der URL, die zwischen dem Schrägstrich nach dem Arbeitsbereichsnamen (falls zutreffend) und dem Fragezeichen steht. Die ID ist eine 32-stellige alphanumerische Zeichenkette.
Kopfzeilen (HTTP-Header : Wert)
Autorisierung : Überbringer $NOTION_ACCESS_TOKEN
Notion-Version : 2022-06-28
Um Ihren $NOTION_ACCESS_TOKEN zu findenzu finden, durchlaufen Sie den Autorisierungsprozess für eine interne Integration bei Notion durch.
Körper
Fügen Sie den folgenden Text in den Textkörper ein:
{
"filter": {
"property": "ID",
"unique_id": {
"equals": $QUERY_PARAMETER
}
}
}
Antwort-Mapping
Antworttyp: JSON Objektpfad
Nachdem Sie die oben genannten Informationen in unseren Webhook-Knoten eingegeben haben, stellen Sie sicher, dass der Webhook funktioniert, indem Sie oben rechts auf die Schaltfläche "Testanfrage" klicken. Unter Antwort sehen Sie, dass alle Daten aus unserer Notion-Tabelle zurückgegeben werden. Definieren Sie anhand der Antwort den Objektpfad und ordnen Sie ihn einem Parameter zu. Wenn Sie Hilfe benötigen, schauen Sie in meinem Blog nach, der [tiefer in die Antwortzuordnung eindringt] (LINK ZU MEINEM BLOG).
Verbindung(en): 2xx zum Sammeln von Eingaben
Response Mapping
NODES > Konversation > Eingaben sammeln
Name des Knotens: Eingabe sammeln
Parameter: EINGABE
Text Prompt: $RETURNED_MESSAGE (Sie müssen diesen Text abtippen, anstatt ihn zu kopieren und einzufügen)
Erwartete Eingabe: Text
Verbindung(en): Text zu Bedingungen
Collect Input
Knoten > Konversation > Bedingungen
Name des Knotens: Bedingungen
Zustand Name(n):
Option 1
* Parameter: INPUT * Operation: Is equal to * Value: $RETURNED_OPTION1
CopyOption 2
* Parameter: INPUT * Operation: Is equal to * Value: $RETURNED_OPTION2
CopyOption 3
* Parameter: INPUT * Operation: Is equal to * Value: $RETURNED_OPTION3
CopyNicht beenden
* Parameter: RETURNED_ID * Operation: Is equal to * Value: 9 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 11 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 12 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 15 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 16 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 18 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 19
Copy
Verbindung(en):
- Option 1 zum Einstellen von Parameter 1
- Option 2 zum Einstellen von Parameter 2
- Option 3 zur Einstellung von Parameter 3
Conditions
Eigenschaften > Parameter
Eigenschaftsname: Parameter 1 setzen
Parameter: ABFRAGE_PARAMETER
Wert: $RETURNED_NEXT_ID1
Verbindung(en): $QUERY_PARAMETER zu Exit Points
Je nachdem, welche Option der Spieler wählt, verweist diese Eigenschaft auf die ID der nächsten Nachricht, die der Spieler nach dem Senden der "1" erhalten soll.
Set Parameter 1
Eigenschaften > Parameter
Eigenschaftsname: Parameter 2 setzen
Parameter: ABFRAGE_PARAMETER
Wert: $RETURNED_NEXT_ID2
Verbindung(en): $QUERY_PARAMTER zu Exit Points
Je nachdem, welche Option der Spieler wählt, verweist diese Eigenschaft auf die ID der nächsten Nachricht, die der Spieler nach der Eingabe von "2" erhalten soll.
Eigenschaften > Parameter
Eigenschaftsname: Parameter 3 setzen
Parameter: ABFRAGE_PARAMETER
Wert: $RETURNED_NEXT_ID3
Verbindung(en): $QUERY_PARAMTER zu Exit Points
Je nachdem, welche Option der Spieler wählt, verweist diese Eigenschaft auf die ID der nächsten Nachricht, die der Spieler nach der Eingabe der "3" erhalten soll.
Knoten > Konversation > Bedingungen
Name des Knotens: Exit Points
Zustand Name(n):
QUERY_ID NOT 0
*Parameter: QUERY_PARAMETER* Operation: Is not equal to *Value: 0* Connection(s): $QUERY_ID NOT 0 to Webhook
CopyQUERY_ID = 0
*Parameter: QUERY_PARAMETER* Operation: Is equal to *Value: 0* Connection(s): $QUERY_ID = 0 to End Game
Copy
Knoten > Konversation > Nachricht senden
Name des Knotens: End Game
Text: Danke, dass ihr Vonage's Gate gespielt habt! Teilen Sie Ihre Gedanken auf Twitter und markieren Sie @dianasoyster und @VonageDev
Verbindung(en): Danke fürs Mitspielen an END CONVERSATION
Send Message
Dieser Knoten wird gesendet, nachdem der Spieler das Ende seines Abenteuers erreicht hat. Das bedeutet, dass alle Werte in der Tabelle 0 sind und der Spieler eine "1" sendet, um wie aufgefordert fortzufahren.
End Game
Knoten > Aktionen > Konversation beenden
Name des Knotens: End Conversation
End Conversation
Technisch gesehen brauchen Sie diesen Knoten nicht, aber aus Gründen der guten Praxis sollten wir ihn einfügen.
Prüfung
In der oberen rechten Ecke von Vonage AI Studio befindet sich eine schwarze Schaltfläche Tester. Klicken Sie darauf, um das Spiel zu spielen.
Testing the Agent in AI Studio - Part 1
Testing the Agent in AI Studio - Part 2
Testing the Agent in AI Studio - Part 3
Testing the Agent in AI Studio - Part 4
Testing the Agent in AI Studio - Part 5
Aufbruch in Ihr eigenes Abenteuer
Wie aus Baldur's Gate 3 zitiert: "Mit dem Bösen kann man keine Kompromisse eingehen. In diesem Tutorial haben wir gelernt, wie man bei der Datenspeicherung die besten Praktiken anwendet, damit man sich nicht mit "bösen" technischen Schulden herumschlagen muss, falls man in Zukunft Änderungen an seinen Texten vornehmen muss. Wir haben auch gelernt, wie man eine Datenbank mit Vonage AI Studio und Messages API integriert. Sie können sich gerne unserer "Klasse" von Entwicklern auf Slack und folgen Sie uns auf X, früher bekannt als Twitter. Wenn Sie eine ähnliche Anwendung entwickeln, teilen Sie sie bitte und taggen Sie mich - Ich würde mich freuen, von Ihrem Abenteuer zu hören!