これは ダイファイ AIワークフローは、v0.6.9で再利用可能なツールとしてリリースされました(エージェントまたはワークフローで使用)。これにより、新しいエージェントや他のワークフローと統合することができ、重複作業をなくすことができます。2つの新しいワークフローノードと1つの改良ノードが追加されました:
反復:入力が配列であることを確認する。イテレーション・ノードは、すべての項目が処理されるまで、配列の各項目を順番に処理します。例えば、長い記事が必要な場合、いくつかの見出しを入力するだけでよい。これにより、各タイトルに段落を含む記事が生成され、複雑なプロンプトのスケジューリングが不要になります。
パラメータ抽出器:大規模言語モデル(LLM)を使用して自然言語から構造化されたパラメータを抽出することで、ワークフローでのツールの使用やHTTPリクエストのプロセスが簡素化される。
可変アグリゲーター:改良された変数割り当て機能は、より柔軟な変数選択をサポートする。同時に、ノードの接続が改善され、ユーザーエクスペリエンスが向上しました。
Difyのワークフローは、チャットフローとワークフローに分かれています:チャットフロー顧客サービス、セマンティック検索、応答の構築におけるマルチステップロジックなど、対話ベースのシナリオのための会話アプリケーション。ワークフロー自動化およびバッチシナリオ向けで、高品質翻訳、データ分析、コンテンツ生成、電子メール自動化などの用途に適しています。
チャットフローポータル
ワークフロー・ポータル
I.3段階の翻訳ワークフロー
1.スタートノード
Startノード内での入力変数の定義は、テキスト、段落、ドロップダウンオプション、数値の4つのタイプをサポートしています。これを以下に示します:
sys.queryは対話ベースのアプリケーションでユーザーの質問入力に使用され、sys.filesは対話でファイルをアップロードする際に使用されます。例えば、意味を理解するために画像をアップロードする場合、画像理解モデルや画像入力のためのツールを使用する必要があります。
2.LLM(固有名詞の認識)ノード
SYSTEMは、対話のためのハイレベルなガイダンスを以下のように提供している:
<課題> ユーザーが入力した専門用語を特定する。翻訳前後の専門用語の対応を{XXX}→{XXX}の形式で表示してください。
{{#1711067409646.input_text#}}
トランスフォーマー
トークン -> トークン
ゼロショット→ゼロショット
フューショット→フューショット
<名詞
LLMノードでは、モデルの入力プロンプトをカスタマイズできます。Chat モデルを選択すると、SYSTEM/USER/ASSISTANT プロンプトをカスタマイズできます。これを以下に示します:
シリアル番号 | 占める | 備考 | |
---|---|---|---|
1 | システム(キューワード) | 対話のためのハイレベルなガイダンスを提供する | 手がかり |
2 | ユーザー | 指示、クエリー、またはテキストベースの入力をモデルに提供する。 | ユーザーの問題 |
3 | アシスタント | ユーザーメッセージに基づくモデル応答 | ヘルパーの回答 |
3.LLM2(直訳)ノード
SYSTEMは、対話のためのハイレベルなガイダンスを以下のように提供している:
<課題> あなたは英語、特に専門的な学術論文をわかりやすい一般科学記事に変換することに堪能なプロの翻訳者です。以下の中国語の文章を、英語のポピュラーサイエンス記事のようなスタイルで英語に翻訳するのを手伝ってください。
<制限事項
情報を省略せず、原文の形式を維持したまま、中国語の内容から直接翻訳してください。
<翻訳前
{{#1711067409646.input_text#}}
<直訳
4.LLM3(直訳の問題点の指摘)
SYSTEMは、対話のためのハイレベルなガイダンスを以下のように提供している:
<タスク
直訳の結果に基づいて、具体的な問題点を特定する。曖昧さを避け、原文に含まれていない内容や書式を追加することなく、正確な説明を提供する必要がある。具体的には以下のようなものがありますが、これらに限定されるものではありません:
英語表現に合っていない、不適切な箇所を明確に指摘してください 文章構成がぎこちない、正確な箇所を指摘してください 変更の提案は不要です、その後の自由翻訳で調整します 表現があいまいでわかりにくい、可能であれば説明してください
<直訳
{{#1711067578643.text#}}
<原文
{{#1711067409646.input_text#}}
{{#1711067409646.input_text#}} {{#1711067409646.input_text#}} <直訳の問題点
5.LLM4(イタリア語翻訳-2回目の翻訳)
SYSTEMは、対話のためのハイレベルなガイダンスを以下のように提供している:
<課題> 初回の直訳の結果とその後に判明した問題点を踏まえ、原文の意味をより正確に伝えるための再翻訳を行う。その際、原文の意味に忠実であると同時に、より英語表現に近く、理解しやすい内容になるよう努めます。その際、原文の形式は変更いたしません。
<直訳
{{#1711067578643.text#}}
<最初の翻訳の問題点
{{#1711067817657.text#}}
{{#1711067817657.text#
6.エンドノード
出力変数名の定義第二翻訳
.
7.ワークフローをツールとして公開する
以下のように、Agent で使用できるように、ワークフローをツールとして公開します:
クリックすると、以下のような「ツール」ページにアクセスできます:
8.神社テンプレート
Promptを書いているときに、Jinjaテンプレートのサポートを見つけました。詳しくは[3][4]を参照してください。
II.ワークフローにおけるワークフローの使用
III.エージェントにおけるワークフローの使用
本質的にワークフローをツールとして扱い、Agentの機能を拡張することは、インターネット検索や科学計算などの他のツールと同様である。
IV.3ステップ翻訳ワークフローの個別テスト
入力を以下に示す:
トランスフォーマーはビッグ・ランゲージ・モデルの基本である。
出力は以下の通り:
トランスフォーマーは、大規模な言語モデルの基礎となる。
詳細ページは以下の通り:
トラッキング・ページは以下の通り:
1.スタート
(1) 入力
{
"input_text": "トランスフォーマーは大きな言語モデルの基礎である",
"sys.files": []、
"sys.user_id": "7d8864c3-c456-4588-9b0a-9368c94ca377"
}
(2) 出力
{
"input_text": "トランスフォーマーは大きな言語モデルの基礎である",
"sys.files": []、
"sys.user_id": "7d8864c3-c456-4588-9b0a-9368c94ca377"
}
2. LLM
(1) データ処理
{
"model_mode": "chat"、
"プロンプト": [
{
"role": "system", "text":" ユーザーによって入力された専門用語を特定する。
"text":" ユーザーによって入力された専門用語を特定する。翻訳前後の専門用語の対応を{XXX}→{XXX}の形式で表示してください。\"text":" ユーザーが入力した専門用語を特定する。\(例)Transformer -> Transformer ⑬Token -> Token ⑭Zero Shot -> Zero Shot ⑯Few Shot -> Few Shot ⑯",.
「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".
"completion_price_unit": "0.001",
「complete_price": "0.0000900", "total_tokens".
「通貨": "USD", "レイテンシー": 1.01
「レイテンシー": 1.0182260260044131
}
}
3 LLM 2
(1) データ処理
{
"model_mode": "chat"、
"プロンプト": [
{
"role": "system", "text":" あなたは英語に堪能なプロの翻訳者です。
"text":" あなたは英語に堪能なプロの翻訳者で、特に専門的な学術論文をわかりやすい一般科学論文に変換することに長けています。以下の中国語の文章を、英語のポピュラーサイエンス記事のようなスタイルで英語に翻訳するのを手伝ってください。\中国語の内容から直接翻訳してください。\简体中文(繁体中文) 简体中文(繁体中文) 简体中文(繁体中文) 简体中文(繁体中文) 简体中文(繁体中文\n ",.
"ファイル": [].
}
]
}
(2) 出力
{
"text": "トランスフォーマーは大規模な言語モデルの基礎である。", "usage": {
"usage": {
"prompt_price_unit": "0.001"、
"prompt_price": "0.0001760", "completion_tokens".
「completion_price」:「0.0000200」、「total_tokens」。
「通貨": "USD", "レイテンシ": 0.5.5
「レイテンシー": 0.516718350991141
}
}
4. LLM 3
(1) データ処理
{
"model_mode": "chat"、
"プロンプト": [
{
"role": "system", "text":"n 直訳結果に基づいて具体的な存在を示す。
"text":"n 直訳結果に基づいて具体的な問題点を示す。曖昧さを避け、原文に含まれていない内容や書式を追加することなく、正確な記述を行う必要がある。具体的には、以下のようなものが含まれますが、これらに限定されません: ⅳ英語表現との相性が悪いので、不適切な箇所を明記してください ⅳ文章構成がぎこちないので、具体的な箇所を明記してください ⅳ変更の提案は必要ありませんが、その後の自由翻訳で調整します ⅳ表現があいまいで理解しにくいので、可能であれば説明してください ⅳTransformerは、大規模な言語モデルの基盤です。(原文ママ)The Transformer is the foundation of large language models.\n".
"files": [].
}
]
}
(2) 出力
{
"text": "文章構造がぎこちなく、英語表現に適合していない。",
"usage": {
"prompt_tokens": 217、
"prompt_unit_price": "0.001"、
"prompt_price_unit": "0.001"、
「prompt_price": "0.0002170", "completion_tokens".
「complete_price": "0.0000440", "total_tokens".
「total_tokens": 239、"total_price".
「レイテンシー": 0.8566757979860995
}
}
5 LLM 4
(1) データ処理
{
"model_mode": "chat"、
"プロンプト": [
{
"role": "system", "text":" 初回の直訳結果と、その後に確認された問題点に基づいて、再翻訳を行います。
"text":"最初の直訳の結果と、その後に判明した問題点に基づいて、原文の意味をより正確に伝えることを目的とした再翻訳を行います。その際、原文の意味に忠実であると同時に、より英語表現に近く、理解しやすい内容を目指します。その際、原文の形式は変えません。\(1)直訳の問題点(2)文構造がぎこちなく、英語表現に合っていない。\n "、
"files": []
}
]
}
(2) 出力
{
"text": "Transformerは大規模言語モデルの礎として機能する。", "usage": {
"usage": {
"prompt_tokens": 187、"prompt_unit_price": {。
"prompt_price_unit": "0.001"、
prompt_price": "0.0018700", "completion_tokens": "完了トークン".
"completion_price_unit": "0.001",
「completion_price": "0.0003600", "total_tokens": "0.03", "completion_price_unit": "0.001"、
「通貨": "USD", "レイテンシー": 1.36
「レイテンシー": 1.3619857440062333
}
}
6.結論
(1) 入力
{
"second_translation": "トランスフォーマーは、大規模言語モデルの礎石として機能する。"
}
(2) 出力
{
"second_translation": "トランスフォーマーは、大規模言語モデルの礎石として機能する。"
}
V.Agentでの3ステップ翻訳ワークフローのテスト
ツール起動時
ツールを閉じるとき
VI.関連事項
1.エージェントのワークフローはいつ起動しますか?
ツール同様、ツールの説明によって起動する。正確な実装はソースコードを見なければわからない。
書誌
[1] ワークフロー:https://docs.dify.ai/v/zh-hans/guides/workflow
[2]WeChatエコシステムにDifyを教えるハンズオン:https://docs.dify.ai/v/zh-hans/learn-more/use-cases/dify-on-wechat
[3] Jinja 公式ドキュメント: https://jinja.palletsprojects.com/en/3.0.x/
[4] Jinjaテンプレート:https://jinja.palletsprojects.com/en/3.1.x/templates/