2017-01-05 12 views
2

私はシンプルなテストカスタムAlexaスキルを作りたいと思っていますが、問題は何か分かりません。たぶん、経験豊富な人が私が逃していることを知っているのだろうAlexa Echo Dot - ASKのスキルの問題

呼び出し名

ホームシステム

テントスキーマ

{ 
    "intents": [ 
    { 
     "intent": "AMAZON.HelpIntent", 
     "slots": [] 
    }, 
    { 
     "intent": "TestIntent", 
     "slots": [ 
     {"name": "test", "type": "AMAZON.NUMBER"} 
     ] 
    } 
    ] 
} 

サンプル発話

TestIntent set state {test} 
TestIntent add state 

私は自分の自己ホスト型サーバー上に自分の小さなPythonサーバーを作成しましたが、私はすでに同じシステム上で働いているニュースフラッシュスキルを持っています。私はドキュメンテーションを見て、チュートリアルを読んで、私がやるべきことをやったように見えます。

サービスSimulatorでとエコーの両方LaunchRequest作品:私は取得

結果がこれです。予想されるJSONを使ってHTTP POSTを起動すると、期待される音声応答が得られます。

しかし、IntentRequestは、サービスシミュレータでのみ動作し、エコーでは動作しません。私は例えば "アレクサホームシステム状態8を設定する"と言う、私のサーバーに要求が行われていない、エコーはただ音を出し、それだけです。

これをデバッグする方法はわかりません。スキルは米国のスキルで、私のエコーはUSモードです。私はヨーロッパと北アメリカの両方でエンドポイントを設定しようとしました。他のトリガーの言葉、スロット、スロットなどは試していません...もちろん、設定 - >履歴にチェックを入れて、デバイスが私を正しく理解していることを確認してください。

次に何を試していいですか?これをデバッグするには?

+0

echosim.ioでは機能しますか? 、なぜラムダサーバを使用しないのですか? –

+0

@ u.gen echosim.ioは私のエコーを完全に同じ問題をシミュレートします。それは私の自己をホストするだけでずっと簡単で速く聞こえました。しかし、それは試すものです。ほとんど私を混乱させるのは、LaunchRequestが動作することですが、IntentRequestは応答やサーバーへの要求を引き起こしません。 – nsg

+0

このツールを使用してローカルの開発環境をセットアップしてみてください。https://github.com/bespoken/bstとlambdasを使用すると、リクエストがなぜ行われていないのかがわかります。 http://docs.bespoken.tools/en/latest/tutorials/tutorial_lambda_nodejs/ –

答えて

2

問題が見つかりました。古典的な問題でした。PEBCAK(問題は椅子とキーボードの間に問題があります)。

私は、より正確にインテント(トリガーワードとインテントの両方を含む単一の文章)を呼び出す方法をもっと正確に説明しなければならなかったことを忘れていました。有効及び実施例の例は、次のとおり

Alexa, ask home system to set state nine 
Alexa, set state twelve using home system 
Alexa, tell home system set state one 

Iは、代替2段階呼び出しを使用し、それが働いていたことに気づいたとき、私はこれを実現します。それは私がスキルではなく、バックエンドを呼び出した方法でなければなりませんでした:

Alexa, open home system 
(Alexa responds, and listens for the command) 
Set state to eight 
(Intent triggered, Alexa responds) 
  • ないセッションは終了します場合は、上記の最初の要求は、shouldEndSession: falseLaunchRequest
  • LaunchRequest応答であります。これは私のコードでquestion(...)にマップされています。

スキルをトリガーするより多くの方法はたくさんありますが、完全なリストは、このページを参照してください。最後にフィードバックのためにあなたu-genに感謝https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/supported-phrases-to-begin-a-conversation(テーブルにスクロールダウン)

を、bstは(興味深いプロジェクトでしたそれを試したことはありません)、la​​mbdaのようなホスティングされたソリューションを使用すると、本当に役に立ちます。しかし、文書のおかげで私はコードを簡略化したプロジェクトであるフラスコ・アスクを見つけました。

最後に、誰かがそれを試してみたいと思ったら、私のテストプロジェクトのpython部分。

#!/usr/bin/env python 

from flask import Flask, render_template 
from flask_ask import Ask 
from flask_ask import statement, question, convert_errors 

app = Flask(__name__) 
ask = Ask(app, '/ask/') 

@app.route('/') 
def hello_world(): 
    return 'Hello, World!' 

@ask.launch 
def launched(): 
    return question('Welcome to Foo') 

@ask.intent('TestIntent') 
def hello(): 
    return statement('Hello, world') 

@ask.session_ended 
def session_ended(): 
    return "", 200 

if __name__ == '__main__': 
    app.run(debug=True, host="0.0.0.0", threaded=True) 
+0

"Alexa、home system set state nine"はシミュレータが、私は少なくとも "アレクサ、家のシステムに状態9を設定する"と言っていた。知っておいてよかった! – nsg

関連する問題