Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Этот документ относится к порталу Microsoft Foundry (классическая модель).
🔍 Ознакомьтесь с документацией по Microsoft Foundry (новая), чтобы узнать о новом портале.
Это важно
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в разделе Supplemental Terms of Use for Microsoft Azure Previews.
Поток запросов — это средство разработки, предназначенное для оптимизации всего цикла разработки приложений искусственного интеллекта на основе больших языковых моделей (LLM). Поток запросов предоставляет комплексное решение, значительно упрощающее процесс прототипирования, экспериментации, итерации и развертывания ваших приложений ИИ.
С помощью механизма обработки запросов вы можете:
- Оркестрация рабочих процессов с использованием LLM-моделей, запросов и инструментов Python при помощи визуализированного графа.
- Тестируйте, отлаживайте и итерируйте ваши потоки с легкостью.
- Создайте варианты запроса и выполните их сравнение по производительности.
В этой статье вы узнаете, как создать и разработать первый поток запроса на портале Microsoft Foundry.
Предпосылки
Это важно
Эта статья предоставляет устаревшую поддержку для проектов на основе концентраторов. Он не будет работать для проектов Foundry. См. Как мне узнать, какой тип проекта у меня есть?
Примечание о совместимости пакета SDK. Для примеров кода требуется определенная версия пакета SDK Для Microsoft Foundry. Если возникают проблемы совместимости, рассмотрите возможность перехода с проекта на базе концентратора на проект Foundry.
- Учетная запись Azure с активной подпиской. Если у вас нет, создайте учетную запись free Azure, которая включает бесплатную пробную подписку.
- Если у вас нет, создайте проект на основе концентратора.
- Поток запросов требует сеанса вычислений. Если у вас нет среды выполнения, ее можно создать на портале Foundry.
- Вам нужна развернутая модель.
- Настройте управление доступом для учетной записи объектного хранилища в вашем проекте. Назначьте вашей учетной записи пользователя роль Участник хранения данных BLOB-объектов.
- В нижней левой части портала Foundry выберите центр управления.
- В Соединяемые ресурсы для центра выберите ссылку, соответствующую типу Azure Blob Storage.
- Выберите Просмотр в портале Azure
- В Azure portal выберите Access control (IAM).
- Выберите Добавить>Добавить назначение ролей.
- Найдите Сотрудник данных в хранилище Blob, а затем выберите его.
- Используйте страницу добавления назначения ролей, чтобы добавить себя в качестве члена.
- Выберите Рецензирование + Назначить, чтобы проверить назначение.
- Нажмите кнопку "Проверить и назначить" для назначения роли.
Создание и разработка потока запроса
Вы можете создать поток, клонируя примеры, доступные в коллекции, или создав поток с нуля. Если у вас уже есть файлы потока в локальной или общей папке, можно также импортировать файлы для создания потока.
Чтобы создать поток подсказок из галереи на портале Foundry, выполните следующие действия.
Подсказка
Так как вы можете настроить левую панель на портале Microsoft Foundry, вы можете увидеть другие элементы, отличные от указанных в этих шагах. Если вы не видите, что вы ищете, выберите ... Подробнее в нижней части левой панели.
Войдите в Microsoft Foundry. Убедитесь, что переключатель New Foundry отключен. Эти действия относятся к Foundry (классическая).
Выберите ваш проект.
Если вы находитесь в центре управления, выберите Перейти к проекту, чтобы вернуться к своему проекту.
В раскрывающемся меню слева выберите Prompt flow.
Нажмите кнопку +Создать.
В плитке Стандартный поток выберите Создать.
На странице "Создание нового потока" введите имя папки и нажмите кнопку "Создать".
Откроется страница авторинга потока подсказок. Выберите "Пуск вычислительного сеанса", чтобы запустить вычислительный сеанс для потока.
Теперь вы можете начать создание потока. По умолчанию отображается пример потока. В этом примере потока есть узлы для средств LLM и Python.
Замечание
Представление графа только для визуализации. В нем показана структура потока, которую вы разрабатываете. Вы не можете напрямую редактировать представление графа, но вы можете увеличить масштаб, уменьшить и прокрутить. Вы можете выбрать узел в представлении графа, чтобы выделить и перейти к узлу в режиме редактирования средства.
При желании вы можете добавить дополнительные инструменты в поток. Видимые параметры инструментов: LLM, Prompt и Python. Чтобы просмотреть дополнительные инструменты, нажмите кнопку +Другие инструменты.
Выберите подключение и развертывание в редакторе инструментов LLM.
В разделе "Входные данные" добавьте значение для темы. Например, «атомы».
Выберите "Выполнить" , чтобы запустить поток.
Состояние выполнения потока отображается как запущенное.
После завершения выполнения потока выберите "Просмотреть выходные данные ", чтобы просмотреть результаты потока.
Состояние выполнения потока и выходные данные можно просмотреть в разделе "Выходные данные".
Создание потока
Каждый поток представлен папкой, содержащей файл flow.dag.yaml', файлы исходного кода и системные папки. Вы можете добавлять новые файлы, изменять существующие файлы и удалять файлы. Вы также можете экспортировать файлы в локальное хранилище или импортировать файлы из локального хранилища.
Помимо встроенного редактирования узла в представлении по умолчанию, вы также можете включить переключатель режима необработанного файла и выбрать имя файла, чтобы изменить файл на вкладке открытия файла.
Входные и выходные данные потока
Входные данные потока — это данные, передаваемые в поток в целом. Определите входную схему, указав имя и тип. Установите значение каждого входного элемента для проверки потока. Вы можете ссылаться на входные данные потока позже в узлах потока с помощью ${inputs.[input name]} синтаксиса.
Выходные данные потока — это данные, созданные потоком в целом, которые суммируют результаты выполнения потока. Вы можете просматривать и экспортировать выходную таблицу после завершения выполнения потока или пакетного выполнения. Определите выходное значение потока, ссылаясь на выходные данные одного узла потока с помощью синтаксиса ${[node name].output} или ${[node name].output.[field name]}.
Связывание узлов
Ссылаясь на выходные данные узла, можно связать узлы вместе. Например, можно ссылаться на выходные данные узла LLM в входных данных узла Python, поэтому узел Python может использовать выходные данные узла LLM, а в представлении графа можно увидеть, что два узла связаны вместе.
Включение условного управления потоком
Поток запросов предлагает не только упрощенный способ выполнения потока, но и обеспечивает мощный компонент для разработчиков — условный контроль, который позволяет пользователям задавать условия для выполнения любого узла в потоке.
В своей основе условное управление предоставляет возможность связать каждый узел в потоке с конфигурацией активации. Эта конфигурация, по сути, является оператором "когда", который определяет, когда должен выполняться узел. Эта функция реализуется при наличии сложных потоков, в которых выполнение определенных задач зависит от результатов предыдущих задач. С помощью условного элемента управления можно настроить определенные узлы для выполнения только в том случае, если выполнены указанные условия.
В частности, можно задать конфигурацию активации для узла, нажав кнопку "Активировать конфигурацию " на карточке узла. Вы можете добавить оператор "when" и задать условие.
Вы можете задать условия, ссылаясь на входные данные потока или выходные данные узла. Например, можно задать условие ${inputs.[input name]} в качестве определенного значения или ${[node name].output} в качестве конкретного значения.
Если условие не выполнено, узел пропускается. Состояние узла отображается как "Обойдено".
Проверка потока
Вы можете протестировать поток двумя способами:
Запустите один узел:
- Чтобы запустить один узел, выберите значок запуска на узле в представлении по умолчанию. После завершения выполнения можно быстро проверить результат в разделе выходных данных узла.
- Чтобы запустить один узел, выберите значок запуска на узле в представлении по умолчанию. После завершения выполнения можно быстро проверить результат в разделе выходных данных узла.
Запустите весь поток:
- Чтобы запустить весь поток, нажмите кнопку "Выполнить " в правом верхнем углу.
Просмотр результатов теста и трассировки (предварительная версия)
Трассировка отключена по умолчанию. Чтобы включить трассировку, нужно задать переменную среды PF_DISABLE_TRACING на значение false. Одним из способов этого является добавление следующего элемента в узел Python:
import os
os.environ["PF_DISABLE_TRACING"] = "false"
После выполнения потока вы можете увидеть состояние выполнения всего процесса в баннере выполнения. Чтобы просмотреть трассировку для проверки результата и наблюдения за выполнением потока, можно выбрать "Просмотреть выходные данные " и выбрать вкладку трассировки . Вы можете просмотреть входные и выходные данные всего потока и каждого узла, а также более подробные сведения об отладке. Он доступен во время выполнения и после его завершения.
Понимание представления трассировки
Перейдите на вкладку "Трассировка" на экране "Выходные данные", чтобы просмотреть график, предоставляющий сведения о длительности и затратах на токены потока. Выберите поток под именем узла, чтобы просмотреть подробные сведения о потоке в правой области.
Замечание
В SDK потока запросов мы определили несколько типов спанов, включая LLM, Function, Embedding, Retrieval и Flow. Система автоматически создает диапазоны с информацией о выполнении в указанных атрибутах и событиях.
Дополнительные сведения о типах диапазонов см. в разделе Trace span.
Разработка потока чата
Поток чата предназначен для разработки беседных приложений, опираясь на возможности стандартного потока и обеспечивая расширенную поддержку входных и выходных данных чата и управления журналом чата. С помощью потока чата можно легко создать чат-бот, который обрабатывает входные и выходные данные чата.
На странице разработки потока чата поток чата помечен меткой "чат", чтобы отличить его от стандартного потока и потока оценки. Чтобы проверить поток чата, нажмите кнопку "Чат", чтобы активировать поле чата для беседы.
Журнал входных и выходных данных чата
Наиболее важными элементами, которые отличают поток чата от стандартного потока, являются входные данные чата, журнал чата и выходные данные чата.
- Входные данные чата: входные данные чата ссылаются на сообщения или запросы, отправленные пользователями в чат-бот. Эффективная обработка входных данных чата имеет решающее значение для успешной беседы, так как она включает понимание намерений пользователей, извлечение соответствующей информации и активацию соответствующих ответов.
- Журнал чата: журнал чата — это запись всех взаимодействий между пользователем и чат-ботом, включая входные данные пользователя и созданные ИИ выходные данные. Ведение журнала чата является важным для отслеживания контекста беседы и обеспечения ИИ может создавать контекстно релевантные ответы.
- Выходные данные чата: выходные данные чата ссылаются на созданные ИИ сообщения, отправляемые пользователю в ответ на их входные данные. Создание контекстно подходящих и привлекательных выходных данных чата жизненно важно для положительного взаимодействия с пользователем.
Поток чата может иметь несколько входных данных, журнал чата и входные данные чата требуются в потоке чата.
В разделе входных данных потока чата входные данные потока можно пометить как входные данные чата. Затем вы можете заполнить входное значение чата, введя в поле чата.
Поток сообщений может помочь пользователю управлять историей чата. В разделе
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-loop для отображения списка данных на входе и выходе из chat_history.
{% for item in chat_history %}
user:
{{item.inputs.question}}
assistant:
{{item.outputs.answer}}
{% endfor %}
Тестирование с помощью поля чата
Поле чата предоставляет интерактивный способ тестирования потока чата путем имитации беседы с чат-ботом. Чтобы протестировать поток чата с помощью поля чата, выполните следующие действия.
- Нажмите кнопку "Чат", чтобы открыть поле чата.
- Введите тестовые данные в поле для ввода и нажмите клавишу ВВОД, чтобы отправить их чат-боту.
- Просмотрите ответы чат-бота, чтобы убедиться, что они контекстно подходят и точны.
- Просмотрите трассировку на месте для быстрого наблюдения и отладки.