생성형 AI 애플리케이션용 에이전트 배포

Important

이 기능은 공개 미리 보기 상태입니다.

이 문서에서는 deploy()에서 databricks.agents API를 사용하여 AI 에이전트를 배포하는 방법을 보여 줍니다.

요구 사항

  • MLflow 2.13.1 이상에서 databricks.agentsdeploy() API를 사용하여 에이전트를 배포합니다.

  • Unity Catalog에 AI 에이전트를 등록합니다. Unity 카탈로그에 체인 등록을 참조하세요.

  • databricks-agents SDK를 설치합니다.

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

deploy()를 사용하여 에이전트 배포

deploy() API는 다음 작업을 수행합니다.

  • 사용자 연결 애플리케이션에 통합할 수 있는 에이전트에 대한 엔드포인트를 제공하는 CPU 모델을 만듭니다.
  • 에이전트에 대해 검토 앱을 사용하도록 설정합니다. 검토 앱을 사용하면 관련자가 에이전트와 채팅하고 앱 검토 UI를 사용하여 피드백을 제공할 수 있습니다.
  • 검토 앱 또는 REST API에 대한 모든 요청을 유추 테이블에 기록합니다. 기록된 데이터에는 쿼리 요청, 응답 및 MLflow 추적의 중간 추적 데이터가 포함됩니다.
  • 배포하려는 에이전트와 동일한 카탈로그 및 스키마를 사용하여 피드백 모델을 만듭니다. 이 피드백 모델은 검토 앱의 피드백을 수락하고 유추 테이블에 기록할 수 있도록 하는 메커니즘입니다. 이 모델은 배포된 에이전트와 엔드포인트를 제공하는 동일한 CPU 모델에서 제공됩니다. 이 서비스 엔드포인트에는 유추 테이블이 활성화되어 있으므로 검토 앱의 피드백을 유추 테이블로 기록할 수 있습니다.

참고 항목

배포를 완료하는 데 최대 15분이 소요될 수 있습니다. 원시 JSON 페이로드가 도착하는 데 10~30분이 걸리며 형식이 지정된 로그는 약 1시간마다 원시 페이로드에서 처리됩니다.


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()는 각 배포에 대한 세 개의 유추 테이블을 만들어 엔드포인트를 제공하는 에이전트에 대한 요청 및 응답을 기록합니다. 사용자는 배포와 상호 작용한 후 1시간 이내에 페이로드 테이블에 데이터가 표시될 것으로 예상할 수 있습니다.

페이로드 요청 로그 및 평가 로그를 채우는 데 시간이 오래 걸릴 수 있지만 궁극적으로 원시 페이로드 테이블에서 파생됩니다. 페이로드 테이블에서 직접 요청 및 평가 로그를 추출할 수 있습니다. 페이로드 테이블에 대한 삭제 및 업데이트는 페이로드 요청 로그 또는 페이로드 평가 로그에 반영되지 않습니다.

참고 항목

Azure Storage 방화벽을 사용하도록 설정한 경우 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 각 요청에 대해 검토 앱에 제공된 형식이 지정된 피드백

다음은 요청 로그 테이블의 스키마입니다.

열 이름 Type 설명
client_request_id 문자열 클라이언트 요청 ID(일반적으로 null).
databricks_request_id 문자열 Databricks 요청 ID.
date 날짜 요청 날짜.
timestamp_ms Long 타임스탬프(밀리초).
timestamp Timestamp 요청 타임스탬프.
status_code 정수 엔드포인트의 상태 코드.
execution_time_ms Long 총 실행 시간(밀리초)입니다.
conversation_id 문자열 요청 로그에서 추출된 대화 ID입니다.
request 문자열 사용자 대화의 마지막 사용자 쿼리입니다. RAG 요청에서 추출됩니다.
response 문자열 사용자에게 마지막 응답입니다. RAG 요청에서 추출됩니다.
request_raw 문자열 요청의 문자열 표현입니다.
response_raw 문자열 응답의 문자열 표현입니다.
trace 문자열 응답 구조체의 databricks_options에서 추출된 추적의 문자열 표현입니다.
sampling_fraction 두 배 샘플링 분수입니다.
request_metadata Map[String, String] 요청과 연결된 엔드포인트를 제공하는 모델과 관련된 메타데이터의 맵입니다. 이 맵에는 엔드포인트에 사용되는 엔드포인트 이름, 모델 이름 및 모델 버전이 포함됩니다.
schema_version 문자열 스키마 버전의 정수입니다.

다음은 평가 로그 테이블에 대한 스키마입니다.

열 이름 Type 설명
request_id 문자열 Databricks 요청 ID.
step_id 문자열 검색 평가에서 파생됩니다.
source 구조체 평가를 만든 사람에 대한 정보를 포함하는 구조체 필드입니다.
timestamp Timestamp 요청의 타임스탬프.
text_assessment 구조체 검토 앱에서 에이전트의 응답에 대한 피드백에 대한 데이터를 포함하는 구조체 필드입니다.
retrieval_assessment 구조체 응답을 위해 검색된 문서에 대한 피드백에 대한 데이터가 포함된 구조체 필드입니다.

종속 리소스에 대한 인증

에이전트 배포를 위한 모델 제공 엔드포인트를 만들 때 Databricks는 엔드포인트 작성자가 에이전트가 종속된 모든 리소스에 액세스할 수 있는 권한이 있는지 확인합니다.

LangChain 버전 에이전트의 경우 에이전트를 만들고 로깅하는 동안 종속 리소스가 자동으로 유추됩니다. 이러한 리소스는 기록된 모델 아티팩트의 resources.yaml 파일에 기록됩니다. 배포하는 동안 databricks.agents.deploy는 이러한 유추된 리소스 종속성에 액세스하고 통신하는 데 필요한 M2M OAuth 토큰을 자동으로 만듭니다.

PyFunc 버전 에이전트의 경우 resources 매개 변수에서 배포된 에이전트를 로깅하는 동안 리소스 종속성을 수동으로 지정해야 합니다. PyFunc 에이전트에 대한 리소스 지정을 참조하세요. 배포하는 동안 databricks.agents.deployresources 매개 변수에 지정된 리소스에 대한 액세스 권한이 있는 M2M OAuth 토큰을 만들고 배포된 에이전트에 배포합니다.

자동 인증 통과

다음 테이블에서는 자동 인증 통과를 지원하는 기능을 나열합니다. 자동 인증 통과에서는 배포 작성자의 자격 증명을 사용하여 지원되는 기능에 대해 자동으로 인증합니다.

기능 최소 mlflow 버전
벡터 검색 인덱스 mlflow 2.13.1 이상이 필요합니다
모델 제공 엔드포인트 mlflow 2.13.1 이상이 필요합니다
SQL Warehosue mlflow 2.16.1 이상이 필요합니다
Unity 카탈로그 함수 mlflow 2.16.1 이상이 필요합니다

수동 인증

자동 인증 통과를 지원하지 않는 종속 리소스가 있거나 배포 작성자 이외의 자격 증명을 사용하려는 경우 비밀 기반 환경 변수를 사용하여 자격 증명을 수동으로 제공할 수 있습니다. 예를 들어 에이전트에서 Databricks SDK를 사용하여 다른 유형의 종속 리소스에 액세스하는 경우 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

추가 리소스