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


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

Внимание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Каждый поток представлен папкой, содержащей файл 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} в качестве конкретного значения.

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

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

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

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

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

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

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

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

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

В дереве диапазонов вызовы LLM легко идентифицируются как диапазон LLM . Эти сведения содержат сведения о продолжительности вызова LLM и связанной стоимости маркера.

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

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

Примечание.

В пакете 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. Просмотрите трассировку на месте для быстрого наблюдения и отладки.

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