2

私は現在、Nodeを使用して最初のボットを作成していますが、これを実現する方法について少し混乱しています。問題は、私がこの種のものに使用すべき最良のパターンとパターンの名前は何ですか?

基本的に、人は主題と話者を聞くことができます。

var test = person("ask_name","hallo person you are special");
console.log(test); // should return thanks!

var test = person("ask_name","hallo person you are dumb as the bird");
console.log(test); // should return i hate you!

function person(ability, body) {

  console.log(ability,body);
  var ability_name = "ability_" + ability;
  console.log(ability_name,typeof ability_name); // ignore all of this, trying something
  if (typeof ability_name) {};

  // ability list array
  var ability = [];

  // Search for ability
  // not done

  var say_bad = function() {
    this.listen_subject = 'ask_name';
    this.listen_body = 'you are dumb';
    return "i hate you!"
  }

  var say_good = function() {
    this.listen_subject = 'ask_name';
    this.listen_body = 'you are special';

    return "thanks!"
  }
}

申し訳ありませんが、コードを完成させていませんが、これは私が行くことができる最も遠いです。

4

1 に答える 1

0

会話のロジックについて話しているのであれば、一連の責任が進むべき道のように思えます。そうは言っても、それは応答ツリーの実装にのみ適しています。さまざまなニーズがあるかもしれません。

動作する方法は次のとおりです。ロジック ツリー内のすべてのノードには、このメソッドがあります。

bool consider(utterence, history);

ノードまたはそのサブノードの 1 つが状況を処理した場合、このメソッドは true を返します。

いくつかのトピック検出器と一般的な「良い答えが思いつかない」、および多数の専門的なレスポンダーを実装します。

ロジックは次のようになります。

(weatherDetector は発話、履歴を考慮します) (トピックが天気であると判断します) (天気に関する会話を処理する一連のオブジェクトに渡します)

また

(weatherDetector は発話、履歴を考慮します) (トピックが天気ではないことを決定します) (一連のトピック検出器の次へ渡します) (genericFunnyResponder は発話、履歴を考慮します) (ランダムな風変わりな回答を選択します)

于 2012-06-30T06:03:53.617 に答える