ai_decide 함수

적용 대상:확인 표시 '예' Databricks SQL 확인 표시 '예' Databricks Runtime

Important

이 기능은 베타 버전으로 제공됩니다.

이 함수는 ai_decide() 텍스트나 구조화된 데이터와 비교하여 하나 이상의 질문을 평가합니다. 각 질문에 대해서는 확률, 명명된 기준 중 선택지, 또는 순서가 정해진 척도의 점수를 반환합니다. 지원 티켓 라우팅, 이벤트에 주의가 필요한지 평가하거나, 자신이 정의한 루브릭을 사용해 우선순위를 정하는 데 사용하세요.

콜의 모든 질문은 동일한 입력을 사용하며, 이를 '라고 부릅니다.state 한 번의 호출에서 다양한 질문 유형을 결합해 반환된 답변을 하위 SQL 쿼리에 사용할 수 있습니다.

데이터 보안

문서 데이터는 Databricks 보안 경계 내에서 처리됩니다. Databricks는 AI 함수 호출에 전달되는 매개변수를 저장하지 않지만, Databricks 런타임 버전과 같은 메타데이터 실행 세부 사항은 유지합니다.

요구 사항

Apache 2.0 라이선스

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

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

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

Azure Databricks 내부 벤치마크에 따라 성능이 더 좋은 모델이 등장하면 Databricks는 모델을 변경하고 설명서를 업데이트할 수 있습니다.

  • 이 함수는 일부 지역에서만 사용할 수 있습니다. AI 함수 가용성을 참조하세요.

  • 향상된 보안 및 규정 준수 추가 기능이 있는 작업 영역의 경우

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

  • Databricks 런타임 15.4 LTS 이상이 필요합니다. 최고의 성능과 최신 기능 접근을 위해 Databricks Runtime 18.2 이상이 권장됩니다.

  • Databricks SQL 가격 페이지를 확인하세요.

Syntax

ai_decide(state, questions [, options])

Arguments

  • state: VARIANT 질문에 답하는 데 필요한 내용, 맥락, 예시를 포함하는 표현 STRING . 이 값은 행마다 달라질 수 있습니다. 다음 중 하나를 수락합니다:

    • STRING 일반 텍스트나 JSON으로 인코딩된 객체 또는 배열을 포함하는 형태입니다. JSON 객체와 배열은 구조화된 데이터로 해석됩니다. 다른 문자열들은 텍스트로 취급됩니다.
    • VARIANT 다른 AI 함수(예: ai_parse_document 또는ai_extract)에 의해 생성된 A
  • questions: 비어 있지 않은 JSON 객체를 포함하는 상수 STRING 표현식입니다. 각 키는 비어 있지 않은 질문 ID이며, 각 값은 질문 정의입니다. 모든 행에 동일한 정의가 적용됩니다. 질문 정의를 참조하세요.

  • options: 선택적 상수 MAP<STRING, STRING> 표현식입니다. 지원되는 옵션은 version이며, 값 '1.0'은 입니다. 기본 버전은 1.0입니다. 명시 map('version', '1.0')적으로 명시하려면 .

질문 정의

각 문제 정의는 와 instructions를 필요로 하며type, 문제 criteria 유형에 따라 요구되는 경우 필요합니다. 필수 필드는 .null 다른 분야는 지원되지 않습니다.

  • type: 중 noul하나, choice또는 score.
  • instructions: 상태 평가 명령어는 문자열, JSON 객체 또는 JSON 배열로 표현됩니다.
  • criteria: 답변 방식을 정의하는 설명들. 필요한 형태는 에 따라 달라집니다.type

Noul 질문

질문이 참일 가능성을 추정하는 데 사용 noul 하세요. 결과는 0부터 1까지의 숫자입니다.

선택적 criteria 객체는 그 false 결과를 설명하는 키와 를 포함 true 할 수 있습니다. 각 설명은 문자열, JSON 객체, 또는 JSON 배열일 수 있습니다. 필요하지 않을 때는 생략하세요 criteria . 만약 제공된다면, criteria 는 반드시 객체여야 하며 될 null수 없다.

{
  "needs_escalation": {
    "type": "noul",
    "instructions": "Does this ticket need immediate escalation?",
    "criteria": {
      "true": "An active service outage blocks the customer from working.",
      "false": "The customer can continue working or has a workaround."
    }
  }
}

선택 질문

choice 명명된 기준 집합 중에서 하나의 라벨을 선택하세요.

필요한 criteria 객체는 1에서 255개의 비어 있지 않은 라벨을 설명에 매핑합니다. 각 설명은 문자열, JSON 객체, JSON 배열 또는 null.일 수 있습니다. 라벨만으로 선택을 설명할 때 사용 null 하세요.

{
  "team": {
    "type": "choice",
    "instructions": "Which team should handle this ticket?",
    "criteria": {
      "shipping": "Delivery or shipment issues",
      "billing": "Payment or invoice issues",
      "technical_support": "Product technical problems"
    }
  }
}

점수 질문

상태를 순서화된 척도에 대비해 평가하는 데 사용 score 하세요.

필요한 criteria 배열은 2개에서 10개까지의 설명을 포함하며, 낮은 순서부터 높은 순서로 정렬되어 있습니다. 각 설명은 문자열, JSON 객체, 또는 JSON 배열일 수 있습니다. 첫 번째 기준은 지수 0를, 다음 기준은 지수 1를, 이런 식으로 이어집니다.

그 결과가 이 지수들의 확률 가중 평균입니다. 이 기준은 분할 수 있으며, 기준 수에서 1을 뺀 수 까지 다양 0 합니다. 예를 들어, , 0.3, 0.1의 확률은 0.6 세 가지 기준에 대해 점수를 얻습니다.1.5

{
  "urgency": {
    "type": "score",
    "instructions": "How urgent is this ticket?",
    "criteria": [
      "Routine request with no time pressure",
      "Time-sensitive issue with a workaround",
      "Critical issue that blocks the customer"
    ]
  }
}

Returns

a를 반환하여 필드, responsemetadata, error_message, 로 반환합니다VARIANT. 필드에는 response 질문당 한 개의 항목이 있는 객체가 있습니다 answers . 질문 ID는 매개변수에 questions 제공된 것과 정확히 일치합니다. 각 답변에는 type 질문 유형에 맞는 필드가 포함되어 있습니다: noul, choice, 또는 score. 다음 예시들은 각 문제 유형별 필드를 보여줍니다 response :

  • Noul 질문: probability 질문이 참일 가능성을 추정하기 위해 0에서 1까지 A를 제시합니다.

    {
      "answers": {
        "needs_escalation": {
          "type": "noul",
          "probability": 0.1
        }
      }
    }
    
  • 선택 질문: choice A가 가장 높은 확률을 가진 라벨과 probabilities 모든 라벨을 그 확률에 대응시키는 객체. confidence 는 0부터 1까지의 숫자로, 주가 평가를 얼마나 잘 지원하는지를 나타냅니다. 값의 probabilities 합은 1입니다. 라벨 이름 criteria은 .

    {
      "answers": {
        "team": {
          "type": "choice",
          "choice": "shipping",
          "probabilities": {
            "shipping": 0.8,
            "billing": 0.1,
            "technical_support": 0.1
          },
          "confidence": 0.9
        }
      }
    }
    
  • 점수 질문: score A 항목은 기준 인덱스의 확률 가중 평균을 포함하고, 원래 기준 설명에 매핑하는 문자열 인덱스(예: "0")를 포함하며, legendprobabilities 이 인덱스들을 확률로 매핑하는 객체입니다. confidence 는 0부터 1까지의 숫자로, 주가 평가를 얼마나 잘 지원하는지를 나타냅니다. 값의 probabilities 합은 1입니다.

    {
      "answers": {
        "urgency": {
          "type": "score",
          "score": 1.5,
          "legend": {
            "0": "Routine request with no time pressure",
            "1": "Time-sensitive issue with a workaround",
            "2": "Critical issue that blocks the customer"
          },
          "probabilities": {
            "0": 0.1,
            "1": 0.3,
            "2": 0.6
          },
          "confidence": 0.8
        }
      }
    }
    

성공 시 는 metadata.version 사용되는 함수 버전을 식별하며, error_message 는 null입니다.

실패에 관한 것은 responsenullerror_message 실패를 설명한다. 잘못된 인수 유형이나 비일정한 질문 정의도 쿼리 오류를 일으킬 수 있습니다.

Examples

다음 예시는 한 통화에서 여러 질문을 평가하는 방법을 보여줍니다. 생성된 답변은 통화마다 다를 수 있습니다.

여러 문제 유형을 평가하세요

이 예시는 제품 목록의 카테고리, 재활용 재료 사용, 비 오는 날씨에 하이킹 적합성을 평가합니다:

SELECT ai_decide(
  '{"name": "TrailShell jacket", "description": "Lightweight waterproof hiking jacket made from recycled polyester. Packs into its own pocket."}',
  '{
    "category": {
      "type": "choice",
      "instructions": "Which product category best fits this item?",
      "criteria": {
        "outerwear": "Jackets, coats, and other protective outer layers",
        "footwear": "Shoes, boots, and sandals",
        "accessories": "Bags, hats, and other accessories"
      }
    },
    "recycled_materials": {
      "type": "noul",
      "instructions": "Does the listing state that the product uses recycled materials?"
    },
    "hiking_suitability": {
      "type": "score",
      "instructions": "How suitable is this product for hiking in rainy weather?",
      "criteria": [
        "Not suitable for outdoor use in rain",
        "Offers some protection from rain",
        "Designed for hiking with waterproof protection"
      ]
    }
  }',
  map('version', '1.0')
) AS decision;

응답 예제:

{
  "response": {
    "answers": {
      "category": {
        "type": "choice",
        "choice": "outerwear",
        "probabilities": { "outerwear": 0.95, "footwear": 0.01, "accessories": 0.04 },
        "confidence": 0.95
      },
      "recycled_materials": { "type": "noul", "probability": 0.98 },
      "hiking_suitability": {
        "type": "score",
        "score": 1.8,
        "legend": {
          "0": "Not suitable for outdoor use in rain",
          "1": "Offers some protection from rain",
          "2": "Designed for hiking with waterproof protection"
        },
        "probabilities": { "0": 0.05, "1": 0.1, "2": 0.85 },
        "confidence": 0.9
      }
    }
  },
  "metadata": { "version": "1.0" },
  "error_message": null
}