Развертывание агента для создания приложения искусственного интеллекта
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
В этой статье показано, как развернуть агент с помощью deploy()
API.databricks.agents
Требования
- Перед развертыванием агента необходимо зарегистрировать его в каталоге Unity. Только агенты, зарегистрированные в каталоге Unity, могут быть развернуты с помощью
deploy()
. См. статью "Создание и ведение журнала агентов ИИ". При регистрации агента в каталоге Unity он упаковается в виде модели. - MLflow 2.13.1 или более поздней версии для развертывания агентов с помощью
deploy()
API изdatabricks.agents
.
Развертывание агента с помощью deploy()
API deploy()
выполняет следующие действия:
- Создает конечные точки обслуживания модели ЦП для агента, которые могут быть интегрированы в приложение для пользователя.
- Таблицы вывода включены в этих конечных точках обслуживания модели. См . таблицы вывода для мониторинга и отладки моделей.
- Учетные данные проверки подлинности автоматически передаются всем управляемым агентом ресурсам Databricks, указанным при ведении журнала модели. Databricks создает субъект-службу , имеющий доступ к этим ресурсам, и автоматически передает его в конечную точку. См . сведения о проверке подлинности для зависимых ресурсов.
- Если у вас есть зависимости ресурсов, которые не управляются Databricks, например с помощью Pinecone, можно передать переменные среды с секретами в
deploy()
API. См. раздел "Настройка доступа к ресурсам из конечных точек обслуживания модели".
- Таблицы вывода включены в этих конечных точках обслуживания модели. См . таблицы вывода для мониторинга и отладки моделей.
- Включает приложение проверки для агента. Приложение проверки позволяет заинтересованным лицам общаться с агентом и отправлять отзывы с помощью пользовательского интерфейса приложения проверки.
- Записывает каждый запрос в приложение проверки или 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