質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.33%

  • Node.js

    2013questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Alexaのダイアログモデルを使ったJSONファイルに対してのLamda関数の実装方法について

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 169

failurer

score 0

 前提・実現したいこと

alexaで受付システムを作っています。
Lambda関数実装に苦戦しています。
ダイアログモデルを使うと、対話中の全てのスロットに値が入っていないとインテントが終わらないという解釈です。アレクサが相手に聞き出すとこまではうまくいっていると思っています。uketuke.jsにアレクサに会話を任せてアレクサ主体で対話を完結させるにはどのような処理を書かなければいけないのでしょうか?
jsでIntentの名前やセッションアトリビュートの名前がjsonに記述されているものと一致していないことは把握しています。

 該当のjsonファイル

{
    "interactionModel": {
        "languageModel": {
            "invocationName": "受付",
            "intents": [
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": [
                        "キャンセル"
                    ]
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": [
                        "ヘルプ",
                        "助けて"
                    ]
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": [
                        "ストップ",
                        "やめて"
                    ]
                },
                {
                    "name": "AcceptanceIntent",
                    "slots": [
                        {
                            "name": "corporation",
                            "type": "AMAZON.Corporation",
                            "samples": [
                                "{corporation} です",
                                "{corporation} "
                            ]
                        },
                        {
                            "name": "picname",
                            "type": "AMAZON.Person",
                            "samples": [
                                "{picname} さんよろしくお願いします",
                                "{picname} さん",
                                "{picname} さんお願いします"
                            ]
                        },
                        {
                            "name": "visitorname",
                            "type": "AMAZON.Actor",
                            "samples": [
                                "{visitorname}",
                                "{visitorname} です",
                                "{visitorname} と申します"
                            ]
                        },
                        {
                            "name": "visitornumber",
                            "type": "AMAZON.NUMBER",
                            "samples": [
                                "{visitornumber}",
                                "{visitornumber} 人",
                                "{visitornumber} 人です"
                            ]
                        }
                    ],
                    "samples": [
                        "受付を開いて {picname} を呼び出して {corporation} の {visitorname} です {visitornumber} です"
                    ]
                },
                {
                    "name": "AMAZON.YesIntent",
                    "samples": [
                        "はい"
                    ]
                },
                {
                    "name": "AMAZON.NoIntent",
                    "samples": [
                        "いいえ"
                    ]
                }
            ],
            "types": []
        },
        "dialog": {
            "intents": [
                {
                    "name": "AcceptanceIntent",
                    "confirmationRequired": true,
                    "prompts": {
                        "confirmation": "Confirm.Intent.766062147096"
                    },
                    "slots": [
                        {
                            "name": "corporation",
                            "type": "AMAZON.Corporation",
                            "confirmationRequired": true,
                            "elicitationRequired": true,
                            "prompts": {
                                "confirmation": "Confirm.Slot.702387998667.634421989410",
                                "elicitation": "Elicit.Slot.766062147096.1510698603114"
                            }
                        },
                        {
                            "name": "picname",
                            "type": "AMAZON.Person",
                            "confirmationRequired": true,
                            "elicitationRequired": true,
                            "prompts": {
                                "confirmation": "Confirm.Slot.702387998667.1016225193224",
                                "elicitation": "Elicit.Slot.702387998667.1016225193224"
                            }
                        },
                        {
                            "name": "visitorname",
                            "type": "AMAZON.Actor",
                            "confirmationRequired": true,
                            "elicitationRequired": true,
                            "prompts": {
                                "confirmation": "Confirm.Slot.702387998667.564409773127",
                                "elicitation": "Elicit.Slot.702387998667.564409773127"
                            }
                        },
                        {
                            "name": "visitornumber",
                            "type": "AMAZON.NUMBER",
                            "confirmationRequired": true,
                            "elicitationRequired": true,
                            "prompts": {
                                "confirmation": "Confirm.Slot.702387998667.1369613246462",
                                "elicitation": "Elicit.Slot.702387998667.1369613246462"
                            }
                        }
                    ]
                }
            ]
        },
        "prompts": [
            {
                "id": "Confirm.Slot.702387998667.634421989410",
                "variations": [
                    {
                        "type": "PlainText",
                        "value": "お客様の会社名は {corporation}株式会社でお間違えないですか?"
                    },
                    {
                        "type": "PlainText",
                        "value": "お客様の会社名は 株式会社 {corporation} でお間違えないですか?"
                    }
                ]
            },
            {
                "id": "Elicit.Slot.702387998667.1016225193224",
                "variations": [
                    {
                        "type": "PlainText",
                        "value": "弊社の担当者の名前を教えていただけますか?"
                    }
                ]
            },
            {
                "id": "Confirm.Slot.702387998667.1016225193224",
                "variations": [
                    {
                        "type": "PlainText",
                        "value": "担当者の名前は {picname} でよろしいでしょうか?"
                    }
                ]
            },
            {
                "id": "Elicit.Slot.702387998667.564409773127",
                "variations": [
                    {
                        "type": "PlainText",
                        "value": "お客様のお名前を教えていただけますか?"
                    }
                ]
            },
            {
                "id": "Confirm.Slot.702387998667.564409773127",
                "variations": [
                    {
                        "type": "PlainText",
                        "value": "お客様のお名前は {visitorname} でお間違えないですか?"
                    }
                ]
            },
            {
                "id": "Elicit.Slot.702387998667.1369613246462",
                "variations": [
                    {
                        "type": "PlainText",
                        "value": "お客様のご来社人数を教えていただけますか?"
                    }
                ]
            },
            {
                "id": "Confirm.Slot.702387998667.1369613246462",
                "variations": [
                    {
                        "type": "PlainText",
                        "value": "お客様のご来社人数は {visitornumber}人でお間違えないですか?"
                    }
                ]
            },
            {
                "id": "Confirm.Intent.766062147096",
                "variations": [
                    {
                        "type": "PlainText",
                        "value": "{corporation} の {visitorname} 様。ご来社人数は {visitornumber} 人、呼び出すのは担当 {picname} でお間違えないですか?  "
                    }
                ]
            },
            {
                "id": "Elicit.Slot.766062147096.1510698603114",
                "variations": [
                    {
                        "type": "PlainText",
                        "value": "お客様の御社名を教えていただけますか?"
                    }
                ]
            }
        ]
    }
}


文字数制限があるので作成したuketuke.jsは「Alexaのダイアログモデルを使ったJSONファイルに対してのLamda関数の実装方法について2」のほうへ記載いたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

同じタグがついた質問を見る

  • Node.js

    2013questions

    Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。