Поделиться через


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

Внимание

Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

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

С помощью потока запроса вы можете:

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

В этой статье вы узнаете, как создать и разработать первый поток запросов на портале Azure AI Foundry.

Необходимые компоненты

  • Если у вас еще нет проекта Azure AI Foundry, сначала создайте проект.
  • Поток запросов требует сеанса вычислений. Если у вас нет среды выполнения, ее можно создать на портале Azure AI Foundry.
  • Вам нужна развернутая модель.

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

Вы можете создать поток, клонируя примеры, доступные в коллекции, или создав поток с нуля. Если у вас уже есть файлы потока в локальной или общей папке, можно также импортировать файлы для создания потока.

Чтобы создать поток запроса из коллекции на портале Azure AI Foundry:

  1. Войдите в Azure AI Foundry и выберите проект.

  2. В раскрывающемся меню слева выберите поток запроса.

  3. Выберите + Создать.

  4. На плитке "Стандартный " выберите "Создать".

  5. На странице "Создание нового потока" введите имя папки и нажмите кнопку "Создать".

    Снимок экрана: выбор и создание стандартного потока.

  6. Откроется страница разработки потока запроса. Выберите "Пуск вычислительного сеанса", чтобы запустить вычислительный сеанс для потока.

  7. Теперь вы можете начать разработку потока. По умолчанию отображается пример потока. В этом примере потока есть узлы для средств LLM и Python.

    Снимок экрана: входные и выходные данные потока потоков на странице потока редактирования.

    Примечание.

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

  8. При необходимости в поток можно добавить дополнительные средства. Видимые параметры инструментов: LLM, Prompt и Python. Чтобы просмотреть дополнительные инструменты, нажмите кнопку +Другие инструменты.

    Снимок экрана: где можно найти дополнительные средства на странице потока редактирования запроса.

  9. Выберите подключение и развертывание в редакторе инструментов LLM.

    Снимок экрана: выбранное подключение и развертывание в средстве LLM на странице потока редактирования запроса.

  10. В разделе "Входные данные" добавьте значение для раздела. Например, "атомы".

  11. Выберите "Выполнить" , чтобы запустить поток.

    Снимок экрана: место, где выбрать запуск на странице потока запроса редактирования.

  12. Состояние выполнения потока отображается как запущенное.

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

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

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

  14. Состояние выполнения потока и выходные данные можно просмотреть в разделе "Выходные данные".

    Снимок экрана: сведения о выходных данных.

Создание потока

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

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

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

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

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

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

Включение условного элемента управления в поток

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

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

В частности, можно задать конфигурацию активации для узла, нажав кнопку "Активировать конфигурацию " на карточке узла. Вы можете добавить оператор "when" и задать условие. Вы можете задать условия, ссылаясь на входные данные потока или выходные данные узла. Например, можно задать условие ${input.[input name]} в качестве определенного значения или ${[node name].output} в качестве конкретного значения.

Если условие не выполнено, узел пропускается. Состояние узла отображается как "Обходить".

Проверка потока

Вы можете протестировать поток двумя способами:

  • Запустите один узел.

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

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

  • Запустите весь поток.

    • Чтобы запустить весь поток, нажмите кнопку "Выполнить" в правом верхнем углу.

Просмотр результатов теста и трассировки (предварительная версия)

Для всего выполнения потока после выполнения потока можно увидеть состояние выполнения в баннере запуска. Затем можно выбрать трассировку представления для просмотра трассировки для проверки результата и наблюдения за выполнением потока, где можно просмотреть входные и выходные данные всего потока и каждого узла, а также более подробные сведения об отладке. Он доступен во время выполнения и после завершения выполнения.

Общие сведения о представлении трассировки

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

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

Примечание.

В пакете SDK потока запросов мы определили несколько типов диапазонов, включая LLM, Function, Embedding, Retrieval и Flow. Система автоматически создает диапазоны с информацией о выполнении в указанных атрибутах и событиях.

Дополнительные сведения о типах диапазонов см. в разделе "Диапазон трассировки".

После завершения выполнения потока для проверки результатов можно выбрать кнопку "Просмотреть результаты теста", чтобы проверить все записи выполнения журнала в списке. По умолчанию отображаются записи выполнения, созданные за последние 7 дней. Чтобы изменить условие, можно выбрать фильтр .

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

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

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

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

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

Журнал входных и выходных данных чата

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

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

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

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

  • Поток запросов может помочь пользователю управлять журналом чата. В 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 для отображения списка входных и выходных данных.chat_history

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

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

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

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

Следующие шаги