Развертывание агента для создания приложения искусственного интеллекта
Внимание
Эта функция предоставляется в режиме общедоступной предварительной версии.
В этой статье показано, как развернуть агент ИИ с помощью 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()
выполняет следующие действия:
- Создает конечные точки обслуживания модели ЦП для агента, которые могут быть интегрированы в приложение для пользователя.
- Таблицы вывода включены в этих конечных точках обслуживания модели. См . таблицы вывода для мониторинга и отладки моделей.
- Учетные данные проверки подлинности автоматически передаются всем управляемым агентом ресурсам 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 проверяет, имеет ли создатель конечной точки разрешения на доступ ко всем ресурсам, от которых зависит агент.
Для зависимых агентов 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