2016-04-26 10 views
3

私はwit.aiにサンプルアプリケーションを書こうとしています。私はhttps://wit.ai/docs/quickstartに示されているnode.jsクライアントを使ってクイックスタートアプリを追跡しました。 そこに示されている例は、カスタムアクションが1つしかありません。しかし、新しいストーリーと新しいストーリーを追加しようとすると、ストーリー間でコンテキストが共有されていることがわかります。これは間違った動作を引き起こしています(別のストーリーのカスタムアクションが実行されています)。wit.aiのNode.jsクライアントが複数のカスタムアクションを呼び出す

カスタムアクションやストーリーが複数ある例はありません。 wit.aiのWebサイト以外のnode.jsやpythonの例はありますか?

答えて

3

あなたは、各セッションのコンテキストを作成する必要があり、これは(https://github.com/wit-ai/node-wit/blob/master/examples/messenger.jsから)簡単な例です:

const findOrCreateSession = (fbid) => { 
    let sessionId; 
    // Let's see if we already have a session for the user fbid 
    Object.keys(sessions).forEach(k => { 
    if (sessions[k].fbid === fbid) { 
     // Yep, got it! 
     sessionId = k; 
    } 
    }); 
    if (!sessionId) { 
    // No session found for user fbid, let's create a new one 
    sessionId = new Date().toISOString(); 
    sessions[sessionId] = { 
     fbid: fbid, 
     context: {   // New context per session id. 
     _fbid_: fbid 
     } 
    }; // set context, _fid_ 
    } 
    return sessionId; 
}; 

あなたはhttps://github.com/hunkim/Wit-Facebookで働い例を見つけることができます。

3

私はエンジンがコンテキストをその側に保存していないとします。 「マージ」機能は、アプリケーションロジックに応じてエンティティをさまざまな方法でマージする必要があります。

ストーリーが完成したら、次のストーリーのコンテキストをクリアする必要があります。 組み込み関数clear-contextを追加し、この関数をwitからアクションとして呼び出します。

私のexampleをチェックしてください。 これは公式のAPIではありませんが、http apiがどのように動作するのか理解できます。

関連する問題