このモデルでは、外部プラグイン機能を備えた基本的な AI インターフェイスを作成しました。インターフェイス AI_Contracts により、AI とのインターフェイスが可能になります。インターフェイスを実装し、コンパイルされた DLL を APPPlugins フォルダーに配置すると、AI_Interface がプラグインを検出して呼び出し、ユーザーに返される応答を取得できるようになります。プロジェクトは 4 段階で設計されました。各段階またはマイルストーンにより、チャットボットの開発と拡張が可能になり、一般公開に値する充実した製品になります。
ここでは、インターフェイスには、テキストを介した入出力のための基本的な設計が与えられています。 CHATの履歴を維持する。このインターフェイスにより、インターフェイスの基本的なテストが可能になります。アバターは追加されていません。これは、アバターが本質的なものではなく、表面的なものであることにも起因します。最初の段階では、主に機能インターフェイスの作成に焦点を当てます。
これは、ユーザーが AI で実行できるスクリプトを設計できるようにするメカニズムです。初期段階では;メカニシムの提供が主な焦点です。使用される最初のインターフェイスは、実装に必要なクラスの構造のみを提供します。ユーザー関数は、指定された場所で見つかったこのタイプのすべてのオブジェクトのメイン スクリプトによって呼び出されます。これにより、広範な拡張性が可能になります。ここでは、ヘルパー スクリプトとして使用するために、拡張機能と内部関数、または AI フレームワークをユーザーに提供できるかどうかもポイントになります。
AI の最初のリリースでは、インターフェイスのテストを可能にするサンプル プラグインも作成されます。 SAMPLE_PLUGIN これは、さらにプラグインを作成するためのテンプレートも提供します。 ###注: 小さなバグです!!!! AI_Contracts.Dll はプラグインと一緒に Plugins フォルダーに展開する必要がありますか?プラグイン分離のための相対参照。プラグインがアプリケーションと同じフォルダーにある場合、アプリケーションはそれ自体を読み取り続けようとしてクラッシュするため、別のフォルダーが必要でした。 MAN EXE は AI_Contacts DLL にもアクセスする必要があります。
ダブル展開!
この段階では、質問と回答のデータベースを提供することで、内部記憶機能を作成します。ここでは、アプリケーションのユーザーに開始点を提供する簡単な質問と回答スタイルの応答を作成できます。ただし、各ターンがデータベースに保存される実装もあります。この反復では、SUPERVISED メソッドに重点を置くことが選択されます。データベース エディターを提供する必要があります。ただし、これは後の段階で提供されます。実行順序は、最初にプラグイン、次に質問と回答となり、応答検出の優先順位付けが可能になります。 AI が応答しない場合には、フォールバック応答も必要になります。
ステート マシンは、感情状態を保持するメカニズムを提供できます。この反復では、感情状態オブジェクトの構造を提供するためにインターフェイスが使用されました。各状態はハンドラーにロードされます。スクリプトのターンごとに感情が検出され、現在保持されている感情をポジティブまたはネガティブに調整して、感情の具体化を可能にします。ここでは、感情状態が変化したときに一般的な応答が与えられます。他の形式の状態も、ステート マシンを使用してターンごとに継承できます。以前のプログラミング方法では、多くの場合「移動変数」が利用されていましたが、状態から状態を感情的スキューの有限商の値に置き換えることが多かったです。 IE 幸せ = 0.78 、悲しい 0.23 ;このテクニックでは感情の激しさは考慮されません。感情の強度が増加します。つまり、次のターンでハッピーが検出された場合、ハッピーが増加します。ただし、次の感情が単に中立的な場合は減少します。強度のレベルが値 0 に減少し、状態がニュートラルに変化するまで。
プラグインをコーディングしてコミレーションする機能は、チャットボット インターフェイスによって提供されます。ここでは、プラグインを作成するためのタブ付きインターフェイスを提供しました。ステージ 1 で実装したテンプレートは、ユーザーが編集および拡張できるスターター サンプル スクリプトを提供するために使用されます。 SAVE SCRIPT と COMPILE SCRIPT が提供されています。
質問ファイルと回答ファイルを編集するためのデータ エディタもテーブルごとに作成されます。
ここでは、コードをリファクタリングして機能を整理し、UserScripting フレームワークに拡張します。リファクタリング プロセスとコメント機能により、後でアプリケーションを編集および改良することができます。ユーザーに理解を提供するだけでなく、
音声認識は時間の経過とともに改善されていますが、リッチ UI を提供するには音声も必要になります。主にSpeech out用に追加されます。
いくつかのグラフィカルな改善とテーマがアプリに追加されます: (おそらく LCARS _ スタートレック デザイン!)
AI_Contracts コンポーネントのデプロイメントと集中アクセスについて: NUGET を SpydazWb.AI.Contracts としてライブラリを集中管理することも決定されました。これにより、プラグインの作成と最適な配信のためにさらなる更新を一元化できるようになります。この時点で、AI_Contracts ソースコードもプロジェクトから削除され、NUGET 参照アセンブリとして追加されました。 AI_Contracts プロジェクトは、UI やプラグインとは別に開発できるようになりました。プラグインは、Nuget とは別に集中ソース上に Nuget パッケージとしてデプロイすることもできます。つまり、一元化されたウェブサイトです!