다음을 통해 공유


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

Important

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

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

요구 사항

  • 에이전트를 배포하려면 먼저 Unity 카탈로그에 등록해야 합니다. Unity 카탈로그에 등록된 에이전트만 .를 사용하여 deploy()배포할 수 있습니다. AI 에이전트 만들기 및 로그를 참조 하세요. Unity 카탈로그에 에이전트를 등록하면 모델 형식으로 패키지됩니다.
  • MLflow 2.13.1 이상에서 databricks.agentsAPI를 사용하여 에이전트를 deploy() 배포합니다.

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

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

  • 사용자 연결 애플리케이션에 통합할 수 있는 에이전트에 대한 엔드포인트를 제공하는 CPU 모델을 만듭니다.
    • 유추 테이블은 엔드포인트를 제공하는 이러한 모델에서 사용하도록 설정됩니다. 모델 모니터링 및 디버깅에 대한 유추 테이블을 참조 하세요.
      • 인증 자격 증명은 에이전트에 필요한 모든 Databricks 관리 리소스에 자동으로 전달됩니다.
      • 예를 들어 Pinecone을 사용하는 등 Databricks에서 관리되지 않는 리소스 종속성이 있는 경우 비밀이 있는 환경 변수를 API에 deploy() 전달할 수 있습니다. 엔드포인트를 제공하는 모델에서 리소스에 대한 액세스 구성을 참조 하세요.
  • 에이전트에 대해 검토 앱을 사용하도록 설정합니다. 검토 앱을 사용하면 관련자가 에이전트와 채팅하고 앱 검토 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() 배포에 대한 세 개의 유추 테이블을 만들어 엔드포인트를 제공하는 에이전트에 대한 요청 및 응답을 기록합니다.

참고 항목

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 각 요청에 대해 검토 앱에 제공된 형식이 지정된 피드백

요청 로그 및 평가 로그 테이블

위의 페이로드 유추 테이블에서 요청 로그 및 평가 로그라는 두 개의 추가 테이블이 자동으로 생성됩니다. 사용자는 배포와 상호 작용한 후 1시간 이내에 데이터가 이러한 테이블에 있을 것으로 예상할 수 있습니다.

다음은 요청 로그 테이블에 대한 스키마를 보여 줍니다.

열 이름 Type 설명
client_request_id 문자열 클라이언트 요청 ID(일반적으로 null.
databricks_request_id 문자열 Databricks 요청 ID입니다.
date 날짜 요청 날짜입니다.
timestamp_ms Long 타임스탬프(밀리초)입니다.
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 타임스탬프 요청의 타임스탬프입니다.
text_assessment 구조체 검토 앱에서 에이전트의 응답에 대한 피드백에 대한 데이터를 포함하는 구조체 필드입니다.
retrieval_assessment 구조체 응답을 위해 검색된 문서에 대한 피드백에 대한 데이터가 포함된 구조체 필드입니다.

배포된 애플리케이션 가져오기

다음은 배포된 에이전트를 가져오는 방법을 보여 줍니다.

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

추가 리소스