AI Personal Learning
und praktische Anleitung
豆包Marscode1

Dify v0.6.9 verwendet benutzerdefinierte Workflows als Werkzeuge

Dies kann in der Dify AI-Workflows wurden in Version 0.6.9 als wiederverwendbare Tools (zur Verwendung in Agenten oder Workflows) freigegeben. Dadurch können sie in neue Agenten und andere Workflows integriert werden, wodurch doppelter Aufwand vermieden wird. Es wurden zwei neue Workflow-Knoten und ein verbesserter Knoten hinzugefügt:

Iteration:Stellen Sie sicher, dass die Eingabe ein Array ist. Der Iterationsknoten verarbeitet jedes Element im Array der Reihe nach, bis alle Elemente verarbeitet wurden. Wenn Sie zum Beispiel einen langen Artikel benötigen, geben Sie einfach einige Überschriften ein. Dadurch wird ein Artikel generiert, der für jeden Titel einen Absatz enthält, so dass eine komplexe Eingabeaufforderung nicht erforderlich ist.


Parameter-Extraktor:Die Extraktion strukturierter Parameter aus natürlicher Sprache mit Hilfe von Large Language Models (LLM) vereinfacht die Verwendung von Tools in Workflows und HTTP-Anfragen.

Variabler Aggregator:Der verbesserte Variablenzuweiser unterstützt eine flexiblere Variablenauswahl. Außerdem wird die Benutzerfreundlichkeit durch eine verbesserte Knotenkonnektivität erhöht.

Workflows in Dify sind unterteilt in Chatflow und Arbeitsablauf Zwei Arten:ChatflowKonversationsanwendungen für dialogbasierte Szenarien, einschließlich Kundendienst, semantische Suche und mehrstufige Logik bei der Erstellung von Antworten.ArbeitsablaufAutomatisierung und Batch-Szenarien, geeignet für Anwendungen wie hochwertige Übersetzungen, Datenanalyse, Inhaltserstellung, E-Mail-Automatisierung und mehr.

-1

Chatflow-Portal

-2

Arbeitsablauf-Portal

I. Dreistufiger Arbeitsablauf bei der Übersetzung

1. starten Sie den Knoten

-3

Die Definition von Eingabevariablen innerhalb des Knotens Start unterstützt vier Typen: Text, Absatz, Dropdown-Optionen und Zahlen. Dies wird unten gezeigt:

-4

In Chatflow stellt der Startknoten eingebaute Systemvariablen zur Verfügung: sys.query und sys.files. sys.query wird für die Eingabe von Benutzerfragen in dialogbasierten Anwendungen verwendet, und sys.files wird für das Hochladen einer Datei in einem Dialog verwendet, z.B. das Hochladen eines Bildes zum Verstehen der Bedeutung, das mit dem Bildverstehensmodell oder Werkzeugen für die Bildeingabe verwendet werden muss.

2. der LLM-Knoten (Anerkennung von Eigennamen)

-5

Das SYSTEM bietet die folgenden Leitlinien für den Dialog:

<任务> 识别用户输入的技术术语。请用{XXX} -> {XXX}的格式展示翻译前后的技术术语对应关系。
<输入文本>
{{#1711067409646.input_text#}}
<示例>
Transformer -> Transformer
Token -> Token
零样本 -> Zero Shot
少样本 -> Few Shot
<专有名词>

Innerhalb des LLM-Knotens können die Eingabeaufforderungen für das Modell angepasst werden. Wenn Sie das Modell Chat auswählen, können Sie die Eingabeaufforderungen SYSTEM/USER/ASSISTANT anpassen. Dies ist unten dargestellt:

-6

Seriennummer ausmachen Hinweis
1 SYSTEM (Stichwort) Bereitstellung von Leitlinien für den Dialog auf hoher Ebene Hinweis
2 BENUTZER Anweisungen, Abfragen oder andere textbasierte Eingaben in das Modell einbringen Benutzer-Probleme
3 ASSISTENTIN Modellantworten auf der Grundlage von Benutzernachrichten Antworten der Helfer
3. der LLM2-Knoten (direkte Übersetzung)

-7

Das SYSTEM bietet die folgenden Leitlinien für den Dialog:

<任务> 您是一名精通英文的专业译者,特别是在将专业的学术论文转换为通俗易懂的科普文章方面有着非凡的能力。请协助我把下面的中文段落翻译成英文,使其风格与英文的科普文章相似。
<限制> 
请根据中文内容直接翻译,维持原有的格式,不省略任何信息。
<翻译前> 
{{#1711067409646.input_text#}}
<直接翻译>
4. LLM3 (weist auf Probleme bei der direkten Übersetzung hin)

-8

Das SYSTEM bietet die folgenden Leitlinien für den Dialog:

<任务>
根据直接翻译的结果,指出其具体存在的问题。需要提供精确描述,避免含糊其辞,并且无需增添原文中未包含的内容或格式。具体包括但不限于:
不符合英文的表达习惯,请明确指出哪里不合适句子结构笨拙,请指出具体位置,无需提供修改建议,我们将在后续的自由翻译中进行调整表达含糊不清,难以理解,如果可能,可以试图进行解释
<直接翻译>
{{#1711067578643.text#}}
<原文>
{{#1711067409646.input_text#}}
<直接翻译的问题>
5) LLM4 (italienische Übersetzung - zweite Übersetzung)

-9

Das SYSTEM bietet die folgenden Leitlinien für den Dialog:

<任务>基于初次直接翻译的成果及随后识别的各项问题,我们将进行一次重新翻译,旨在更准确地传达原文的意义。在这一过程中,我们将致力于确保内容既忠于原意,又更加贴近英文的表达方式,更容易被理解。在此过程中,我们将保持原有格式不变。
<直接翻译> 
{{#1711067578643.text#}}
<第一次翻译的问题>
{{#1711067817657.text#}}
<意译>
6) Endknoten

-10

Namen der Ausgabevariablen festlegensecond_translation.

7. den Workflow als Werkzeug veröffentlichen

Veröffentlichen Sie den Workflow als Werkzeug, um ihn in Agent zu verwenden, wie unten gezeigt:

-11

Klicken Sie auf , um die Seite Tools aufzurufen, wie unten gezeigt:

-12

8. die Jinja-Vorlage

Beim Schreiben von Prompt habe ich Unterstützung für Jinja-Vorlagen gefunden. Siehe [3][4] für Details.

II. Verwendung von Workflow im Workflow

-13

III. Verwendung von Arbeitsabläufen in Bearbeitern

Im Grunde genommen ist die Behandlung des Workflows als Werkzeug und damit die Erweiterung der Fähigkeiten des Agenten vergleichbar mit anderen Werkzeugen, wie z. B. der Internetsuche, dem wissenschaftlichen Rechnen usw.

-14

-15

IV. Individuelle Prüfung des dreistufigen Übersetzungsworkflows

-16

Die Eingabe ist unten dargestellt:

Transformer是大语言模型的基础。

Die Ausgabe ist unten dargestellt:

The Transformer serves as the cornerstone for large-scale language models.

Die Detailseite ist unten abgebildet:

-17

Die Verfolgungsseite ist unten abgebildet:

-18

1. beginnen

(1) Eingabe

{
"input_text": "Transformer是大语言模型的基础。",
"sys.files": [],
"sys.user_id": "7d8864c3-c456-4588-9b0a-9368c94ca377"
}

(2) Ausgang

{
"input_text": "Transformer是大语言模型的基础。",
"sys.files": [],
"sys.user_id": "7d8864c3-c456-4588-9b0a-9368c94ca377"
}
2) LLM

(1) Datenverarbeitung

{
"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) Ausgang

{
"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) Datenverarbeitung

{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<任务> 您是一名精通英文的专业译者,特别是在将专业的学术论文转换为通俗易懂的科普文章方面有着非凡的能力。请协助我把下面的中文段落翻译成英文,使其风格与英文的科普文章相似。\n<限制> \n请根据中文内容直接翻译,维持原有的格式,不省略任何信息。\n<翻译前> \nTransformer是大语言模型的基础。\n<直接翻译> ",
"files": []
}
]
}

(2) Ausgang

{
"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) Datenverarbeitung

{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<任务>\n根据直接翻译的结果,指出其具体存在的问题。需要提供精确描述,避免含糊其辞,并且无需增添原文中未包含的内容或格式。具体包括但不限于:\n不符合英文的表达习惯,请明确指出哪里不合适句子结构笨拙,请指出具体位置,无需提供修改建议,我们将在后续的自由翻译中进行调整表达含糊不清,难以理解,如果可能,可以试图进行解释\n<直接翻译>\nThe Transformer is the foundation of large language models.\n<原文>\nTransformer是大语言模型的基础。\n<直接翻译的问题>",
"files": []
}
]
}

(2) Ausgang

{
"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) Datenverarbeitung

{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<任务>基于初次直接翻译的成果及随后识别的各项问题,我们将进行一次重新翻译,旨在更准确地传达原文的意义。在这一过程中,我们将致力于确保内容既忠于原意,又更加贴近英文的表达方式,更容易被理解。在此过程中,我们将保持原有格式不变。\n<直接翻译> \nThe Transformer is the foundation of large language models.\n<第一次翻译的问题>\n句子结构笨拙,不符合英文表达习惯。\n<意译> ",
"files": []
}
]
}

(2) Ausgang

{
"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. schlussfolgerung

(1) Eingabe

{
"second_translation": "The Transformer serves as the cornerstone for large-scale language models."
}

(2) Ausgang

{
"second_translation": "The Transformer serves as the cornerstone for large-scale language models."
}

V. Testen des dreistufigen Übersetzungsworkflows in Agent

Beim Starten des Tools:

-19

Beim Schließen des Werkzeugs:

-20

VI. Verwandte Themen

1. wann wird der Workflow im Agenten ausgelöst?

Wie bei Werkzeugen, ausgelöst durch die Werkzeugbeschreibung. Die genaue Implementierung ist nur durch einen Blick in den Quellcode ersichtlich.

bibliographie

[1] Arbeitsablauf: https://docs.dify.ai/v/zh-hans/guides/workflow

[2] Praktisches Unterrichten von Dify für das WeChat-Ökosystem: https://docs.dify.ai/v/zh-hans/learn-more/use-cases/dify-on-wechat

[3] Offizielle Jinja-Dokumentation: https://jinja.palletsprojects.com/en/3.0.x/

[4] Jinja-Vorlage: https://jinja.palletsprojects.com/en/3.1.x/templates/

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Dify v0.6.9 verwendet benutzerdefinierte Workflows als Werkzeuge
de_DEDeutsch