Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предупреждение
Разработка функций потока запросов закончилась 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 %}
Тестирование с помощью поля чата
Поле чата предоставляет интерактивный способ тестирования потока чата путем имитации беседы с чат-ботом. Чтобы протестировать поток чата с помощью поля чата :
- Выберите "Чат" , чтобы открыть боковую панель чата .
- Введите тестовые вопросы в поле чата в нижней части экрана, чтобы отправить их в чат-бот.
- Просмотрите ответы чат-бота, чтобы убедиться, что они контекстно подходят и точны.
- Выберите "Просмотреть выходные данные " в верхней части страницы разработки, чтобы быстро просмотреть и отладить входные данные чата, выходные данные и журнал.
- На экране "Выходные данные" выберите вкладку "Трассировка ", а затем выберите поток, чтобы просмотреть подробные сведения о потоке в правой области. Разверните поток и выберите любой шаг, чтобы просмотреть подробные сведения для этого шага.