私は現在、特定のタスクを実行するエージェントを作成するために api.ai を使用していますが、私が答えていない質問の 1 つは、チャット中に何かを学習させることができるかということです。私の名前は「ジョン・シナ」であり、彼女はそれを保存する必要があり、私が彼女にもう一度尋ねるたびに、ボットは私にそう答えるはずです. api.ai webにログインして手動でエントリを追加する方法があることは知っていますが、それは役に立ちません。プログラムまたは自動的に回避策はありますか? 私が練習に使っているファイルはgithubにあります。そしてここに動作中のDEMOがあります
2 に答える
基本的に、ボットが事実を「学習」する必要があります。これを実現するにはさまざまな方法がありますが、最近最も一般的な方法は、知識をセマンティックな「トリプル」に整理し、その知識をグラフ リポジトリ (Neo4j、Titan、Spark Graph など) に格納することです。あなたの例では、「私の名前はJohn Cenaです」は、(「anubava」、「Name」、「John Cena」)のようなトリプルに変換されます。そうすれば、次に anubhava としてログインして「What is my name?」と尋ねると、「John Cena」を返すグラフ検索に変換されます。これを達成することは簡単ではなく、かなりの量の微調整が必要になることに注意してください。詳細については、こちらとこちらを確認してください。
最後に、(私が知っている) 最も完全なソリューションはサーバー側のソリューションです。ナレッジ ベース全体をモバイル デバイスに常駐させたい場合は、おそらくそこにあるリソースをインスピレーションとして使用し、組み込みデータベースを使用して独自の Linked Data リポジトリを構築できます。
お役に立てれば。幸運を。
ユーザーの名前を保存して呼び出すには、いくつかの基本的なデータ永続化機能を備えた Webhook をセットアップする必要があります。データベースまたはキーと値のストアは正常に機能します。
内訳は次のとおりです。
- ユーザーの名前を取得するインテントの Webhook フルフィルメントを実装します。Webhook は、一意の識別 ID とともに名前を格納する必要があります。この ID は、
sessionId
への呼び出しで、またはコンテキスト パラメータとしてフロントエンドから提供する必要があります/query
。 - ユーザーの名前を読み取るインテントの Webhook フルフィルメントを実装します。Webhook は ID で名前を検索し、ユーザーに名前を伝える応答を返す必要があります。
フルフィルメント Webhook を作成するための高度なドキュメントは次のとおりです。