fungsi ai_decide

Berlaku untuk:Ditandai centang ya Databricks SQL Ditandai centang ya Databricks Runtime

Important

Fitur ini ada di Beta. Admin ruang kerja dapat mengontrol akses ke fitur ini dari halaman Pratinjau . Lihat Kelola Pratinjau Azure Databricks.

Fungsi ini ai_decide() mengevaluasi satu atau lebih pertanyaan terhadap teks atau data terstruktur. Untuk setiap pertanyaan, ia mengembalikan probabilitas, pilihan dari kriteria yang disebutkan, atau skor pada skala terurut. Gunakan untuk mengarahkan tiket dukungan, menilai apakah suatu acara membutuhkan perhatian, atau memprioritaskan pekerjaan menggunakan rubrik yang Anda tentukan.

Semua pertanyaan dalam panggilan menggunakan input yang sama, yaitu state. Anda dapat menggabungkan berbagai jenis pertanyaan dalam satu panggilan dan menggunakan jawaban yang dikembalikan dalam query SQL hilir.

Keamanan data

Data dokumen Anda diproses dalam perimeter keamanan Databricks. Databricks tidak menyimpan parameter yang diteruskan ke panggilan fungsi AI, tetapi tetap menyimpan detail run metadata, seperti versi Databricks Runtime yang digunakan.

Persyaratan

Lisensi Apache 2.0

Model dasar yang mungkin digunakan saat ini dilisensikan di bawah Lisensi Apache 2.0, Hak Cipta © Apache Software Foundation. Pelanggan bertanggung jawab untuk memastikan kepatuhan terhadap lisensi model yang berlaku.

Databricks merekomendasikan untuk meninjau lisensi ini untuk memastikan kepatuhan terhadap persyaratan yang berlaku. Jika model muncul di masa depan yang berkinerja lebih baik sesuai dengan tolok ukur internal Databricks, Databricks mungkin mengubah model (dan daftar lisensi yang berlaku yang disediakan di halaman ini).

Model yang mendukung fungsi ini tersedia menggunakan MODEL Model Serving Foundation API. Lihat Ketentuan model yang berlaku untuk informasi tentang model mana yang tersedia di Databricks serta lisensi dan kebijakan yang mengatur penggunaan model tersebut.

Jika model muncul yang berkinerja lebih baik sesuai dengan tolok ukur internal Azure Databricks, Databricks mungkin mengubah model dan memperbarui dokumentasi.

Sintaksis

ai_decide(state, questions [, options])

Arguments

  • state: A VARIANT atau STRING ekspresi yang memuat isi, konteks, dan contoh yang dibutuhkan untuk menjawab pertanyaan. Nilainya dapat bervariasi menurut baris. Menerima:

    • Sebuah STRING yang berisi teks biasa atau objek atau array yang dikodekan JSON. Objek dan array JSON diinterpretasikan sebagai data terstruktur. String lain diperlakukan sebagai teks.
    • VARIANT Diproduksi oleh fungsi AI lain (seperti ai_parse_document atau ai_extract)
  • questions: Ekspresi konstan STRING yang berisi objek JSON yang tidak kosong. Setiap kunci adalah ID pertanyaan yang tidak kosong, dan setiap nilai adalah definisi pertanyaan. Definisi yang sama berlaku untuk setiap baris. Lihat Definisi Pertanyaan.

  • options: Ekspresi konstanta MAP<STRING, STRING> opsional. Opsi yang didukung adalah version, dengan nilai '1.0'. Versi 1.0 adalah default. Untuk menentukannya secara eksplisit, gunakan map('version', '1.0').

Definisi pertanyaan

Setiap definisi pertanyaan membutuhkan type dan instructions, plus criteria jika diperlukan oleh jenis soal. Kolom wajib tidak dapat berupa null. Bidang lain tidak didukung.

  • type: Salah satu dari noul, choice, atau score.
  • instructions: Instruksi untuk mengevaluasi status, dinyatakan sebagai string, objek JSON, atau array JSON.
  • criteria: Deskripsi yang mendefinisikan cara menjawab. Bentuk yang dibutuhkan tergantung pada type.

Noul bertanya

Gunakan noul untuk memperkirakan kemungkinan suatu pertanyaan benar. Hasilnya adalah angka dari 0 sampai 1.

Objek opsional criteria dapat berisi true dan false tombol untuk mendeskripsikan hasil tersebut. Setiap deskripsi dapat berupa string, objek JSON, atau array JSON. Hilangkan criteria jika Anda tidak membutuhkan deskripsi ini. Jika disediakan, criteria harus menjadi objek dan tidak dapat .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."
    }
  }
}

Pertanyaan pilihan

Gunakan choice untuk memilih satu label dari serangkaian kriteria bernama.

Objek yang diperlukan criteria memetakan 1 hingga 255 label yang tidak kosong ke deskripsi. Setiap deskripsi dapat berupa string, objek JSON, array JSON, atau null. Gunakan null ketika label saja sudah menggambarkan pilihan.

{
  "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"
    }
  }
}

Pertanyaan skor

Gunakan score untuk mengevaluasi keadaan terhadap skala yang terurut.

Array yang dibutuhkan criteria berisi 2 hingga 10 deskripsi, diurutkan dari terendah hingga tertinggi. Setiap deskripsi dapat berupa string, objek JSON, atau array JSON. Kriteria pertama memiliki indeks 0, yang berikutnya memiliki indeks 1, dan seterusnya.

Hasilnya adalah rata-rata berbobot probabilitas dari indeks-indeks ini. Kriteria ini bisa pecahan dan berkisar dari 0 hingga jumlah kriteria dikurangi satu. Sebagai contoh, probabilitas , 0.10.3, dan 0.6 di antara tiga kriteria menghasilkan skor .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

Mengembalikan a VARIANT dengan field response, metadata, dan error_message. Bidang tersebut response berisi sebuah answers objek dengan satu entri per pertanyaan. ID pertanyaan persis sama dengan yang diberikan dalam questions parameter. Setiap jawaban mencakup type bidang yang sesuai dengan jenis pertanyaan: noul, , choiceatau score. Contoh berikut menunjukkan response bidang untuk setiap jenis pertanyaan:

  • Noul bertanya: A probability dari 0 sampai 1 memperkirakan kemungkinan pertanyaan itu benar.

    {
      "answers": {
        "needs_escalation": {
          "type": "noul",
          "probability": 0.1
        }
      }
    }
    
  • Pertanyaan pilihan: Achoice yang berisi label dengan probabilitas tertinggi dan objek probabilities yang memetakan setiap label sesuai probabilitasnya. confidence adalah angka dari 0 sampai 1 yang menunjukkan seberapa baik negara bagian mendukung penilaian tersebut. Nilai-nilai tersebut probabilities berjumlah 1. Nama label persis sama dengan yang disediakan di criteria.

    {
      "answers": {
        "team": {
          "type": "choice",
          "choice": "shipping",
          "probabilities": {
            "shipping": 0.8,
            "billing": 0.1,
            "technical_support": 0.1
          },
          "confidence": 0.9
        }
      }
    }
    
  • Pertanyaan skor: Ascore yang berisi rata-rata berbobot probabilitas dari indeks kriteria, legend sebuah indeks string yang memetakan (seperti "0") ke deskripsi kriteria asli, dan sebuah probabilities objek yang memetakan indeks tersebut ke probabilitas. confidence adalah angka dari 0 sampai 1 yang menunjukkan seberapa baik negara bagian mendukung penilaian tersebut. Nilai-nilai tersebut probabilities berjumlah 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
        }
      }
    }
    

Setelah berhasil, metadata.version mengidentifikasi versi fungsi yang digunakan dan error_message adalah null.

Tentang kegagalan, response adalah null dan error_message menggambarkan kegagalan. Jenis argumen yang tidak valid atau definisi pertanyaan yang tidak konstan juga dapat menyebabkan kesalahan kueri.

Contoh

Contoh berikut menunjukkan cara mengevaluasi beberapa pertanyaan dalam satu panggilan. Jawaban yang dihasilkan dapat berbeda antara panggilan.

Mengevaluasi beberapa jenis pertanyaan

Contoh ini mengevaluasi daftar produk sesuai kategorinya, penggunaan bahan daur ulang, dan kesesuaian untuk mendaki di cuaca hujan:

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;

Contoh respons:

{
  "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
}