Dify v0.6.9 utilise des flux de travail personnalisés comme outils
Cela peut être fait dans le Dify Les flux de travail d'IA ont été publiés dans la version 0.6.9 en tant qu'outils réutilisables (à utiliser dans un agent ou un flux de travail). Cela permet de les intégrer à de nouveaux agents et à d'autres flux de travail, éliminant ainsi la duplication des efforts. Deux nouveaux nœuds de flux de travail et un nœud amélioré ont été ajoutés :
L'itération :Assurez-vous que l'entrée est un tableau. Le nœud d'itération traitera chaque élément du tableau à tour de rôle jusqu'à ce que tous les éléments aient été traités. Par exemple, si vous avez besoin d'un long article, il vous suffit de saisir quelques titres. L'article généré contiendra un paragraphe pour chaque titre, ce qui élimine la nécessité d'une programmation complexe.
Extracteur de paramètres :L'extraction de paramètres structurés à partir du langage naturel à l'aide de grands modèles de langage (LLM) simplifie le processus d'utilisation des outils dans les flux de travail et les requêtes HTTP.
Agrégateur de variables :L'assignateur de variables amélioré permet une sélection plus souple des variables. En même temps, l'expérience de l'utilisateur est améliorée grâce à des connexions de nœuds plus performantes.
Dans Dify, les flux de travail sont divisés en deux catégories : Chatflow et Flux de travail Deux types :ChatflowApplications conversationnelles pour les scénarios basés sur le dialogue, y compris le service à la clientèle, la recherche sémantique et la logique à plusieurs étapes dans les réponses de construction.Flux de travailLa solution de gestion de l'information : orientée vers l'automatisation et les scénarios de traitement par lots, elle convient à des applications telles que la traduction de haute qualité, l'analyse de données, la génération de contenu, l'automatisation de l'envoi de courriels, etc.

Portail Chatflow

Portail de flux de travail
I. Processus de traduction en trois étapes
1. démarrer le nœud

La définition des variables d'entrée dans le nœud de départ prend en charge quatre types : texte, paragraphe, options déroulantes et nombres. Ceci est illustré ci-dessous :

Dans Chatflow, le nœud de départ fournira des variables intégrées au système : sys.query et sys.files. sys.query est utilisé pour la saisie des questions de l'utilisateur dans les applications basées sur le dialogue, et sys.files est utilisé pour le téléchargement d'un fichier dans un dialogue, par exemple le téléchargement d'une image pour en comprendre le sens, qui doit être utilisé avec le modèle de compréhension d'image ou des outils pour la saisie d'images.
2. nœud LLM (reconnaissance des noms propres)

Le SYSTÈME fournit des orientations de haut niveau pour le dialogue, comme suit :
<任务> 识别用户输入的技术术语。请用{XXX} -> {XXX}的格式展示翻译前后的技术术语对应关系。
<输入文本>
{{#1711067409646.input_text#}}
<示例>
Transformer -> Transformer
Token -> Token
零样本 -> Zero Shot
少样本 -> Few Shot
<专有名词>
Dans le nœud LLM, les invites d'entrée du modèle peuvent être personnalisées. Si vous sélectionnez le modèle Chat, vous pouvez personnaliser les invites SYSTEM/USER/ASSISTANT. Ceci est illustré ci-dessous :

numéro de série | compte pour | note | |
---|---|---|---|
1 | SYSTÈME (mot clé) | Fournir des orientations de haut niveau pour le dialogue | indice |
2 | UTILISATEUR | Fournir des instructions, des requêtes ou toute autre donnée textuelle au modèle | Questions relatives aux utilisateurs |
3 | ASSISTANT | Modéliser les réponses en fonction des messages des utilisateurs | Réponses des aidants |
3. nœud LLM2 (traduction directe)

Le SYSTÈME fournit des orientations de haut niveau pour le dialogue, comme suit :
<任务> 您是一名精通英文的专业译者,特别是在将专业的学术论文转换为通俗易懂的科普文章方面有着非凡的能力。请协助我把下面的中文段落翻译成英文,使其风格与英文的科普文章相似。
<限制>
请根据中文内容直接翻译,维持原有的格式,不省略任何信息。
<翻译前>
{{#1711067409646.input_text#}}
<直接翻译>
4. le LLM3 (qui souligne les problèmes liés à la traduction directe)

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

Le SYSTÈME fournit des orientations de haut niveau pour le dialogue, comme suit :
<任务>基于初次直接翻译的成果及随后识别的各项问题,我们将进行一次重新翻译,旨在更准确地传达原文的意义。在这一过程中,我们将致力于确保内容既忠于原意,又更加贴近英文的表达方式,更容易被理解。在此过程中,我们将保持原有格式不变。
<直接翻译>
{{#1711067578643.text#}}
<第一次翻译的问题>
{{#1711067817657.text#}}
<意译>
6. nœud final

Définition des noms des variables de sortiesecond_translation
.
7. publier le flux de travail en tant qu'outil
Publier le Workflow en tant qu'outil afin de pouvoir l'utiliser dans l'Agent, comme indiqué ci-dessous :

Cliquez sur pour accéder à la page Outils, comme indiqué ci-dessous :

8. modèle Jinja
En écrivant Prompt, j'ai trouvé un support pour les modèles Jinja. Voir [3][4] pour plus de détails.
II. Utilisation du flux de travail dans le flux de travail

III. Utilisation du flux de travail dans les agents
Le fait de considérer le workflow comme un outil, et donc d'étendre les capacités de l'agent, est similaire à d'autres outils, tels que la recherche sur Internet, l'informatique scientifique, etc.


IV. Test individuel du processus de traduction en trois étapes

L'entrée est illustrée ci-dessous :
Transformer是大语言模型的基础。
Le résultat est illustré ci-dessous :
The Transformer serves as the cornerstone for large-scale language models.
La page de détails est présentée ci-dessous :

La page de suivi est présentée ci-dessous :

1. démarrer
(1) Entrée
{
"input_text": "Transformer是大语言模型的基础。",
"sys.files": [],
"sys.user_id": "7d8864c3-c456-4588-9b0a-9368c94ca377"
}
(2) Sortie
{
"input_text": "Transformer是大语言模型的基础。",
"sys.files": [],
"sys.user_id": "7d8864c3-c456-4588-9b0a-9368c94ca377"
}
2. LE LLM
(1) Traitement des données
{
"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) Sortie
{
"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) Traitement des données
{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<任务> 您是一名精通英文的专业译者,特别是在将专业的学术论文转换为通俗易懂的科普文章方面有着非凡的能力。请协助我把下面的中文段落翻译成英文,使其风格与英文的科普文章相似。\n<限制> \n请根据中文内容直接翻译,维持原有的格式,不省略任何信息。\n<翻译前> \nTransformer是大语言模型的基础。\n<直接翻译> ",
"files": []
}
]
}
(2) Sortie
{
"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) Traitement des données
{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<任务>\n根据直接翻译的结果,指出其具体存在的问题。需要提供精确描述,避免含糊其辞,并且无需增添原文中未包含的内容或格式。具体包括但不限于:\n不符合英文的表达习惯,请明确指出哪里不合适句子结构笨拙,请指出具体位置,无需提供修改建议,我们将在后续的自由翻译中进行调整表达含糊不清,难以理解,如果可能,可以试图进行解释\n<直接翻译>\nThe Transformer is the foundation of large language models.\n<原文>\nTransformer是大语言模型的基础。\n<直接翻译的问题>",
"files": []
}
]
}
(2) Sortie
{
"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) Traitement des données
{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "<任务>基于初次直接翻译的成果及随后识别的各项问题,我们将进行一次重新翻译,旨在更准确地传达原文的意义。在这一过程中,我们将致力于确保内容既忠于原意,又更加贴近英文的表达方式,更容易被理解。在此过程中,我们将保持原有格式不变。\n<直接翻译> \nThe Transformer is the foundation of large language models.\n<第一次翻译的问题>\n句子结构笨拙,不符合英文表达习惯。\n<意译> ",
"files": []
}
]
}
(2) Sortie
{
"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. conclusion
(1) Entrée
{
"second_translation": "The Transformer serves as the cornerstone for large-scale language models."
}
(2) Sortie
{
"second_translation": "The Transformer serves as the cornerstone for large-scale language models."
}
V. Test du processus de traduction en trois étapes dans Agent
Lors du lancement de l'outil :

Lors de la fermeture de l'outil :

VI. Questions connexes
1) Quand le workflow est-il déclenché dans l'agent ?
Comme pour les outils, il faut se fier à la description de l'outil. L'implémentation exacte n'est claire qu'en regardant le code source.
bibliographie
[1] Flux de travail : https://docs.dify.ai/v/zh-hans/guides/workflow[2] Enseignement pratique de Dify à l'écosystème WeChat : https://docs.dify.ai/v/zh-hans/learn-more/use-cases/dify-on-wechat[3] Documentation officielle de Jinja : https://jinja.palletsprojects.com/en/3.0.x/[4] Modèle Jinja : https://jinja.palletsprojects.com/en/3.1.x/templates/© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...