Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Иногда рабочий процесс с несколькими исполнителями и сложными взаимодействиями может быть трудно понять, просто прочитав код. Визуализация может помочь вам увидеть структуру рабочего процесса более четко, чтобы убедиться, что она имеет предназначенную структуру.
Визуализация рабочего процесса может быть достигнута с помощью методов расширения в Workflow классе: ToMermaidString()и ToDotString(), что создает формат схемы русалки и формат Graphviz DOT соответственно.
using Microsoft.Agents.AI.Workflows;
// Create a workflow with a fan-out and fan-in pattern
var workflow = new WorkflowBuilder()
.SetStartExecutor(dispatcher)
.AddFanOutEdges(dispatcher, [researcher, marketer, legal])
.AddFanInEdges([researcher, marketer, legal], aggregator)
.Build();
// Mermaid diagram
Console.WriteLine(workflow.ToMermaidString());
// DiGraph string
Console.WriteLine(workflow.ToDotString());
Чтобы создать файл изображения из формата DOT, можно использовать средства GraphViz со следующей командой:
dotnet run | tail -n +20 | dot -Tpng -o workflow.png
Подсказка
Чтобы экспортировать изображения визуализации, необходимо установить GraphViz.
Полный рабочий процесс с визуализацией см. в примере визуализации.
Визуализация рабочего процесса осуществляется через объект WorkflowViz, который может быть инстанцирован с объектом Workflow. Затем WorkflowViz объект может создавать визуализации в различных форматах, таких как формат Graphviz DOT или формат схемы Русалки.
WorkflowViz Создание объекта является простым:
from agent_framework import WorkflowBuilder, WorkflowViz
# Create a workflow with a fan-out and fan-in pattern
workflow = (
WorkflowBuilder()
.set_start_executor(dispatcher)
.add_fan_out_edges(dispatcher, [researcher, marketer, legal])
.add_fan_in_edges([researcher, marketer, legal], aggregator)
.build()
)
viz = WorkflowViz(workflow)
Затем можно создавать визуализации в разных форматах:
# Mermaid diagram
print(viz.to_mermaid())
# DiGraph string
print(viz.to_digraph())
# Export to a file
print(viz.export(format="svg"))
# Different formats are also supported
print(viz.export(format="png"))
print(viz.export(format="pdf"))
print(viz.export(format="dot"))
# Export with custom filenames
print(viz.export(format="svg", filename="my_workflow.svg"))
# Convenience methods
print(viz.save_svg("workflow.svg"))
print(viz.save_png("workflow.png"))
print(viz.save_pdf("workflow.pdf"))
Подсказка
Для базовых текстовых выходных данных (Mermaid и DOT) дополнительные зависимости не требуются. Для экспорта образов необходимо установить пакет Python, выполнив следующую graphviz команду: pip install graphviz>=0.20.0 и установите GraphViz.
Полный рабочий процесс с визуализацией см. в примере "Параллельная визуализация".
Экспортируемая схема для примера рабочего процесса будет выглядеть примерно так:
flowchart TD
dispatcher["dispatcher (Start)"];
researcher["researcher"];
marketer["marketer"];
legal["legal"];
aggregator["aggregator"];
fan_in__aggregator__e3a4ff58((fan-in))
legal --> fan_in__aggregator__e3a4ff58;
marketer --> fan_in__aggregator__e3a4ff58;
researcher --> fan_in__aggregator__e3a4ff58;
fan_in__aggregator__e3a4ff58 --> aggregator;
dispatcher --> researcher;
dispatcher --> marketer;
dispatcher --> legal;
или в формате Graphviz DOT:
Функции визуализации
Оформление узлов
- Запуск исполнителя: зеленый фон с меткой "(Пуск)"
- Обычные исполнители: синий фон с идентификатором исполнителя
- Входящие узлы: золотой фон с эллиптической формой (DOT) или двойными кругами (Русалка)
Стилизация краев
- Обычные края: сплошные стрелки
- Условные края: дефисные или пунктирные стрелки с метками "условные"
- Fan-out/Fan-in: автоматическая маршрутизация через промежуточные узлы
Параметры макета
- Макет с иерархическим верхним уровнем: четкость визуализации потока
- Кластеризация подграфов: вложенные рабочие процессы, отображаемые как сгруппированные кластеры
- Автоматическое размещение: GraphViz обрабатывает оптимальное размещение узлов