Разработка потока подсказок

Предупреждение

Разработка функций потока запросов закончилась 20 апреля 2026 г. Функция будет полностью прекращена 20 апреля 2027 г. В дату выхода на пенсию, Prompt Flow переходит в режим только для чтения. Существующие потоки будут продолжать работать до этой даты.

Рекомендуемое действие: Перенесите рабочие нагрузки Prompt Flow на Microsoft Agent Framework до 20 апреля 2027 г.

"Поток подсказок — это средство разработки, упрощающее цикл создания приложений искусственного интеллекта, которые работают на основе больших языковых моделей (LLM)." В этой статье вы узнаете, как создать и разработать поток запросов и поток чата в Студия машинного обучения Azure.

Нарастающий интерес к приложениям ИИ, основанным на LLM (моделях обработки языка), требует комплексного решения, и механизм потоковой обработки запросов предоставляет его, упрощая процесс прототипирования, экспериментов, итерации и развертывания этих приложений. С помощью потока запроса можно:

  • Оркестрация исполняемых потоков с помощью LLM-моделей, подсказок и инструментов Python с помощью визуализированного графа.
  • Легко тестировать, отлаживать и проводить итерации с потоками.
  • Создайте варианты запроса и сравните их производительность.

Создание и разработка потока запроса

Чтобы создать поток запроса, выберите Prompt flow в области навигации Студия машинного обучения Azure слева, а затем выберите Create на странице Prompt flow.

На экране создания потока можно создать поток следующим образом:

  • Создание потока "Стандартный", "Чат" или "Оценка " из шаблона.
  • Клонирование доступного образца из галереи Explore.
  • Импорт существующего потока из локальных файлов или общей папки.

Снимок экрана: создание потока запроса с нуля или из галереи.

Чтобы создать поток, нажмите кнопку "Создать " или "Клонировать " на нужной карте потока. На следующей панели экрана можно изменить новое имя потока, а затем нажмите кнопку "Создать " или "Клонировать". Новый поток открывается в пользовательском интерфейсе разработки.

Сеанс вычислений

Прежде чем приступить к разработке, запустите сеанс вычислений, выбрав "Запустить сеанс вычислений " в верхней части страницы разработки потока. Сеанс вычислений необходим для выполнения процесса. Сеанс вычислений управляет вычислительными ресурсами, необходимыми для запуска приложения, включая образ Docker, содержащий все необходимые пакеты зависимостей.

Снимок экрана: запуск сеанса вычислений в студии.

Страница создания

Сеанс вычислений может занять несколько минут. Во время запуска сеанса вычислений проверьте части страницы разработки потока.

  • Поток или упрощенное представление на левой части страницы — основная рабочая область, в которой вы создаете поток. В упрощённом представлении можно изменять узлы, инструменты, запросы и входные данные; изменять или запускать узлы или весь поток; и определять и просматривать выходные данные.

  • Файлы в правом верхнем углу отображают папку и структуру файлов потока. Каждый поток содержит папку, содержащую файл flow.dag.yaml , файлы исходного кода и системные папки. Вы можете добавлять, изменять, удалять, загружать или скачивать файлы для тестирования, развертывания или совместной работы.

  • Представление Graph в правом нижнем углу визуализирует структуру потока. Вы можете увеличить или уменьшить масштаб или использовать автоматический макет. Вы не можете редактировать это представление напрямую, но вы можете выбрать узел, чтобы найти и изменить его в упрощённом представлении.

Входные и выходные данные потока

В разделах "Входные и выходные данные" можно просматривать, добавлять или удалять и изменять входные и выходные данные.

  • Входные данные потока — это данные, передаваемые в поток в целом. Вы определяете входную схему, указывая имя и тип, и задаете значение каждого входного значения для проверки потока. Вы можете ссылаться на входные данные потока в узлах потока с помощью ${input.<input name>}.

  • Выходные данные потока — это данные, созданные потоком в целом, которые суммируют результаты выполнения потока. Вы можете определить выходное значение потока, ссылаясь на выходные данные одного узла с помощью синтаксиса ${<node name>.output} или ${<node name>.output.<field name>}. Вы можете просмотреть и экспортировать выходную таблицу результатов после завершения выполнения потока или пакетного выполнения.

Средства управления потоками

В потоке можно использовать различные виды инструментов, таких как LLM, Python, Промпт, Serp API и безопасность контента. При выборе инструмента новый узел для этого инструмента добавляется в конец потока. Необходимо указать имя узла и задать необходимые конфигурации. Элементы управления узла можно использовать для изменения положения узла в потоке.

Входные и выходные данные узла

Средства LLM и Prompt используют Jinja в качестве языка шаблонизации для динамического создания подсказки. Например, вы можете использовать {{}}, чтобы заключить входное имя вместо фиксированного текста, чтобы его можно было заменять динамически.

Входные и выходные данные узла можно задать следующим образом:

  • Задайте входное значение напрямую.
  • Укажите входные данные потока с помощью ${input.<input name>}.
  • Используйте ${<node name>.output} или ${<node name>.output.<field name>} для ссылки на выходные данные узла.

После завершения создания запроса или скрипта Python выберите Проверить и разобрать входные данные, чтобы система автоматически выполнила анализ входных данных узла на основе шаблона запроса и ввода функции Python.

Вы можете связать узлы, ссылаясь на выходные данные узла. Например, можно ссылаться на выходные данные узла LLM в входных данных Python узла, чтобы Python узел потреблял выходные данные узла LLM. В представлении Graph можно увидеть два узла, связанных друг с другом.

Узлы LLM

Для узла OpenAI LLM Azure необходимо выбрать Connection, Api и deployment_name и задать Prompt. Вы используете подключение для безопасного хранения ключей секретов или других конфиденциальных учетных данных, необходимых для взаимодействия с Azure OpenAI.

Если у вас еще нет подключения, создайте его перед добавлением узла LLM и убедитесь, что в ресурсе Azure OpenAI развернуто chat или completion. Дополнительные сведения см. в статье Настройка подключения и Azure Создание ресурса и развертывание модели с помощью OpenAI.

узлы Python

Чтобы использовать средство Python, необходимо задать скрипт Python, входное значение и другие конфигурации. Новый узел Python предоставляет следующую функцию Python, которая определяет входные и выходные данные.

from promptflow import tool

# The inputs section will change based on the arguments of the tool function, after you save the code
# Adding type to arguments and return value will help the system show the types properly
# Please update the function name/signature per need
@tool
def my_python_tool(input1: str) -> str:
    return 'hello ' + input1

Управление условиями

Поток Prompt flow предлагает условное управление, которое позволяет задать условия для выполнения любых узлов в потоке.

Условный элемент управления предоставляет возможность связать каждый узел в потоке с активированной конфигурацией. Эта конфигурация — это when инструкция, которая определяет, когда должен выполняться узел. Эта функция реализуется в сложных потоках, где выполнение определенных задач зависит от результатов предыдущих задач. С помощью условного элемента управления можно настроить определенные узлы для выполнения только в том случае, если выполнены указанные условия.

Задайте конфигурацию активации для узла, нажав кнопку "Активировать конфигурацию " на карточке узла. Добавьте инструкцию "Когда " и задайте условие. Вы можете задать условия, ссылаясь на входные данные потока или выходные данные узла. Например, можно задать условие ${input.<input name>} или ${<node name>.output} в качестве определенных значений. Если условие не выполнено, узел пропускается, а состояние узла отображается как Пропущено.

Снимок экрана: активация конфигурации для включения условного управления.

Тестирование потока

Вы можете протестировать поток, выполнив один узел или выполнив весь поток.

  • Чтобы запустить один узел, щелкните значок запуска на карточке узла. После завершения выполнения узла можно быстро проверить результаты в разделе выходных данных узла.
  • Чтобы запустить весь поток, выберите "Выполнить " в верхней части страницы.

Выходные данные потока

После нажатия кнопки "Выполнить" , чтобы выполнить поток, вы увидите состояние выполнения в баннере в верхней части страницы. Выберите "Просмотреть выходные данные " в верхнем баннере или верхней строке меню, чтобы просмотреть подробные входные данные, выходные данные, выполнение потока и сведения о оркестрации.

 Снимок экрана: кнопка просмотра результата в двух расположениях.

После завершения выполнения потока можно выбрать "Просмотреть выходные данные ", чтобы проверить все исторические выходные данные на экране выходных данных .

Снимок экрана: результат теста потока.

Трассировка

Трассировка отключена по умолчанию. Чтобы включить трассировку, вам нужно задать переменную среды PF_DISABLE_TRACING значением false. Одним из способов этого является добавление следующего элемента в узел Python:

import os
os.environ["PF_DISABLE_TRACING"] = "false"

Перейдите на вкладку "Трассировка" на экране "Результаты", чтобы просмотреть график, предоставляющий сведения о длительности и стоимости токенов, связанных с потоком. Выберите поток под именем узла, чтобы просмотреть подробные сведения о потоке в правой области.

Разверните поток и выберите любой шаг, чтобы просмотреть подробные сведения для этого шага. Вы можете увидеть длительность выполнения каждого узла в дереве интервалов. Дополнительные сведения см. в спецификации диапазона трассировки.

 Снимок экрана сведений о трассировке.

Разработка потока чата

Поток чата — это определенный тип потока запросов, предназначенный для разработки беседных приложений. Поток чата основывается на стандартных возможностях потока, чтобы обеспечить расширенную поддержку ввода и вывода чата и истории чата. С помощью потока чата можно легко создать чат-бот, который обрабатывает входные и выходные данные чата.

Чтобы создать поток чата, на экране "Создать поток " выберите "Создать " на карте потока чата или выберите "Чат " в коллекции "Изучение " и клонируйте один из доступных потоков.

На странице разработки потока чата поток чата помечается меткой чата , чтобы отличить ее от стандартных и оценочных потоков. Чтобы протестировать поток чата, выберите "Чат " в верхней части страницы, чтобы открыть поле чата для беседы.

Снимок экрана: страница разработки потока чата.

Входные данные чата, выходные данные чата и журнал чата

Наиболее важными элементами, которые отличают поток чата от стандартного потока, являются входные данные чата, журналчата и выходные данные чата. История чата и ввод чата требуются в потоках чата.

  • Входные данные чата относятся к сообщениям или запросам, отправленным пользователями чат-боту. Эффективная обработка входных данных чата имеет решающее значение для успешной беседы, так как она включает понимание намерений пользователей, извлечение соответствующей информации и активацию соответствующих ответов.

  • Журнал чата — это запись всех взаимодействий между пользователем и чат-ботом, включая входные данные пользователя и выходные данные, созданные ИИ. Ведение журнала чата является важным для отслеживания контекста беседы и обеспечения ИИ может создавать контекстно релевантные ответы.

  • Выходные данные чата ссылаются на созданные ИИ сообщения, отправляемые пользователям в ответ на их входные данные. Создание контекстно подходящих и привлекательных выходных данных чата жизненно важно для положительного взаимодействия с пользователем.

Поток чата может иметь несколько входных данных. В разделе входные данные потока чата вы отмечаете один из входов, как вход чата, и заполняете его значение, вводя вопрос в поле чата.

Снимок экрана: тестовый вопрос в разделе

Управление журналом чата

Чтобы помочь вам управлять журналом чатов, в разделе chat_history элемент зарезервирован для представления журнала чатов. Невозможно изменить chat_historyвручную.

Журнал чата структурирован как список входных и выходных данных. Все взаимодействия в поле чата, включая входные данные чата пользователя, созданные выходные данные чата, а также другие входные и выходные данные потока, автоматически хранятся в журнале чата. В следующем коде показана структура журнала чата.

[
{
    "inputs": {
    "<flow input 1>": "xxxxxxxxxxxxxxx",
    "<flow input 2>": "xxxxxxxxxxxxxxx",
    "<flow input N>""xxxxxxxxxxxxxxx"
    },
    "outputs": {
    "<flow output 1>": "xxxxxxxxxxxx",
    "<flow output 2>": "xxxxxxxxxxxxx",
    "<flow output M>": "xxxxxxxxxxxxx"
    }
},
{
    "inputs": {
    "<flow input 1>": "xxxxxxxxxxxxxxx",
    "<flow input 2>": "xxxxxxxxxxxxxxx",
    "<flow input N>""xxxxxxxxxxxxxxx"
    },
    "outputs": {
    "<flow output 1>": "xxxxxxxxxxxx",
    "<flow output 2>": "xxxxxxxxxxxxx",
    "<flow output M>": "xxxxxxxxxxxxx"
    }
}
]

Примечание

При выполнении тестов в поле чата вы автоматически сохраняете журнал чата. Для пакетных запусков необходимо включить журнал чатов в набор данных пакетного запуска. Если журнал чата недоступен, задайте chat_history пустой список [] в наборе данных пакетного запуска.

Чтобы получить прошлые взаимодействия, обратитесь к chat_history в ваших запросах. Затем можно ссылаться на предыдущие входные и выходные данные, чтобы создать контекстно соответствующие ответы. Включение истории чатов в ваши запросы необходимо для создания ответов чат-бота, учитывающих контекст и вызывающих интерес.

Вы можете использовать грамматику языка Jinja цикл for для отображения списка входных и выходных данных из chat_history.

{% for item in chat_history %}
user:
{{item.inputs.question}}
assistant:
{{item.outputs.answer}}
{% endfor %}

Тестирование с помощью поля чата

Поле чата предоставляет интерактивный способ тестирования потока чата путем имитации беседы с чат-ботом. Чтобы протестировать поток чата с помощью поля чата :

  1. Выберите "Чат" , чтобы открыть боковую панель чата .
  2. Введите тестовые вопросы в поле чата в нижней части экрана, чтобы отправить их в чат-бот.
  3. Просмотрите ответы чат-бота, чтобы убедиться, что они контекстно подходят и точны.
  4. Выберите "Просмотреть выходные данные " в верхней части страницы разработки, чтобы быстро просмотреть и отладить входные данные чата, выходные данные и журнал.
  5. На экране "Выходные данные" выберите вкладку "Трассировка ", а затем выберите поток, чтобы просмотреть подробные сведения о потоке в правой области. Разверните поток и выберите любой шаг, чтобы просмотреть подробные сведения для этого шага.

 Снимок экрана: интерфейс чата потока.