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


Развертывание агента для создания приложения искусственного интеллекта

Внимание

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

В этой статье показано, как развернуть агент ИИ с помощью deploy() API.databricks.agents

Требования

  • MLflow 2.13.1 или более поздней версии для развертывания агентов с помощью deploy() API из databricks.agents.

  • Зарегистрируйте агент ИИ в каталоге Unity. См. раздел "Регистрация цепочки в каталоге Unity".

  • databricks-agents Установите пакет SDK.

    %pip install databricks-agents
    dbutils.library.restartPython()
    

Развертывание агента с помощью deploy()

API deploy() выполняет следующие действия:

  • Создает конечные точки обслуживания модели ЦП для агента, которые могут быть интегрированы в приложение для пользователя.
  • Включает приложение проверки для агента. Приложение проверки позволяет заинтересованным лицам общаться с агентом и отправлять отзывы с помощью пользовательского интерфейса приложения проверки.
  • Записывает каждый запрос в приложение проверки или REST API в таблицу вывода. Данные, зарегистрированные в журнале, включают запросы, ответы и промежуточные данные трассировки из трассировки MLflow.
  • Создает модель обратной связи с тем же каталогом и схемой, что и агент, который вы пытаетесь развернуть. Эта модель отзывов — это механизм, который позволяет принимать отзывы от приложения проверки и записывать их в таблицу вывода. Эта модель обслуживается в той же модели ЦП, что и развернутый агент. Так как эта конечная точка обслуживания включает таблицы вывода, можно записать отзывы из приложения проверки в таблицу вывода.

Примечание.

Развертывание может занять до 15 минут. Необработанные полезные данные JSON занимают 10 – 30 минут, а форматированные журналы обрабатываются из необработанных полезных данных примерно каждые час.


from databricks.agents import deploy
from mlflow.utils import databricks_utils as du

deployment = deploy(model_fqn, uc_model_info.version)

# query_endpoint is the URL that can be used to make queries to the app
deployment.query_endpoint

# Copy deployment.rag_app_url to browser and start interacting with your RAG application.
deployment.rag_app_url

Таблицы вывода с расширенными агентами

Создает deploy() три таблицы вывода для каждого развертывания для журналов запросов и ответов на конечные точки обслуживания агента и из нее. Пользователи могут ожидать, что данные будут находиться в таблице полезных данных в течение часа после взаимодействия с их развертыванием.

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

Примечание.

Если вы включили брандмауэр служба хранилища Azure, обратитесь к группе учетных записей Databricks, чтобы включить таблицы вывода для конечных точек.

Таблица Пример имени таблицы каталога Unity Что такое в каждой таблице
Полезная нагрузка {catalog_name}.{schema_name}.{model_name}_payload Полезные данные необработанных запросов и ответов JSON
Журналы запросов полезных данных {catalog_name}.{schema_name}.{model_name}_payload_request_logs Форматированные запросы и ответы, трассировки MLflow
Журналы оценки полезных данных {catalog_name}.{schema_name}.{model_name}_payload_assessment_logs Отформатированный отзыв, как указано в приложении проверки, для каждого запроса

Ниже показана схема таблицы журналов запросов.

Имя столбца Тип Описание:
client_request_id Строка Как правило null, идентификатор запроса клиента.
databricks_request_id Строка Идентификатор запроса Databricks.
date Дата Дата запроса.
timestamp_ms Long Метка времени в миллисекундах.
timestamp Метка времени Метка времени запроса.
status_code Целое Код состояния конечной точки.
execution_time_ms Long Общее число миллисекундах выполнения.
conversation_id Строка Идентификатор беседы, извлеченный из журналов запросов.
request Строка Последний запрос пользователя из беседы пользователя. Это извлекается из запроса RAG.
response Строка Последний ответ пользователю. Это извлекается из запроса RAG.
request_raw Строка Строковое представление запроса.
response_raw Строка Строковое представление ответа.
trace Строка Строковое представление трассировки, извлеченное из databricks_options структуры ответа.
sampling_fraction Двойной Дробь выборки.
request_metadata Map[String, String] Карта метаданных, связанных с конечной точкой обслуживания модели, связанной с запросом. Эта карта содержит имя конечной точки, имя модели и версию модели, используемую для конечной точки.
schema_version Строка Целое число для версии схемы.

Ниже приведена схема для таблицы журналов оценки.

Имя столбца Тип Описание:
request_id Строка Идентификатор запроса Databricks.
step_id Строка Производный от оценки извлечения.
source Структура Поле структуры, содержащее сведения о том, кто создал оценку.
timestamp Метка времени Метка времени запроса.
text_assessment Структура Поле структуры, содержащее данные для любых отзывов об ответах агента из приложения проверки.
retrieval_assessment Структура Поле структуры, содержащее данные для любых отзывов о документах, полученных для ответа.

Проверка подлинности для зависимых ресурсов

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

Для зависимых агентов LangChain зависимые ресурсы автоматически выводятся во время создания и ведения журнала агента. Эти ресурсы записываются в resources.yaml файл в артефакте модели, зарегистрированной в журнале. Во время развертывания автоматически создает маркеры OAuth M2M, databricks.agents.deploy необходимые для доступа к этим зависимостям ресурсов и обмена данными с ними.

Для измененных агентов PyFunc необходимо вручную указать все зависимости ресурсов во время ведения журнала развернутого агента в параметре resources . См. раздел "Указание ресурсов для агента PyFunc". Во время развертывания databricks.agents.deploy создает маркер OAuth M2M с доступом к ресурсам, указанным в параметре resources , и развертывает его в развернутом агенте.

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

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

Функция Минимальная mlflow версия
Индексы векторного поиска Требуется mlflow 2.13.1 или более поздней версии
Конечные точки обслуживания моделей Требуется mlflow 2.13.1 или более поздней версии
Хранилища SQL Требуется mlflow 2.16.1 или более поздней версии
Функции каталога Unity Требуется mlflow 2.16.1 или более поздней версии

Проверка подлинности вручную

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

Получение развернутых приложений

Ниже показано, как получить развернутые агенты.

from databricks.agents import list_deployments, get_deployments

# Get the deployment for specific model_fqn and version
deployment = get_deployments(model_name=model_fqn, model_version=model_version.version)

deployments = list_deployments()
# Print all the current deployments
deployments

Дополнительные ресурсы