Dify
オープンソースのLLMアプリケーション開発プラットフォームとして、以下のようなアプリケーションを開発することができます。 Agent
ビルド, AI workflow
プログラム RAG
検索とモデル管理のすべてを網羅する機能は、開発者コミュニティで人気を博している。エレガントなデザインとスムーズな操作性で知られ、開発チームの驚異的な反復スピードで機能が改善され続けている。
しかし、アプリケーションシナリオの複雑さが増すにつれ Dify
ワークフロー・オーケストレーションにおける中核的な限界が明らかになりつつある。 Chatflow
オーケストレーションと、それらの間の相互呼び出し。つまり、すべてのビジネス・ロジックが単一の Chatflow
キャンバスを使用する。ロジックが複雑になると、このキャンバスは急速に拡大し、保守性が劇的に低下する。
(躊躇なく Dify
を組み合わせる方法を提供する。 Chatflow
コンバート Workflow
しかし、この方法には2つの欠点がある:
- ストリーミング出力はできませんツールノードとして呼び出される
Workflow
非対応Chatflow
ネイティブ・ストリーミング出力機能。これは、特に即時のフィードバックを必要とする会話型アプリケーションでは、ユーザー体験を犠牲にしている。 - 複数の出力ノードはサポートされていません。::
Workflow
出力が単一であるため、複雑なデータ処理や分岐ロジックのシナリオでの使用が制限される。
このような制限を打破するために、コミュニティ開発者たちは次のようなプログラムを立ち上げた。 Chatflow Invoker
プラグインです。このプラグインは、ローカルまたはリモートの Chatflow
プロセス内の別のノードとしてカプセル化され、クロス・プロセスを可能にする。 Chatflow
AIアプリケーションのシームレスな呼び出しは、AIアプリケーション開発のモジュール性、柔軟性、保守性を効果的に高める。
Chatflow Invoker
プラグインの核となる強みは
- 気付く
Chatflow
モジュール性複雑なビジネスロジックは、複数の独立したロジックに分解することができます。Chatflow
ユニットとなり、ロジックの再利用性が大幅に向上した。 - クロス・サポート
Chatflow
各論異なるChatflow
データや指示は両者間で簡単にやり取りできるため、より柔軟なビジネスプロセスが可能になる。 - 完全なストリーミング出力体験を維持するを越えても
Chatflow
ネイティブ・ストリーミング出力機能は、通話シナリオでも保持することができ、エンドユーザーとのインタラクション体験を保証する。
使用方法
Chatflow Invoker
ローカルとリモートの両方の通話モードをサポートし、シングル・インスタンスと分散デプロイの異なるニーズに対応します。
ローカル・チャットフロー・コール
市内通話は、同一地域内の通話に適用されます。 Dify
インスタンスは内部的に Chatflow
振り付けを作る。
入力パラメータ:
APP ID
(必須): 目的Chatflow
このIDはDify
アプリケーションのURLから直接Prompt
(必須):ターゲットに送信Chatflow
クエリーやコマンドのInputs JSON
(オプション): JSONフォーマットの文字列。Chatflow
開始ノードの入力パラメータ。Conversation ID
(オプション): 複数回の対話を維持するために使用されるセッションID。conversation_id
.
操作手順:
- ポジショニングターゲット
Chatflow
なAPP ID
.例えばhttps://dify/app/f011f58c-b1ce-4a9b-89b2-f39fce8466a8/workflow
このURLではf011f58c-b1ce-4a9b-89b2-f39fce8466a8
まるでAPP ID
. - ある
Chatflow Invoker
ノード内のコンフィギュレーションInputs JSON
パラメータで、受信する変数を定義する。
- 返信ノードで
stream_output
変数を使用して、ストリーミング出力の結果を受け取り、ダウンストリームに渡す。
- テストを実行すると、プラグインが別の
Chatflow
そして、ストリーミング出力コンテンツをそのまま返す。
リモートチャットフロー通話
リモートコールの機能は、さらに次のように拡張されている。 Dify
アプリケーションの境界を越えて、異なるアプリケーションを構築することができます。 Dify
分散AIアプリケーションのインスタンス。
入力パラメータ:
URL
(必須):リモートDify
インスタンスのメッセージAPIアドレス。http://127.0.0.1:5001/v1/chat-messages
.API Key
(必須): 目的Chatflow
のAPIアクセスキー。Prompt
(必須): 送信するクエリーまたはコマンド。User
(必須): 以降のログ検索および使用統計のためにエンドユーザーを識別するために使用される文字列。Inputs JSON
(オプション):次のパスに渡すChatflow
開始ノードの入力パラメータ。Conversation ID
(オプション): 複数ラウンド対話のステータスを維持するために使用されるセッションID。
操作手順:
- 呼び出す必要のあるリモートでは
Chatflow
を生成する。API Key
.
- リモート接続
Dify
のAPIアドレスが生成される。API Key
埋めるChatflow Invoker
プラグインの対応するフィールド。
- 輸入
Prompt
を実行することで、ストリーミング出力を維持しながらリモートコールを実装することができる。
ローカル通話よりもリモート通話の方が優れている点として、すべての通話記録が被呼者である Dify
インスタンスは、デバッグと監視のために完全なログを残す。
開発指示
現在 Dify
プラグインを開発するためのリファレンス・ドキュメントは比較的少なく、AIモデルには関連するトレーニング・データが不足している。しかしDify
公式コードリポジトリには豊富なプラグインサンプルがあり、学習と開発のための素晴らしいリソースとなっている。
ある Chatflow Invoker
の開発期間中 app-selector
このコンポーネントにより、ユーザーはインターフェイスを通じて Chatflow
しかし、このコンポーネントはツールノードのシナリオに欠陥があり、アプリケーションを選択することができなかった。そのため、最終的なアプローチは、手動で APP ID
というアプローチもある。
Chatflow Invoker
このプラグインは Dify
公式プラグインマーケットプレイスはオンライン上にあるので、ユーザーは直接検索してインストールすることができる。ソースコードはGitHubでも公開されている。
ソースURL:https://github.com/yzddmr6/chatflow_invoker