다음을 통해 공유


ai_classify 함수

적용 대상:체크 표시로 '예' Databricks SQL 체크 표시로 '예' Databricks Runtime

중요한

이 기능은 공개 미리 보기HIPAA 규격에 있습니다.

미리 보기 중:

  • 기본 언어 모델은 여러 언어를 처리할 수 있지만 이 AI 함수는 영어로 조정됩니다.
  • AI Functions의 지역 가용성에 대한 지역별로 제한된 기능을 참조하세요.

이 함수는 ai_classify() 사용자가 제공하는 사용자 지정 레이블에 따라 텍스트 콘텐츠를 분류합니다. 기본 분류에 간단한 레이블 이름을 사용하거나 레이블 설명 및 지침을 추가하여 고객 지원 라우팅, 문서 분류 및 콘텐츠 분석과 같은 사용 사례에 대한 정확도를 향상시킬 수 있습니다.

이 함수는 구성 가능한 워크플로를 사용하도록 설정하는 것과 같은 VARIANT다른 AI 함수의 텍스트 또는 ai_parse_document 출력을 허용합니다.

반복할 UI 버전은 분류를 ai_classify참조 하세요.

요구 사항

Apache 2.0 라이선스

현재 사용할 수 있는 기본 모델은 Apache 2.0 라이선스인 Copyright © The Apache Software Foundation에 따라 라이선스가 부여됩니다. 고객은 해당 모델 라이선스를 준수할 책임이 있습니다.

Databricks는 해당 조건을 준수하도록 이러한 라이선스를 검토할 것을 권장합니다. Databricks의 내부 벤치마크에 따라 더 나은 성능을 제공하는 모델이 향후에 나타날 경우 Databricks는 모델(및 이 페이지에 제공된 해당 라이선스 목록)을 변경할 수 있습니다.

이 함수를 구동하는 모델은 Model Serving Foundation 모델 API를 사용하여 사용할 수 있습니다. Databricks에서 사용할 수 있는 모델과 해당 모델의 사용을 제어하는 라이선스 및 정책에 대한 자세한 내용은 해당 모델 용어를 참조하세요.

Databricks의 내부 벤치마크에 따라 더 나은 성능을 제공하는 모델이 미래에 등장할 경우 Databricks는 모델을 변경하고 설명서를 업데이트할 수 있습니다.

  • 이 함수는 일부 지역에서만 사용할 수 있습니다. AI 함수 가용성을 참조하세요.
  • 이 함수는 Azure Databricks SQL 클래식에서 사용할 수 없습니다.
  • Databricks SQL 가격 페이지를 확인하세요.
  • Databricks Runtime 15.1 이상에서는 이 함수가 Databricks 워크플로에서 태스크로 실행되는 노트북을 포함하여 Databricks 노트북에서 지원됩니다.
  • 성능 향상을 위해서는 일괄 처리 유추 워크로드에 Databricks Runtime 15.4 ML LTS가 필요합니다.

구문

ai_classify(
    content VARIANT | STRING,
    labels STRING,
    [options MAP<STRING, STRING>]
) RETURNS VARIANT

버전 1

ai_classify(
    content STRING,
    labels ARRAY<STRING>,
    [options MAP<STRING, STRING>]
) RETURNS STRING

주장

  • content: A VARIANT 또는 STRING 식입니다. 다음 중 하나를 수락합니다:

  • labels STRING: 분류 레이블을 정의하는 리터럴입니다. 레이블은 다음과 같습니다.

    • 단순 레이블: 레이블 이름의 JSON 배열입니다.
      ["urgent", "not_urgent"]
      
    • 설명이 있는 레이블: 레이블 이름을 설명에 매핑하는 JSON 개체입니다. 레이블 설명은 0-1000자여야 합니다.
      {
        "billing_error": "Payment, invoice, or refund issues",
        "product_defect": "Any malfunction, bug, or breakage",
        "account_issue": "Login failures, password resets"
      }
      

    각 레이블은 1-100자여야 합니다. labels 는 2개 이상의 레이블과 500개 이하의 레이블을 포함해야 합니다.

  • options: 구성 옵션을 포함하는 선택 사항 MAP<STRING, STRING> :

    • version: 마이그레이션을 지원하도록 버전 스위치("1.0" v1 동작의 경우, "2.0" v2 동작의 경우). 기본값은 입력 형식을 기반으로 하지만 ."1.0"
    • instructions: 분류 품질을 개선하기 위해 작업 및 도메인에 대한 전역 설명입니다. 20,000자 미만이어야 합니다.
    • multilabel: 여러 범주가 적용될 때 여러 레이블을 반환하도록 "true" 설정합니다. 기본값은 (단일 레이블 분류)입니다 "false" .

버전 1

  • content STRING: 분류할 텍스트가 포함된 식입니다.

  • labels ARRAY<STRING>: 예상 출력 분류 레이블이 있는 리터럴입니다. 2개 이상의 요소와 20개 이하의 요소를 포함해야 합니다. 각 레이블은 1-50자여야 합니다.

  • options: 구성 옵션을 포함하는 선택 사항 MAP<STRING, STRING> :

    • version: 마이그레이션을 지원하도록 버전 스위치("1.0" v1 동작의 경우, "2.0" v2 동작의 경우). 기본값은 입력 형식을 기반으로 하지만 ."1.0"

반품

포함하는 항목을 VARIANT 반환합니다.

{
  "response": ["label_name"], // Array with single label (or multiple if multilabel=true)
  "error_message": null // null on success, or error message on failure
}

필드에는 response 다음이 포함됩니다.

  • 단일 레이블 모드 (기본값): 가장 일치하는 레이블을 포함하는 하나의 요소가 있는 배열입니다.
  • 다중 레이블 모드 (multilabel: "true"): 여러 범주가 적용되는 경우 레이블이 여러 개 있는 배열
  • 레이블 이름은 매개 변수에 제공된 이름과 정확히 일치합니다 labels .

NULL 콘텐츠를 분류할 수 없는 경우 contentNULL 또는 반환합니다.

버전 1

를 반환합니다 STRING. 이 값은 labels 인수에 제공된 문자열 중 하나와 일치합니다.

NULL 콘텐츠를 분류할 수 없는 경우 contentNULL 또는 반환합니다.

예제

단순 레이블 - 레이블 이름만

> SELECT ai_classify(
    'My password is leaked.',
    '["urgent", "not_urgent"]'
  );
 {
   "response": ["urgent"],
   "error": null
 }

설명이 포함된 레이블

> SELECT ai_classify(
    'Customer cannot complete checkout due to payment processing error.',
    '{
      "billing_error": "Payment, invoice, or refund issues",
      "product_defect": "Any malfunction, bug, or breakage",
      "account_issue": "Login failures, password resets",
      "feature_request": "Customer suggestions for improvements"
    }'
  );
 {
   "response": ["billing_error"],
   "error": null
 }

전역 지침 사용

> SELECT ai_classify(
    'User reports app crashes on startup after update.',
    '["critical", "high", "medium", "low"]',
    MAP('instructions', 'Classify bug severity based on user impact and frequency.')
  );
 {
   "response": ["critical"],
   "error": null
 }

다중 레이블 분류

> SELECT ai_classify(
    'Customer wants refund and reports product arrived broken.',
    '{
      "billing_issue": "Payment or refund requests",
      "product_defect": "Damaged or malfunctioning items",
      "shipping_issue": "Delivery problems"
    }',
    MAP('multilabel', 'true')
  );
 {
   "response": ["billing_issue", "product_defect"],
   "error": null
 }

을 사용하여 작성 ai_parse_document

> WITH parsed_docs AS (
    SELECT
      path,
      ai_parse_document(
        content,
        MAP('version', '2.0')
      ) AS parsed_content
    FROM READ_FILES('/Volumes/support/tickets/', format => 'binaryFile')
  )
  SELECT
    path,
    ai_classify(
      parsed_content,
      '["billing_error", "product_defect", "account_issue", "feature_request"]',
      MAP('instructions', 'Customer support ticket classification.')
    ) AS ticket_category
  FROM parsed_docs;

일괄 처리 분류

> SELECT
    description,
    ai_classify(
      description,
      '["clothing", "shoes", "accessories", "furniture", "electronics"]'
    ) AS category
  FROM products
  LIMIT 10;

버전 1

> SELECT ai_classify("My password is leaked.", ARRAY("urgent", "not urgent"));
  urgent

> SELECT
    description,
    ai_classify(description, ARRAY('clothing', 'shoes', 'accessories', 'furniture')) AS category
  FROM
    products
  LIMIT 10;

제한점

버전 2 제한 사항:

  • 이 함수는 Azure Databricks SQL 클래식에서 사용할 수 없습니다.

  • 이 함수는 와 함께 사용할 수 없습니다.

  • 레이블 이름은 각각 1~100자여야 합니다.

  • 매개 변수는 labels 2~500개의 고유한 레이블을 포함해야 합니다.

  • 레이블 설명은 각각 0~1,000자여야 합니다.

  • 최대 총 컨텍스트 크기는 128,000개의 토큰입니다.

버전 1

버전 1 제한 사항:

  • 이 함수는 Azure Databricks SQL 클래식에서 사용할 수 없습니다.

  • 이 함수는 와 함께 사용할 수 없습니다.

  • 레이블 이름은 각각 1~50자여야 합니다.

  • 배열에는 labels 2~20개의 레이블이 포함되어야 합니다.

  • 입력은 content 128,000개 토큰(약 300,000자) 미만이어야 합니다.