Developer Dashboard

CGS(Context Generation Server)

Expert Agentからアクセスする外部エンドポイントと、そのバックエンドのアプリケーションを指します。

  • Expert Agentから送信されてきた情報をもとにタスクを実行し、対話文の形式で結果をExpert Agentに返します。
  • Expert Agentごとに、エンドポイントとして登録します。Expert Agentは、登録されたエンドポイントに対して、Intentを送信します。
  • Expert AgentからCGSに対して送信されるリクエストおよび、Expert AgentがCGSから受け取れるレスポンスの形式は決まっています(CGSのインターフェイスモデルを参照)。

参考

外部SNS(ソーシャル・ネットワーク・サービス)をエンドポイントし、OAuth認証を利用することもできます。詳しくは、SNS連携も参照してください。

CGSの種類

CGSには、DDSにあらかじめ用意されている「システムCGS」と、開発者が独自に用意する「オリジナルCGS」があります。システムCGSとオリジナルCGSは、Endpointとして登録する際の入力仕様が異なります。

システムCGS

DDSには、以下のCGSがあらかじめ用意されています。

Expert Agent名 説明 利用条件
weatherBot 天気を調べることができます。

slotに場所と日時両方のEntity設定が必要です。

  • slot名:location、Entity:@sebastien.location
  • slot名:date、Entity:@sebastien.datetimeまたは@sebastien.date
newsBot ニュースを検索できます。

slotに名詞のEntity設定が必要です。

  • slot名:noun、Entity:@sebastien.noun
wikipediaBot ウィキペディアで用語検索ができます。

slotに名詞のEntity設定が必要です。

  • slot名:noun、Entity:@sebastien.noun
knowledgeBot ナレッジを検索できます。 ユーザーの発話をそのまま利用するため、slotの設定は必要ありません。
trendwordBot トレンドワードを検索できます。

slotに名詞のEntity設定が必要です。

  • slot名:noun、Entity:@sebastien.noun

<Endpoint登録時の入力仕様>

@sebastien.(Expert Agent名)」の形式でExpert Agentに登録します。

例:

システムCGS:URL入力仕様
システムCGS:Endpoint Setting

オリジナルCGS

一般公開されているCGSを使用したり、独自のCGSを開発することができます。

<Endpoint登録時の入力仕様>

(CGSのベースURL)(エンドポイント名)」の形式でExpert Agentに登録します。

例:

オリジナルCGS:URL入力仕様
オリジナルCGS:Endpoint Setting

<制限事項>

  • Content-Type: application/json
    Request Body:
    {
    	"bot_id": "test",
    	"user_id": "test",
    	"lang": "ja-JP",
    	"args": {
    		"utterance": "test",
    		"intent": "default"
    	}
    }
    
    • IPアドレスは、今後追加/変更される可能性があります。

CGSのインターフェイスモデル

リクエスト

Expert AgentからCGSに対して送信されるリクエストの形式は、以下のとおりです。

Method: POST
Headers: "Content-type: application/json"
Request Body:
{
	"bot_id":"{内部的に払い出されたID}",
	"user_id":"{ユーザ識別ID}",    ※1
	"lang":"ja-JP",
	"args":{
		"utterance": "{ユーザ発話}",
		"intent":"{Intent名}",
		"{slot名}":["{slotのentity}","{slotのentity}",…],    ※2 ※3
		…
	}
}
  • ※1: 「user_id」は、UDSのShadow IDです。
  • ※2: Slotは、args内に「key:value」の形式で並列します。
  • ※3: Entityとして抽出されたキーワードが配列形式で設定されます。

レスポンス

Expert AgentがCGSから受け取れるレスポンスの形式は、以下のとおりです。

Response Body:
{
	"error_code":"success",
	"status":"true",
	"bot_id":"{内部的に払い出されたID}",
	"user_id":"{ユーザ識別ID}",
	"params":{
		"status":"true",
		"talkend":"true|false", ←未設定でも可
		"message":"{CGS側が返すシステム発話}",
		"option":{    ※2
			"balloon":[
			…
			]
		}
	}
}
  • ※1: Expert Agentは、CGSからのメッセージをそのままユーザーに回答します。
  • ※2: 「option」にはメタ情報を記述します。フィールド定義やクライアント側アプリのメタ情報への対応状況について詳しくは、こちらを参照してください。