これは ダイファイ AIワークフローは、v0.6.9で再利用可能なツールとしてリリースされました(エージェントまたはワークフローで使用)。これにより、新しいエージェントや他のワークフローと統合することができ、重複作業をなくすことができます。2つの新しいワークフローノードと1つの改良ノードが追加されました:
反復:入力が配列であることを確認する。イテレーション・ノードは、すべての項目が処理されるまで、配列の各項目を順番に処理します。例えば、長い記事が必要な場合、いくつかの見出しを入力するだけでよい。これにより、各タイトルに段落を含む記事が生成され、複雑なプロンプトのスケジューリングが不要になります。
パラメータ抽出器:大規模言語モデル(LLM)を使用して自然言語から構造化されたパラメータを抽出することで、ワークフローでのツールの使用やHTTPリクエストのプロセスが簡素化される。
可変アグリゲーター:改良された変数割り当て機能は、より柔軟な変数選択をサポートする。同時に、ノードの接続が改善され、ユーザーエクスペリエンスが向上しました。
Difyのワークフローは、チャットフローと ワークフロー 2種類だ:チャットフロー顧客サービス、セマンティック検索、応答の構築におけるマルチステップロジックなど、対話ベースのシナリオのための会話アプリケーション。ワークフロー自動化およびバッチシナリオ向けで、高品質翻訳、データ分析、コンテンツ生成、電子メール自動化などの用途に適しています。
チャットフローポータル
ワークフロー・ポータル
I.3段階の翻訳ワークフロー
1.スタートノード
Startノード内での入力変数の定義は、テキスト、段落、ドロップダウンオプション、数値の4つのタイプをサポートしています。これを以下に示します:
sys.queryは対話ベースのアプリケーションでユーザーの質問入力に使用され、sys.filesは対話でファイルをアップロードする際に使用されます。例えば、意味を理解するために画像をアップロードする場合、画像理解モデルや画像入力のためのツールを使用する必要があります。
2.LLM(固有名詞の認識)ノード
SYSTEMは、対話のためのハイレベルなガイダンスを以下のように提供している:
<任务> 识别用户输入的技术术语。请用{XXX} -> {XXX}的格式展示翻译前后的技术术语对应关系。
<输入文本>
{{#1711067409646.input_text#}}
<示例>
Transformer -> Transformer
Token -> Token
零样本 -> Zero Shot
少样本 -> Few Shot
<专有名词>
LLMノードでは、モデルの入力プロンプトをカスタマイズできます。Chat モデルを選択すると、SYSTEM/USER/ASSISTANT プロンプトをカスタマイズできます。これを以下に示します:
シリアル番号 | 占める | 備考 | |
---|---|---|---|
1 | システム(キューワード) | 対話のためのハイレベルなガイダンスを提供する | 手がかり |
2 | ユーザー | 指示、クエリー、またはテキストベースの入力をモデルに提供する。 | ユーザーの問題 |
3 | アシスタント | ユーザーメッセージに基づくモデル応答 | ヘルパーの回答 |
3.LLM2(直訳)ノード
SYSTEMは、対話のためのハイレベルなガイダンスを以下のように提供している:
<任务> 您是一名精通英文的专业译者,特别是在将专业的学术论文转换为通俗易懂的科普文章方面有着非凡的能力。请协助我把下面的中文段落翻译成英文,使其风格与英文的科普文章相似。
<限制>
请根据中文内容直接翻译,维持原有的格式,不省略任何信息。
<翻译前>
{{#1711067409646.input_text#}}
<直接翻译>
4.LLM3(直訳の問題点の指摘)
SYSTEMは、対話のためのハイレベルなガイダンスを以下のように提供している:
<任务>
根据直接翻译的结果,指出其具体存在的问题。需要提供精确描述,避免含糊其辞,并且无需增添原文中未包含的内容或格式。具体包括但不限于:
不符合英文的表达习惯,请明确指出哪里不合适句子结构笨拙,请指出具体位置,无需提供修改建议,我们将在后续的自由翻译中进行调整表达含糊不清,难以理解,如果可能,可以试图进行解释
<直接翻译>
{{#1711067578643.text#}}
<原文>
{{#1711067409646.input_text#}}
<直接翻译的问题>
5.LLM4(イタリア語翻訳-2回目の翻訳)
SYSTEMは、対話のためのハイレベルなガイダンスを以下のように提供している:
<任务>基于初次直接翻译的成果及随后识别的各项问题,我们将进行一次重新翻译,旨在更准确地传达原文的意义。在这一过程中,我们将致力于确保内容既忠于原意,又更加贴近英文的表达方式,更容易被理解。在此过程中,我们将保持原有格式不变。
<直接翻译>
{{#1711067578643.text#}}
<第一次翻译的问题>
{{#1711067817657.text#}}
<意译>
6.エンドノード
出力変数名の定義second_translation
.
7.ワークフローをツールとして公開する
以下のように、Agent で使用できるように、ワークフローをツールとして公開します:
クリックすると、以下のような「ツール」ページにアクセスできます:
8.神社テンプレート
Promptを書いているときに、Jinjaテンプレートのサポートを見つけました。詳しくは[3][4]を参照してください。
II.ワークフローにおけるワークフローの使用
III.エージェントにおけるワークフローの使用
本質的にワークフローをツールとして扱い、Agentの機能を拡張することは、インターネット検索や科学計算などの他のツールと同様である。
IV.3ステップ翻訳ワークフローの個別テスト
入力を以下に示す:
Transformer是大语言模型的基础。
出力は以下の通り:
The Transformer serves as the cornerstone for large-scale language models.
詳細ページは以下の通り:
トラッキング・ページは以下の通り:
1.スタート
(1) 入力
{
"input_text": "Transformer是大语言模型的基础。",
"sys.files": [],
"sys.user_id": "7d8864c3-c456-4588-9b0a-9368c94ca377"
}
(2) 出力
{
"input_text": "Transformer是大语言模型的基础。",
"sys.files": [],
"sys.user_id": "7d8864c3-c456-4588-9b0a-9368c94ca377"
}
2. LLM
(1) データ処理
{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<任务> 识别用户输入的技术术语。请用{XXX} -> {XXX}的格式展示翻译前后的技术术语对应关系。\n<输入文本>\nTransformer是大语言模型的基础。\n<示例>\nTransformer -> Transformer\nToken -> Token\n零样本 -> Zero Shot \n少样本 -> Few Shot\n<专有名词>",
"files": []
}
]
}
(2) 出力
{
"text": "Transformer -> Transformer",
"usage": {
"prompt_tokens": 107,
"prompt_unit_price": "0.01",
"prompt_price_unit": "0.001",
"prompt_price": "0.0010700",
"completion_tokens": 3,
"completion_unit_price": "0.03",
"completion_price_unit": "0.001",
"completion_price": "0.0000900",
"total_tokens": 110,
"total_price": "0.0011600",
"currency": "USD",
"latency": 1.0182260260044131
}
}
3 LLM 2
(1) データ処理
{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<任务> 您是一名精通英文的专业译者,特别是在将专业的学术论文转换为通俗易懂的科普文章方面有着非凡的能力。请协助我把下面的中文段落翻译成英文,使其风格与英文的科普文章相似。\n<限制> \n请根据中文内容直接翻译,维持原有的格式,不省略任何信息。\n<翻译前> \nTransformer是大语言模型的基础。\n<直接翻译> ",
"files": []
}
]
}
(2) 出力
{
"text": "The Transformer is the foundation of large language models.",
"usage": {
"prompt_tokens": 176,
"prompt_unit_price": "0.001",
"prompt_price_unit": "0.001",
"prompt_price": "0.0001760",
"completion_tokens": 10,
"completion_unit_price": "0.002",
"completion_price_unit": "0.001",
"completion_price": "0.0000200",
"total_tokens": 186,
"total_price": "0.0001960",
"currency": "USD",
"latency": 0.516718350991141
}
}
4. LLM 3
(1) データ処理
{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<任务>\n根据直接翻译的结果,指出其具体存在的问题。需要提供精确描述,避免含糊其辞,并且无需增添原文中未包含的内容或格式。具体包括但不限于:\n不符合英文的表达习惯,请明确指出哪里不合适句子结构笨拙,请指出具体位置,无需提供修改建议,我们将在后续的自由翻译中进行调整表达含糊不清,难以理解,如果可能,可以试图进行解释\n<直接翻译>\nThe Transformer is the foundation of large language models.\n<原文>\nTransformer是大语言模型的基础。\n<直接翻译的问题>",
"files": []
}
]
}
(2) 出力
{
"text": "句子结构笨拙,不符合英文表达习惯。",
"usage": {
"prompt_tokens": 217,
"prompt_unit_price": "0.001",
"prompt_price_unit": "0.001",
"prompt_price": "0.0002170",
"completion_tokens": 22,
"completion_unit_price": "0.002",
"completion_price_unit": "0.001",
"completion_price": "0.0000440",
"total_tokens": 239,
"total_price": "0.0002610",
"currency": "USD",
"latency": 0.8566757979860995
}
}
5 LLM 4
(1) データ処理
{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<任务>基于初次直接翻译的成果及随后识别的各项问题,我们将进行一次重新翻译,旨在更准确地传达原文的意义。在这一过程中,我们将致力于确保内容既忠于原意,又更加贴近英文的表达方式,更容易被理解。在此过程中,我们将保持原有格式不变。\n<直接翻译> \nThe Transformer is the foundation of large language models.\n<第一次翻译的问题>\n句子结构笨拙,不符合英文表达习惯。\n<意译> ",
"files": []
}
]
}
(2) 出力
{
"text": "The Transformer serves as the cornerstone for large-scale language models.",
"usage": {
"prompt_tokens": 187,
"prompt_unit_price": "0.01",
"prompt_price_unit": "0.001",
"prompt_price": "0.0018700",
"completion_tokens": 12,
"completion_unit_price": "0.03",
"completion_price_unit": "0.001",
"completion_price": "0.0003600",
"total_tokens": 199,
"total_price": "0.0022300",
"currency": "USD",
"latency": 1.3619857440062333
}
}
6.結論
(1) 入力
{
"second_translation": "The Transformer serves as the cornerstone for large-scale language models."
}
(2) 出力
{
"second_translation": "The Transformer serves as the cornerstone for large-scale language models."
}
V.Agentでの3ステップ翻訳ワークフローのテスト
ツール起動時
ツールを閉じるとき
VI.関連事項
1.エージェントのワークフローはいつ起動しますか?
ツール同様、ツールの説明によって起動する。正確な実装はソースコードを見なければわからない。