人工知能技術は進化を続けており、チャットアプリは日に日に機能が豊富になっている。最近、Difyプラットフォームは注目すべきアップデートを開始し、その新しくリリースされたチャットアプリケーションは、対話の中で直接データの視覚分析を実装することができ、ユーザーにより直感的で効率的なコミュニケーション体験をもたらします。記事のタイトルには「ChatGPTに匹敵する機能」とあるが、実際のアプリケーションにはまだギャップがあり、技術のデモンストレーションと機能の探索に重点が置かれている。記事には原理の説明が欠けている。 DifyワークフローとAIインテリジェント・アシスタントが企業データ採用モデルを刷新する .
ChatGPTのデータ可視化ソリューション
データの可視化に関しては、ChatGPTのような先進的なAI製品が積極的に検討されている。ChatGPTのデータ可視化ソリューションは、ユーザーコマンドをPythonコードに変換し、バックグラウンドで実行し、フォアグラウンドで表示することも報告されている。しかし、ChatGPTによって生成された円グラフには、中国語表示における互換性の問題がある。
ローコードプラットフォームのためのDifyデータ可視化ソリューション
ダイファイ 同プラットフォームは、ローコードという特性を生かし、ユーザーが複雑なコードを書くことなく、データ可視化機能を備えたチャット・アプリケーションを素早く構築できるよう、異なるアプローチをとっている。
に基づいている。 チャットGPT Difyプラットフォームは、簡単な解決策を提供します。従来使用していたPandasコードコマンドを調整し、Pyechartsコードを直接生成し、バックグラウンドのサンドボックス環境で実行し、生成された画像やHTMLファイルを取得します。これは比較的簡単な方法です。
しかし、本稿では、データの視覚化がいかに簡単かを示すために、ローコードのインテリジェント・ボディ・デザイン・プラットフォームであるDifyに焦点を当て、Difyの内蔵ツールをフルに活用するために、これまでのワークフロー設計を最適化し続ける。
Difyプラットフォームには、円グラフ、棒グラフ、折れ線グラフ、その他のチャートタイプをサポートするチャート生成ツールが組み込まれています。ユーザーは、これら3つのチャートツールのパラメータ要件を直感的に理解することができ、これらはすべて文字列形式で、同じフォーマットになっています。
ワークフローの最適化:データフォーマットの変換
ワークフローの出力をDifyチャートツールのパラメータ要件に適合させるためには、ワークフローを最適化する必要があります。
以下のJSONデータは、前回のチュートリアルのワークフローからの出力例であり、Difyチャートツールでは直接使用できないフォーマットです。
{ "status": "success", "data_result": { "Schools": 2, "Internet": 1, "Logistics": 1, "Hardware": 1, "Educational Institutions": 1, "Traditional Retail": 1, "Traditional Media": 1, "Manufacturing": 1}}.
ここでは、データフォーマットの変換にPythonコードを使用することにしました。そのためには、ワークフローにコード実行ノードを追加し、適切なPythonコードを入力する必要があります。
このPythonコードは、Difyプラットフォームの組み込みコードジェネレータであるBig Language Modelの助けを借りて生成することができます。以下は、コードを生成するために使用されるプロンプトの例です。
{"status": "success", "data_result": {"school": 2, "internet": 1, "logistics": 1, "hardware": 1, "educational institutions": 1, "traditional retail": 1, "traditional media": 1, "manufacturing": 1}} Pytho関数側のコードを書く。この関数は、json入力を受け入れ、data_resultのすべてのキー値を「;」で区切って文字列につなぎ、変数exl_keyに代入し、data_resultのすべての値値を「;」で区切って文字列につなぎ、変数exl_keyに代入し、data_resultのすべての値値を「;」で区切って文字列につなぎ、変数exl_keyに代入する。result, json入力を受け付ける, data_resultのすべてのキー値を"; "で区切って文字列にする, 変数exl_keyに代入する, data_resultのすべての値値を"; "で区切って文字列にする, 変数exl_valueに代入する, exl_key exl_value を返す。
例えば、Difyの円グラフツールでは2つの変数が必要であるのに対し、Difyのコードジェネレーターで直接生成されたコードでは、返される結果が1つの変数しか含んでいないなど、若干の問題があります。そのため、生成されたコードを修正して 戻る
文は辞書(dict)型の結果を返します。
インポート json
def main(data: dict) -> dict.
data = json.loads(データ)
exl_key = ";".join(data["data_result"].keys())
exl_value = ";".join(map(str, data["data_result"].values()))
return {'exl_key': exl_key, 'exl_value': exl_value}.
上記のコードには潜在的な問題がある。ラージ・モデルが生成するデータ・フォーマットが、期待される {キー: 値, キー: 値}。
構造の場合、コードを実行するとエラーが報告される。この問題については次の記事で取り上げるが、この記事ではまず機能の実装に焦点を当てる。
加えて、コード実行ノードが受け取る入力変数のフォーマットもエラーになりやすい。 デフォルトの入力は文字列で、そのためには json
ライブラリを使用して強制的に型変換を行う。そうでない場合、以下のエラーが発生する。
ワークフローの操作と結果のプレゼンテーション
これでワークフロー全体を実行し、最終結果を確認することができる。
この時点で、ワークフローはユーザーのデータ分析ニーズに基づいて円グラフの結果を生成するように設定されている。
ワークフロー拡張:複数のチャートタイプをサポート
しかし、ユーザーが棒グラフや折れ線グラフを作成する必要がある場合は、現在のワークフローを拡張する必要がある。
最適化のアイデアは次のとおりである:第一に、「パラメータ抽出」ノードを追加して、大きなモデルがユーザーコマンドから円グラフや棒グラフのようなグラフの視覚化の必要性を識別できるようにする必要がある。 次に、データ処理ノードと円グラフ視覚化ノードの間に「条件分岐」ノードを追加し、パラメータ抽出結果に応じて異なる分岐パスを選択できるようにする。 最終的なワークフロー設計を下図に示す。
以下では、パラメータ抽出器の設定方法について詳しく説明します。 設定インターフェイスからわかるように、次の3つの主要な側面が含まれています:
- 入力変数: ラージモデルがユーザーコマンドテキストからパラメータを抽出することを指定する。
- 抽出パラメータ: 抽出されるパラメータを定義する。すなわち、ユーザー命令にチャート型情報が含まれているかどうかを定義する。関連する情報が抽出された場合、それは新しい変数
exl_type
. - ディレクティブ:: パラメータ抽出器から大規模モデルに送られるキューワード。大規模モデルの場合、パラメータ抽出タスクは比較的単純である。
このようにして、後続の「条件分岐」ノードは、抽出されたパラメータに基づいて、より大きなモデルによってモデル化される。 exl_type
条件分岐」ノードは複雑に見えるが、原理は単純である。条件分岐 "ノードは複雑に見えるが、原理は単純である:ビッグモデルから出力されるチャートの種類に応じて、対応するブランチを選択し、対応するチャートを生成する。
次に、ワークフロー全体がどのように機能するかを示す。 結果は良好で、このワークフローがBig Model Chatアプリケーションに適用できることを示している。
Difyツールとしてのワークフローの公開とエージェントアプリケーションへの統合
このワークフローをDifyに統合するには、まずDifyのビルトインツールとして公開する必要があります。 ワークフローのインターフェイスで、右上の「発行」ボタンをクリックし、「ツールとして発行」を選択します。
注:これは重要なステップである。 経験則として、ツールとして公開されるワークフローは、パラメータ形式を次のように設定する必要があります。 テキスト入力
型に変換します。 Dify Agentアプリケーションで、ビッグモデルが正しくツールを呼び出すには、Function Callを使用します。 そうでなければ、ビッグモデルはツールを無視します。 したがって、ワークフローの入力変数を次の図のように調整することが重要です。 テキスト入力
タイプは、それをツールとして公開する前に
上記の手順が完了したら、データ分析ワークフローをファンクションコールとしてDifyに統合することができます。 次に、DifyにAgentアプリケーションを作成します。 Agentアプリケーションに馴染みのない方は、まずステップを踏んでいただき、その原理と応用を順を追って理解していきましょう。 その後、Difyのアプリケーションの違いを比較する記事を書く予定です。
次に、エージェントアプリケーションに公開ツールを追加します。 この時点で設定は完了です。 最終結果を確認するために、直接プレビューとデバッグを行ってください。
以上のステップを経て、Difyプラットフォームはチャットアプリケーションとデータ可視化機能の統合に成功し、ユーザーに全く新しいインタラクティブ体験を提供します。 Difyのローコード機能により、ユーザーはパワフルでインテリジェントなアプリケーションを素早く構築することができ、深いコーディングの必要なくAI技術の利便性を享受することができます。