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


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

Внимание

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

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

Требования

  • Перед развертыванием агента необходимо зарегистрировать его в каталоге Unity. Только агенты, зарегистрированные в каталоге Unity, могут быть развернуты с помощью deploy(). См. статью "Создание и ведение журнала агентов ИИ". При регистрации агента в каталоге Unity он упаковается в виде модели.
  • MLflow 2.13.1 или более поздней версии для развертывания агентов с помощью deploy() API из databricks.agents.

Развертывание агента с помощью 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. Databricks поддерживает автоматическую проверку подлинности зависимых ресурсов, таких как индекс векторного поиска и обслуживание конечных точек модели, необходимых для агента.

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

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

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

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

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

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

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