拡張機能
Extensions(拡張機能)は、Cognigy Flowエディタを新しいNodeで拡張する方法です。拡張機能には複数のFlow Nodeが含まれ、インストールされるとFlowエディタに表示されます。
拡張機能マーケットプレイス
Cognigy Extension Marketplace(コグニジー拡張機能マーケットプレイス)が設定されていれば、様々な組み込み済みの拡張機能をワンクリックでインストールできます。
- [Marketplace]セクションから拡張機能を選択すると、既にインストールされている拡張機能を選択した場合と同様に、詳細情報が表示されます。
- URL をコピーして別のタブで開くことや、ページを再読み込みすることができます。
- 検索フィールドで拡張機能を検索できます。
- インストール済みの拡張機能をアンインストールできます。
Cognigy.AI Marketplaceで利用可能なMarketplace拡張機能をオンラインで閲覧することもできます。
カスタム拡張機能の開発
Cognigyでは、独自の拡張機能を開発することで、誰でもCognigy.AIの機能を拡張することができます。拡張機能はJavaScriptまたはTypeScriptモジュールで、Cognigy.AI内でFlow Nodeとして公開することができます。拡張機能は、他社APIとの統合、複雑なロジックの実行、ロングラン計算、様々なnpmモジュールを使用した利便性の高いNodeの作成などに使用できます。
技術的な詳細については、CognigyセッションのExtensions(拡張機能)に関するエピソードをご覧ください。
Cognigy/TransformersReference to Cognigy repository on GitHub
拡張機能の開発をすぐに始めたい場合は、[Get Started(はじめに)]ドキュメントをご覧ください。
Cognigy/TransformersReference to Cognigy repository on GitHub
拡張機能のビルドとCognigy.AIへのアップロードに必要なリソースは、@cognigy/extension-toolsパッケージのReadmeにあります。
Cognigy/TransformersReference to Cognigy repository on GitHub
拡張機能の例をご覧になりたい場合は、GitHubリポジトリをご覧ください。
Cognigy/TransformersReference to Cognigy repository on GitHub
拡張機能開発ソフトウェア
Cognigyコミュニティによって作成されたCognigy Hammerは、Cognigy.AI用に設計された拡張機能開発ソフトウェアです。Cognigy拡張機能の開発を支援するいくつかのツールや機能を備えています。Cognigy HammerはCognigyの製品ではなく、エンタープライズサポートの対象外です。
拡張機能のタイムアウト処理
デフォルトのタイムアウトは20秒です。つまり、拡張機能の完了にかかる時間が20秒を超えると、拡張機能は停止し、Flowにエラーが返されます。Flowの実行は続行され、エラーの内容はinput.extensionError.message
で確認できます。
拡張機能のタイムアウト
デフォルトのタイムアウトは20秒です。このタイムアウトは、Cognigy.AIの専用インストールで変更できます。
カスタム拡張機能のインストール
[Upload Extension(拡張機能のアップロード)]ボタンを使用するか、ドラッグ&ドロップすることで、Extension Marketplaceからカスタム拡張機能をインストールすることができます。
カスタム拡張機能のアップデート
v4.25.0で追加
カスタム拡張機能をアップデートするには、 Marketplaceセクションまたは Installedセクションで拡張機能を選択し、[Update]をクリックします。Marketplaceセクションで拡張機能を選択した場合、Extension Marketplaceの最新バージョンがインストールされている拡張機能に置き換わります。Installedセクションで拡張機能を選択した場合、更新された拡張機能をアップロードするよう求められます。
Trusted Extensionは、管理者またはextension_trust_admin
プロジェクトロールを持つメンバーのみが更新できます。
拡張機能の公開
開発した拡張機能を承認し、Extension Marketplaceで公開したい場合は、GitHubリポジトリのreadmeで説明されている承認手順に従ってください。
拡張機能のパフォーマンス
v4.1.6で追加
Cognigy.AIは、拡張機能内のコードを「信頼されていない」と見なします。これは、コードがデフォルトでセキュリティで保護され、さらに強化された環境で実行されることを意味します。実行ごとにこのセキュリティで保護された環境をブートストラップするには一定のオーバーヘッドがあるため、拡張機能からのFlow Nodeは一般的に組み込みのFlow Node(例えば “Say”-Node)よりも実行速度が遅くなります。
Cognigy.AI v4.1.6では、拡張機能のコードを安全な環境で実行するか、通常のFlow Nodeが実行される環境で実行するかをお客様が決定できるようにすることで、拡張機能のコードを「信頼」する機能を導入しました。’
機能の可用性
この機能は、オンプレミスのお客様、またはCognigy.AIをインストールしたSaaS専用のお客様のみご利用いただけます。
この機能を有効にするには、以下の追加環境変数を使用します:
FEATURE_ALLOW_TRUSTED_CODE_CONFIGURATION=true
当社のお客様は通常、デプロイ用のマニフェストファイルが配置されている「kubernetes」リポジトリ内の「config-map_patch.yaml」に以下を追加することでこの機能を実行します:
- op: add
path: /data/FEATURE_ALLOW_TRUSTED_CODE_CONFIGURATION
value: "true"
この機能を有効にしても、自動的に何かが変わるわけではありません。この機能が有効化されると、追加のAPIエンドポイント(RESTful APIのドキュメントを参照)を使用して、拡張機能の “trustedCode “プロパティを更新することができます。
セキュリティに関する考慮事項
拡張機能とそのコードがデフォルトで安全な環境で実行されるのには理由があります!拡張機能内のコードを適切にレビューすることなく、拡張機能のコードを決して信用しないでください!拡張機能は有害なコードやルーチンを含む可能性のあるNPMからの外部パッケージを使用することができます。一度拡張機能が “ネイティブコンテキスト “で実行されると、機密情報が盗まれる可能性があります。実行コンテキストを変更する前に、このような影響があることをご確認ください。
「信頼済み拡張機能」にする
v4.46で追加
すべての信頼できる拡張機能には、特別なアイコンtrust-extensionsが表示されます。
アップロードした拡張機能を信頼済みとすることができます。プリインストールされた拡張機能でも、カスタム拡張機能でもかまいません。ユーザが拡張機能を信頼済みにして更新できるようにするには、管理者が バーチャルエージェントプロジェクトに extension_trust_admin
ロールを追加する必要があります。デフォルトでは、プロジェクト管理者がこのロールを持ちます。
拡張機能を信頼済みとするには、以下の手順で行います:
- [Extensions]ページで、既存の ExtensionをMarketplaceからインストールするか、カスタム拡張機能を追加します。
- [Extension]カードをクリックして、[Extension] パネルを開きます。
- 右側のパネルで、縦の三点リーダ、[Trust Extension(信頼できる拡張機能)]の順にクリックします。拡張機能が信頼済みとしてマークされます。
信頼されていない拡張機能をマークするには、 縦の三点リーダ、[Untrust Extension(信頼されていない拡張機能)] の順にクリックします。
組織全体に埋め込み可能な拡張機能
v4.8.0で追加
Cognigy.AI v4.8では、オンプレミスのお客様向けに特定の拡張機能を組織全体に組み込む機能を導入しました。
この機能を有効にするには、以下の環境変数を追加してGitHubのconfig.mapファイルを更新します:
FEATURE_ADDITIONAL_SYSTEM_WIDE_EXTENSIONS_PATH
組織全体の拡張機能のための環境変数
v4.8.0で追加
ローカルディレクトリのキャッシュ拡張機能
リリースv4.8では、拡張機能をローカルディレクトリにキャッシュできるようになり、読み込みのパフォーマンスが向上しました。キャッシュへのパスはタイムスタンプと共に拡張機能マップに保存されます。
拡張機能によって最大ディレクトリサイズを超えた場合、直近の X 個の拡張機能 (現在は 10 個 – 環境変数で編集可能) が拡張機能マップからもローカルファイルシステムからも削除されます。
必要であれば、環境変数を追加して設定することで、動作を調整することができます:
MAX_EXTENSIONS_CACHE_DIR_SIZE_IN_MB
MAX_EXTENSIONS_CACHE_DIR_SIZE_IN_MB
のデフォルト値は512MBです。
キャッシュはservice-executionのKubernetesポッド内にあります。そのため、オンプレミスやトライアル、アプリなどで実行していても違いはありません。
EXCEED_DIR_SIZE_AMOUNT_TO_DROP_FROM_MAP
動的フィールド
v4.9.0で追加
Cognigy.AI v4.9.0では、動的選択フィールドを拡張機能の新しいフィールドタイプとして使用できる新機能が追加されました。この機能を使用すると、外部APIコールなどでselectフィールドの内容を動的に取得できます。
拡張機能のローカライゼーション
v4.12.0で追加
Cognigy.AI v4.12.0では、デフォルトのNode LabelsやNode Field Descriptionsのようなユーザー向けのテキストに、ローカライズされたバリエーションをオプションで追加できる新機能が追加されました。設定された場合、ユーザーには選択したUI言語にローカライズされたバージョンが表示されます。
これらのローカライゼーションオプションは任意であり、テキストごとにオンデマンドで設定できます。ユーザーが選択したUI言語にマッチするローカライズが設定されていない場合、ユーザーには(必須の)デフォルトオプションが表示されます。
開発者は、[Localization for Extensions(拡張機能のローカライゼーション)]のドキュメントに従って始めることができます。