https://d226lax1qjow5r.cloudfront.net/blog/blogposts/choose-your-own-adventure-with-vonage-ai-studio/vonageaistuido.png

Vonage AI Studioで自分だけの冒険を選ぼう

最終更新日 August 2, 2022

所要時間:1 分

Vonage AI Studioは、さまざまなコミュニケーション・チャネルで会話フローを作成するためのノーコード/ローコード・プラットフォームです。ドラッグ&ドロップのインターフェイスを使用して、モジュールとアクションを複雑なフローに接続し、プロセスを自動化したり、さまざまなサービスに接続することができます。AI Studioの会話フローは、Vonage AI独自の自然言語理解(NLU)アルゴリズムに基づいて構築されており、特定のキーワードを使用したり、選択肢のリストから選択したり、特定の方法で質問を定式化したりすることなく、ユーザーが「自然言語」でコミュニケーションできる会話インタラクションを可能にします。

AI Studioはしばらく前からDeveloper Previewで利用可能でした。最近、一般的に使用できるようになり、とてもエキサイティングなことなので、その機能のいくつかについて書くことで、この事実を強調したいと思った。そのために、「実際の」カスタマーサービスタイプのフローを構築するなど、いくつかのアプローチを取ることができました。しかし、この記事では、少し違うことに挑戦し、AI Studioの機能のいくつかを楽しく興味深い方法で探検したいと思いました。

若い頃、私は「自分で冒険を選ぶ」本を読むのが好きだった。このような本は、直線的な物語構造ではなく、ストーリーの特定の時点で決断を下し、その決断に基づいて本の適切なページをめくることができました。AI Studioを使って、自分だけの「冒険選択」ストーリーを作れたらクールだと思いました。

Book cover from 'The Warlock of Firetop Mountain' depicting a dragon and a wizard'The Warlock of Firetop Mountain' book cover

代理店

AI Studioのインターフェースでは、各会話フローは「エージェント」として作成されます。Voice、SMS、WhatsApp、HTTPなど、使用するケースに応じて様々なタイプのエージェントが用意されています。

A screenshot of the Agent Creation step in Vonage AI Studio showing the channel selection options: Telephony, WhatsApp, SMS, HTTP AI Studio screenshot: Agent Creation

自分の冒険を選択する」ストーリーのために、私はVoiceエージェントを作成することにしました。AI StudioのVoiceエージェントは、Vonage独自の自動音声認識(ASR)とNLU機能を組み合わせて、自然な音声対話を提供します。

最初にエージェントを作成する際、エージェント名、国、言語、タイムゾーンなど、いくつかの設定があります。

Voice エージェントの場合、AI Studio の音声合成機能を使って、エージェントが「話す」ための音声を選択する必要があります。しかし、会話フローの様々な要素を作成する際に、代わりに音声録音を使用するオプションもあります。

A screenshot of the Agent setup step in Vonage AI Studio showing the selection options: Region, Agent Name, Language, Voices, Time ZoneAI Studio screenshot: Agent Set up

詳細はこちら エージェント.

フロー

フローは、AI Studioのドラッグ&ドロップキャンバス上で接続された異なる会話ノードの組み合わせです。

A screenshot of one of the flows (the intro flow) for my AI Studio agent. Shows various conversation nodes connected together on the AI Studio canvas to form a conversational flowAI Studio screenshot: Intro flow

フロー全体のすべてのノードを同じキャンバスに配置できます。しかし、大規模で複雑なフローの場合は、サブフローに分割した方が管理しやすくなります。私のストーリーでは、主に4つのパートに分けました。メインフローがあり、冒険の舞台を設定する。このフローが終わると、物語は「分かれ道」に到達し、冒険者はどちらの道を進むかを選択しなければならない。そこで、分かれ道が川の流れか森の流れにつながるように、いくつかのサブフローを作った。この2つのサブフローは、冒険の終盤のキャッスルフローで再び合流する。

A screenshot of part of an AI Studio conversational flow, showing a conversation node linked to two sub-flow nodesAI Studio screenshot: sub-flows

AI StudioメニューのFlowsタブでサブフローを作成・管理します。

A screenshot of the Flows tab of the AI Studio menu showing the already created sub-flows (Forest Path, Castle, and River Road) as well as an 'Add flow' buttonAI Studio screenshot: Flows tab of the menu

実際のシナリオでは、販売、サポート、請求など、顧客がアクセスしたいビジネス機能ごとにサブフローを作成するかもしれない。

詳細 フロー.

会話ノード

前述したように、フローは異なる会話ノードをつなげたものである。会話ノードにはさまざまな種類があり、それぞれが会話全体のフローの中で特定の目的を果たします。いくつか見てみましょう。

A screenshot of the Conversation Nodes tab of the AI Studio menu with buttons for the different types of Conversation nodes (Classification, Collect Input, Speak, Conditions, Listen)AI Studio screenshot: Conversation Nodes tab

スタート・ノード

すべてのストーリーには始まりがあり、AI Studioのすべての会話フローにはスタートノードが必要です。スタートノードはフローの開始点として機能するだけでなく、フロー全体の特定のオプションを設定することができます。ここで選択できるオプションは、フローの種類によって異なります。Voice Callフローの場合、通話を録音したり、通話切断イベントに応答するWebhookを設定したりすることができる。私の冒険物語にはどちらも必要ないので、このノードを純粋に出発点として使用した。

A screenshot of the setup options for the AI Studio Start node (Record Call, Call Disconnected Webhook)AI Studio screenshot: Start Node setup

スピーク・ノード

スピークノードの目的は、発信者に情報を提供することです。ノードを設定する際、AI Studioの音声合成機能を使って設定した音声で読み上げられるテキストを入力するか、実際の音声を録音するかを選択できます。

私の「アドベンチャーの流れ」はエキサイティングな物語を伝えることに主眼を置いているので、場面設定や物語の様々な部分を説明するために、流れの中の複数の場面でこのノードに大きく依存した。

A screenshot showing an example of the AI Studio Speak node, showing the 'Text to Speech' tab with some text from the conversational flow.AI Studio screenshot: Speak Node

詳細はこちら スピーク・ノード.

入力ノードの収集

これは、会話フローを構築するために利用可能なノードの最も重要なタイプの1つです。AI Studio 会話フローは基本的に、ユーザーとAIエージェントの2者間の相互作用です。どのような対話においても、両者が貢献できる必要があり、Collect Inputノードの出番となります。

このノードでは、基本的にパラメータを作成し、そのパラメータの値として設定するユーザーからの入力を収集することができます。パラメータ名とプロンプトを設定します。プロンプトは基本的にユーザーからの応答を引き出すための質問またはステートメントです。また、質問に対する回答の再試行回数を設定したり、特定の再試行プロンプトを使用したりすることもできます。

私の物語では、クエストを引き受けるかどうか、どの分かれ道を進むか、廃墟を探索するかどうかなど、主人公がある決断を迫られる場面のノード数として使った。現実の世界でも、ユーザーからの入力を集めたい、あるいは集める必要がある場面はたくさんあります。例えば、なぜあなたのビジネスにコンタクトしてきたのかを尋ねたり、注文やアカウント番号、連絡先などの特定の情報を得たりするような場面です。

A screenshot showing an example of the AI Studio Collect Input node, showing Parameter field with 'QUEST_ACCEPTANCE' set as the parameter name, and the Prompts field with 'Are you ready to go on a quest?' set as the prompt text.AI Studio screenshot: Collect Input Node

についての詳細は 入力ノードの収集.

会話フローの一部として、ある種のユーザーの選択を表す入力を収集する場合、それは一般的に、その選択に応じて特定の方法でフローを指示したいからです。AI Studioエージェントがユーザーの入力を評価して応答する方法は、ConditionsノードまたはClassificationノードを使用して決定されます。ユーザー入力はパラメータとして設定され、条件ノードや分類ノードのコンテキストで使用されます。

分類ノード

Classification(分類)ノードは、ユーザー入力に対して何をするかを決定する方法の1つです。フローでは通常、Collect Inputノードの後に続きます。分類ノードは自然な会話フローにとって素晴らしいものです。なぜなら、ユーザーの選択肢を非常に特定の値のセットに制限するのではなく(「セールスの場合は'1'、サポートの場合は'2'と言ってください」などのオプションがあるIVRを思い浮かべてください。サポート"、"カスタマーサポート"、"カスタマーサポート部門"、あるいは "助けが必要です "といったように。分類ノードの仕事は、そのユーザーの入力に基づいて、何をすべきかを見つけ出すことだ。これを行うには、インテントを使用します。

意図

インテントについて考える1つの方法は、ある質問や状況に対してユーザーが何を言うかという一般的な予想です。各インテントは、特定のユースケースやアクションを包含し、複数のユーザー表現、またはユーザーがこのアクションやユースケースを提案するために言うかもしれない事柄で構成されます。

私のアドベンチャー・ストーリーでは、物語中に発生する様々な決定ポイントに、分類ノードとインテントをかなり多用した。例えば、冒険者は廃屋を探索するかどうかを決めなければならない。この決定のための分類ノードの中で、私はいくつかのインテントを使う。

A screenshot showing an example of the AI Studio Classification Node, showing a Classification Parameter field with 'INVESTIGATE_DWELLING' set as the parameter name, and the Intents field with 'Investigate Dwelling' and 'Stay on Road' set as the intents..AI Studio screenshot: Classification Node

このノードには、状況に対するユーザーの潜在的な反応をカバーするさまざまなインテントが含まれ、各インテントには、そのインテントを示唆するさまざまな表現が含まれる。

A screenshot showing an example of an AI Studio Intent, showing the name of the Intent 'Investigate Dwelling' and various User Expressions that make up the intent such as 'Investigate building', 'Investigate house', 'Explore dwelling', etc.AI Studio screenshot: Intent setup

詳細 分類ノードそして インテント.

コンディション・ノード

Conditions(条件)ノードは、その目的という点ではClassification(分類)ノードに似ています(ユーザー入力に基づいてアクションのコースを決定します):エンティティです。

エンティティ

エンティティは基本的に、値とその同義語のリストである。これは、ユーザが特定のもののグループから何かを選択しなければならないが、それぞれのものに対して異なる単語が存在する可能性がある場合に便利です。例えば、誰かがTシャツのサイズを指定する場合、'big'か'large'のどちらかを同じ意味で言うかもしれませんし、同様に'extra-large'と'XL'は同義語です。

私の冒険の流れでは、条件ノードやエンティティよりも、分類ノードやインテントを使うことが多かった。しかし、条件ノードを使う意味がある場所では、条件ノードを使った。そのうちの1つは、ドラゴンを攻撃するための選択肢を決めることだった。

A screenshot showing an example of an AI Studio Conditions node, called 'Attack Option', with conditions such as 'User has bow' and 'User has Potion' branching off to different paths in the conversation flowAI Studio screenshot: Conditions Node

このノードのロジックは、ユーザーが冒険中に拾ったアイテムの特定のパラメータの値によって決定される条件に基づいている。

A screenshot showing an the setup step for the  'Attack Option' Conditions node, listing the 'User has bow' and 'User has Potion' Entities that make up this condition AI Studio screenshot: Conditions Node setup

A screenshot showing an the setup for the 'User has bow' Entity with a Parameter of 'QUEST_BOW' an Operation of 'is equal to' and a Value of 'True'AI Studio screenshot: Entity

詳細 コンディションノードおよび エンティティ.

その他のノードタイプ

Speakノード、Collect Inputノード、Conditionsノード、ClassificationノードはAI Studio会話フローの「主役」であり、ほとんどのフローは主にこの4種類のノードを使用して構築されます。しかし、これらのノードでは提供できない追加機能が必要になる場合もあります。幸いなことに、AI Studioにはより専門的なノードの強力なサポートが用意されています。私のフローでは、これらのノードをいくつか使用しました!

パラメータ・ノードの設定

パラメータは、Collect Inputノードのコンテキストですでに簡単に遭遇している。これらのノードでは、パラメータの値はユーザー入力に従って設定されます。しかし、パラメータに特定の値を設定したい場合もあります。

私のアドベンチャーフローでは、主人公がアイテムを拾ってクエストに役立てる場面がある。このような状況では、Set Parameterノードを使用して、アイテムを拾ったことを記録した。

A screenshot showing an the setup for a Set Parameter node, in this case the 'Pick Up Bow' parameter with a Parameter name of 'QUEST_BOW' and a Value of 'True'AI Studio screenshot: Set Parameter Node

詳細 パラメータノードの設定.

SMS送信ノード

SMSノードは、ユーザーにSMSメッセージを送信するために使用されます。番号(国コードを含む)と送信するメッセージを指定する必要があります。

現実の世界では、特定のクエリに対してヘルプページやドキュメントへのリンクを送信するような場合に役立つ。

私の物語では、冒険者が城に入るために秘密のパスワードが必要な場面でこのノードを使った。SMSでパスワードが送られてきて、それを入力プロンプトに答えることで城の扉が開く。

A screenshot showing an the setup for a Send SMS node, in this case the Send Secret Password part of the flow, showing the From, To, and Body fieldsAI Studio screenshot: Send SMS Node

また、同様の目的を持つSend Emailノードもある。

についての詳細は SMS送信ノードおよび メール送信ノード.

カスタム・コード・ノード

AI Studioはほとんどノーコードのソリューションであり、直感的なドラッグ&ドロップのインターフェースを使用することで、誰でもプログラミングの知識がなくても、パワフルでフル機能の会話フローを設定することができます。しかし、特定のカスタマイズされたロジックに基づいてパラメータ値を設定または操作したい場合もあります。そこでカスタムコードノードの出番です!

Custom Codeノードを使用すると、JavaScriptコードを使用して特定の値を生成し、それをフロー内の他の場所で使用できるOutput Parameterの値として設定することができます。

カスタムコード・ノードは、私のアドベンチャー・ストーリーのいくつかの場所で使いました。そのうちの1つは、ユーザーから提供された携帯番号と国コードから先頭のゼロを取り除き(もしあれば)、それらを1つの値にまとめて出力パラメータに割り当て、それをSMS送信ノードで秘密のパスワードを送信するのに使いたいところでした。

A screenshot showing an the setup for a Custom Code Node, in this case the Set SMS Number part of the flow, which uses Javascript type conversion to removing leading zeroes from the values of the $MOBILE_NUMBER and $COUNTRY_CODE paramters, and then combines them into a single ouput parameter SMS_TO_NUMBERAI Studio screenshot: Custom Code Node

私のフローにおけるカスタムコード・ノードのもうひとつの使い方は、ドラゴンとの戦闘中にサイコロを振る真似をすることだった。

A screenshot showing an the setup for a Custom Code Node, in this case the Roll Dice part of the flow, which uses Math.random to determine the outcome of a battle with the dragon, and then sets the result as the value of the output parameter DRAGON_DEFEATEDAI Studio screenshot: Custom Code Node

Custom Codeノードの使用例は他にもたくさんあります。

カスタムコード カスタムコード・ノード.

コンテキスト・スイッチ・ノード

Context Switchノードは、その名前が示すとおりの働きをする。現在のコンテキストからまったく別のコンテキストに切り替えるのだ。実際のユースケースとしては、顧客が注文を追跡したり、アカウントの詳細を更新したりする自動化されたフローを通過するときが考えられる。

Classificationノードと同様に、Context SwitchノードはIntentsに基づいて動作する。

私の流れでは、怖い森を旅したり、廃墟を探検したり、ドラゴンと戦ったりすることが、少し負担になるかもしれない状況を想像した!

A screenshot showing an example of a flow starting with a context switch node. In this case the flow begins with the 'Run away!' context switch node, followed by a Speak node and then an End Call node AI Studio screenshot: Context Switch Node

コンテキスト・スイッチ・ノード コンテキスト・スイッチ・ノード.

エンド・コール・ノード

すべてのストーリーと通話は、ある時点で終了しなければならない。End Call ノードの目的は、通話を終了することです。Voice Callフローの場合、フローの各「分岐」の最後にEnd Callノードを配置する必要があります。

エンド・コール・ノード 通話終了ノード.


魔法の森をさまよい、フェアリーと出会い、ドラゴンと戦う冒険に出かけてみませんか?以下のNumbersに電話して、AI StudioのVoice Flowを試してみてください:

  • 英国+44 (0)7418 371898

  • 米国+1 (0)201 464 3585

  • オーストラリア: +61 (0)485828854

冒険を楽しみ、幸運を祈る!

Vonage AI Studioで独自の会話フローを作成してみませんか?始めるのはとても簡単です!ログイン Vonageダッシュボードにアクセスし AIスタジオ.

また、私のフローでは使用しなかったノードや統合もいくつかあるので、この記事では説明していない。これらの詳細やAI Studioの使い方全般については AI Studioドキュメント.

私たちは常に地域社会の参加を歓迎しています。お気軽に VonageコミュニティSlackまたは ツイッター.

シェア:

https://a.storyblok.com/f/270183/373x376/e8d3211236/karl-lingiah.png
Karl LingiahRuby開発者支援

KarlはVonageのDeveloper Advocateで、RubyサーバSDKのメンテナンスとコミュニティの開発者エクスペリエンスの向上に注力しています。彼は学ぶこと、ものを作ること、知識を共有すること、そして一般的にウェブ技術に関連することが大好きです。