発話競合検出API
以下の操作を使用して、スキルの対話モデルで複数のインテントにマッピングされている発話を見つけることができます。発話の競合の種類と、開発者コンソールで発話の競合を表示する方法については、モデルの発話競合の検出を参照してください。
発話の競合の取得を開始するには、 get conflictsを使用します。競合検出ジョブが結果を返すまでに、しばらく時間がかかることがあります。競合検出ジョブのステータスはいつでも取得できます。ステータスが COMPLETED
を返したら、get conflictsを使用して結果を確認します。
API endpoint
このAPIのエンドポイントは、https://api.amazonalexa.comです。すべてのリクエストにはAuthorizationヘッダーが必要であり、その値にはLogin with Amazonから取得したアクセストークンが入ります。
競合検出ジョブのステータスを取得する
リクエスト
GET /v1/skills/{skillId}/stages/{stage}/interactionModel/locales/{locale}/versions/{version}/conflictDetectionJobStatus
パラメーター
名前 | 位置 | 説明 | 型 | 必須 |
---|---|---|---|---|
skillID |
URIパス | 発話の競合を表示するスキルの識別子です。 | 文字列 | ◯ |
stage |
URIパス | スキルモデルのステージです。development にする必要があります。 |
文字列 | ◯ |
locale |
URIパス | スキルモデルのロケール(例:ja-JP )です。 |
文字列 | ◯ |
version |
URIパス | 対話モデルのバージョンです。 | 文字列 | ◯ |
応答
正常な応答では、ジョブのステータスが表示されます。ステータスがCOMPLETED
の場合、応答には発話の競合の数がtotalConflicts
として表示されます。ステータスがCOMPLETED
でない場合、応答はtotalConflicts
を省略します。
{
"status" : "COMPLETED",
"totalConflicts": 1
}
名前 | 説明 | 型 |
---|---|---|
status |
発話の競合を検出するジョブのステータスです。 | 文字列です。値には、FAILED 、IN_PROGRESS 、COMPLETED があります。 |
totalConflicts |
発話の競合の数です。ステータスがCOMPLETED の場合にのみ返されます。 |
長整数 |
スキルの競合を取得する
リクエスト
GET /v1/skills/{skillId}/stages/{stage}/interactionModel/locales/{locale}/versions/{version}/conflicts?nextToken=String&maxResults=Integer
パラメーター
名前 | 位置 | 説明 | 型 | 必須 |
---|---|---|---|---|
skillID |
URIパス | 発話の競合を表示するスキルの識別子です。 | 文字列 | ◯ |
stage |
URIパス | スキルモデルのステージです。development にする必要があります。 |
文字列 | ◯ |
locale |
URIパス | スキルモデルのロケール(例:ja-JP )です。 |
文字列 | ◯ |
version |
URIパス | 対話モデルのバージョンです。 | 文字列 | ◯ |
nextToken |
クエリ文字列 | 同じ結果セットから引き続き結果を返すためのトークンです。 | 文字列 | ✕ |
maxResults |
クエリ文字列 | 一度に表示する結果の最大数です。値は1以上1000以下である必要があります。デフォルト値は100です。 | 整数 | ✕ |
Response
正常な応答では、発話の競合の詳細が表示されます。
{
"metadata" : {
"resultset": {
"nextToken": String,
"totalResults": Integer
}
}
"results": [
{
"conflictingUtterance": String,
"conflicts" : [
{
"sampleUtterance": String,
"intent" : {
"name": String
"slots": {
"<slotName>": {
"type" : String,
"value" : String
}
}
}
}
]
}
],
"_links":{
"self" : {
"href" : String // /v1/skills/{skillId}/conflicts
},
"next" : {
"href" : String // /v1/skills/{skillId}/conflicts?nextToken={nextToken}&maxResults=100
}
}
}
名前 | 説明 | 型 |
---|---|---|
nextToken |
結果を引き続き返すために使用できるトークンです。 | 文字列 |
totalConflicts |
発話の競合の合計数です。 | 整数 |
conflictingUtterance |
複数のインテントにマッピングされる発話(スロット値を含む)です。スロット値は小文字の発話形式です(たとえば、値「4」は「四」と表示されます)。 | 文字列 |
sampleUtterance |
対話モデルで提供されるサンプル発話です。 | 文字列 |
AMAZON.SearchQuery
またはAMAZON.LITERAL
スロットタイプを使用する発話間の競合は含まれないことに注意してください。
応答の例
次の応答は、あるインテントのビルトインスロットタイプと別のインテントのカスタムスロットタイプとの間で、値「オレンジ」が重複している場合の発話の競合を示しています。
{
"metadata": {
"resultset": {
"nextToken": "XSDSW123SW73GDW98DHOI",
"totalResults": 1
}
}
"results": [
{
"conflictingUtterance": "オレンジが欲しい",
"conflicts":[
{
"sampleUtterance": "{colora}が欲しい",
"intent": {
"name": "customa",
"slots":{
"colora": {
"type": "AMAZON.Color",
"value": オレンジ
}
}
}
},
{
"sampleUtterance" : "{fruit}が欲しい"
"intent": {
"name": "customb",
"slots": {
"fruit": {
"type" : "fruit",
"value" : オレンジ
}
}
}
}
]
}
]
}
次の応答は、カスタムインテントとビルトインインテント間の発話の競合を示しています。Alexaはカスタムインテントをビルトインインテントよりも優先するため、この例では「ヘルプ」はビルトインインテントではなく、常にカスタムインテントに解決されます。発話をビルトインインテントではなくカスタムインテントにマッピングする場合は、この競合は発生しません。
{
"metadata": {
"resultset": {
"nextToken": "hwegwy8t8w7qrsbgfisy97fyhufiw8y",
"totalResults": 1
}
}
"results": [
{conflictingUtterance": "ヘルプ",
"conflicts":[
{
"sampleUtterance": "ヘルプ",
"intent": {
"name": "helpCustomIntent"
}
},
{
"intent": {
"name:": AMAZON.HelpIntent"
}
}
]
}
]
}