Dify v0.6.9 использует пользовательские рабочие процессы в качестве инструментов
Это можно сделать в Dify Рабочие процессы AI были выпущены в версии 0.6.9 как инструменты многократного использования (для использования в агенте или рабочем процессе). Это позволяет интегрировать их с новыми агентами и другими рабочими процессами, что исключает дублирование усилий. Добавлены два новых узла рабочего процесса и один улучшенный узел:
Итерация:Убедитесь, что входные данные - это массив. Узел итерации будет обрабатывать каждый элемент массива по очереди, пока не будут обработаны все элементы. Например, если вам нужна длинная статья, просто введите несколько заголовков. В результате будет сгенерирована статья, содержащая абзац для каждого заголовка, что избавит вас от необходимости сложного планирования подсказок.
Извлекатель параметров:Извлечение структурированных параметров из естественного языка с помощью больших языковых моделей (LLM) упрощает процесс использования инструментов в рабочих процессах и выполнения HTTP-запросов.
Агрегатор переменных:Усовершенствованный назначитель переменных поддерживает более гибкий выбор переменных. В то же время пользовательский опыт улучшен благодаря усовершенствованным соединениям узлов.
Рабочие процессы в Dify делятся на Chatflow и Рабочий процесс Два вида:ChatflowРазговорные приложения для сценариев, основанных на диалоге, включая обслуживание клиентов, семантический поиск и многоступенчатую логику в построении ответов.Рабочий процесс: Ориентирован на автоматизацию и пакетные сценарии, подходит для таких приложений, как высококачественный перевод, анализ данных, создание контента, автоматизация электронной почты и многое другое.

Портал Chatflow

Портал рабочих процессов
I. Трехэтапный рабочий процесс перевода
1. Запуск узла

Определение входных переменных в узле Start поддерживает четыре типа: текст, абзац, выпадающие опции и числа. Это показано ниже:

В Chatflow стартовый узел предоставляет системные встроенные переменные: sys.query и sys.files. 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 (перевод с итальянского - второй перевод)

SYSTEM предлагает следующие основные направления для диалога:
<任务>基于初次直接翻译的成果及随后识别的各项问题,我们将进行一次重新翻译,旨在更准确地传达原文的意义。在这一过程中,我们将致力于确保内容既忠于原意,又更加贴近英文的表达方式,更容易被理解。在此过程中,我们将保持原有格式不变。
<直接翻译>
{{#1711067578643.text#}}
<第一次翻译的问题>
{{#1711067817657.text#}}
<意译>
6. конечный узел

Определение имен выходных переменныхsecond_translation
.
7.Публикация рабочего процесса в качестве инструмента
Опубликуйте рабочий процесс как инструмент, чтобы иметь возможность использовать его в Агенте, как показано ниже:

Щелкните, чтобы перейти на страницу Инструменты, как показано ниже:

8.Шаблон Jinja
Во время написания Prompt я обнаружил поддержку шаблонов Jinja. Подробности см. в [3][4].
II. Использование рабочего процесса в рабочем процессе

III. Использование рабочего процесса в агентах
По сути, отношение к Workflow как к инструменту и, соответственно, расширение возможностей Агента аналогично другим инструментам, таким как поиск в Интернете, научные вычисления и т.д.


IV. Индивидуальное тестирование трехэтапного рабочего процесса перевода

Входные данные показаны ниже:
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
При запуске инструмента:

При закрытии инструмента:

VI. Смежные вопросы
1. Когда в агенте запускается рабочий процесс?
Как и в случае с инструментами, их можно найти в описании. Точная реализация становится понятной только при просмотре исходного кода.
библиография
[1] Рабочий процесс: https://docs.dify.ai/v/zh-hans/guides/workflow[2] Практическое обучение Dify экосистеме WeChat: 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/© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...