ai_enrich fonksiyon

Şunun için geçerlidir:Evet olarak işaretlendi Databricks SQL Evet olarak işaretlendi Databricks Runtime

Important

Bu özellik Beta sürümündedir. Çalışma alanı yöneticileri Bu özelliğe erişimi Önizlemeler sayfasından denetleyebilir. Bkz. Azure Databricks önizlemelerini yönetme.

Fonksiyon, ai_enrich() tanımladığınız bir şemadan bir satır için yeni sütunlar oluşturur. Verilen giriş içeriği ve hedef şema, fonksiyon her alanı doldurmak için bir yapay zeka modeli çağırır. İstehsal olarak üretilen değerleri bir veya birden fazla bilgi kaynağına , örneğin yapay zeka arama veya canlı web aramasına dayandırabilir, böylece değerler yalnızca modelin eğitim verisini değil, kendi verilerinizi veya up-totarih bilgilerinizi yansıtır.

Bir tabloya ölçekte türetilmiş öznitelikler eklemek için kullanılır ai_enrich . Kayıtları etiketleyip kategorize edebilir, eksik meta verileri doldurabilir veya tek bir SQL fonksiyon çağrısından her satıra araştırılmış bağlam ekleyebilirsiniz. Varsayılan olarak, her oluşturulan alan, değerin nasıl türetildiğini açıklayan kısa bir gerekçeyle döner.

Gereksinimler

  • Databricks Runtime 18.2 veya üzeri.
  • Sunucusuz hesaplama kullanıyorsanız, sunucusuz ortam versiyonu 3 veya üzeri olarak ayarlanmalıdır, çünkü bu gibi özellikleri VARIANTetkinleştirir.
  • Bir yapay zeka Arama indeksinde zenginleşmeyi temellendirmek için, bilgi kaynağı olarak kullanılacak bir veya daha fazla yapay zeka Arama indeksi gerekir.
  • Bu ai_enrich fonksiyon, Databricks defterleri, SQL editörü, Databricks iş akışları, işler veya Lakeflow üzerindeki Spark Deklaratif Boru Hatları kullanılarak kullanılabilir.

Veri güvenliği

Belge verileriniz Databricks güvenlik çevresi içinde işlenir. Databricks, yapay zeka fonksiyon çağrılarına iletilen parametreleri saklamaz, ancak kullanılan Databricks Çalışma Zamanı versiyonu gibi metaveri çalışma detaylarını korur.

Sözdizimi

ai_enrich(content, schema [, knowledge_sources] [, options])

Arguments

  • content: STRING veya VARIANT ifadesi. Rika zenginleştirmek için. VARIANT Giriş, örneğin başka bir yapay zeka fonksiyonunun çıktısı ai_parse_document, dahili olarak bir JSON dizisine seri olarak dönüştürülür.

  • schema: Oluşturulacak sütunları tanımlayan bir STRING kelime harbi. Aynı dilbilgisini kullanır.ai_extract Şema şu şekilde olabilir:

    • Basit şema: Saha isimlerinden oluşan bir JSON dizisi, bu dizide dizim olarak üretilir.

      ["industry", "headquarters_country", "year_founded"]
      
    • Gelişmiş şema: Tip bilgisi, açıklamalar ve iç içe yapılar içeren bir JSON nesnesi.

      • , , string, integernumberve boolean türlerini desteklerenum. Tür doğrulama gerçekleştirir. En fazla 500 sabit listesi değeri.
      • İç içe nesneleri destekler ve "type": "object" ."properties"
      • Ile kullanılan ilkel veya nesnelerin "type": "array""items"dizilerini destekler.
      • Her özellik için oluşturulan değeri yönlendirmek için isteğe bağlı "description" alan var.
      {
        "hq_address": {
          "type": "object",
          "description": "Registered headquarters address",
          "properties": {
            "city": { "type": "string" },
            "country": { "type": "string" }
          }
        },
        "founding_team": { "type": "array", "description": "Full names of the founders", "items": { "type": "string" } },
        "founding_year": { "type": "integer", "description": "Year the company was founded" }
      }
      
  • knowledge_sources: Oluşturulan değerleri topraklamak için kullanılan bilgi kaynağı yapılandırmalarından oluşan JSON dizisi içeren isteğe bağlı VARIANT veya STRING ifade. Bkz. Bilgi kaynağı yapılandırması.

  • options: İsteğe bağlı MAP<STRING, STRING>bir . Desteklenen anahtarlar:

    • 'version': Kullanılacak fonksiyon versiyonu.
    • 'instructions': STRING A, 20.000 karaktere kadar olabilir. Zenginleştirme görevini açıklayan doğal dil rehberliği. İsteğe bağlı; sadece şema alan adları zenginleştirmeyi yönlendirebilir. Örneğin, 'Infer attributes for each company from its public profile.'
    • 'enableRationale': 'true' (varsayılan) veya 'false'. Ne 'true'zaman , her üretilen alan bir {rationale, value} nesne olarak döner, burada rationale değerin nasıl türetildiği açıklanır. Sadece geri {value} dönmek için ayarlandı'false'.

Bilgi kaynağı yapılandırması

Argüman knowledge_sources bir JSON dizisi. Her eleman bir {type, description, config} zarftır. Alan, type topraklama bağlamını nasıl ai_enrich aldığını belirler ve config alan kaynak spesifik yapılandırmayı içerir.

Key Zorunlu Description
type Yes Bilgi kaynağı türü. Bunlardan vector_search biri (bir yapay zeka arama indeksi) veya web_search.
description Hayır Kaynağın doğal dilde tanımı. Fonksiyonun ne zaman ve nasıl geri alacağını belirlemesine yardımcı olmak için kullanılır.
config Yes Kaynağa özgü yapılandırmayı içeren bir nesne. Bakınız: vector_searchAI Arama indeks yapılandırması ve web arama yapılandırması için web_search.

AI Arama dizini yapılandırması

Bir AI Arama indeksi için typevector_searchayarlı, config aşağıdaki anahtarları kabul eder:

Key Zorunlu Description
index_name Yes Örneğin, Unity Catalog'da AI Arama indeksinin catalog.schema.my_indexüç seviyeli adı vardır.
text_col Yes Belge metnini içeren dizindeki sütun.
doc_uri_col Yes Indeksteki URI'yi içeren sütun.
filter_columns Hayır Meta veri filtreleme için mevcut olan virgülle ayrılmış bir dizi veya JSON sütun dizisi. Liste, kaydedilmiş, metin ve belge URI sütunları hariç olarak indeks şemasından türetilir.

Tek bir çağrıda birden vector_search fazla kaynağı yapılandırabilirsiniz.

Web arama yapılandırması

Bir web araması için typeweb_searchayarlı, config aşağıdaki isteğe bağlı anahtarları kabul eder. Web araması, Azure Databricks'te web arama üzerinden çalışır; erişilebilirlik için Sınırlamalar bölümüne bakınız.

Key Zorunlu Description
allowed_domains Hayır Aramayı sınırlamak için JSON alan dizisi. Ayarlandığında, yalnızca bu alan alanlarından alınan sonuçlar kullanılır.
blocked_domains Hayır Aramadan hariç tutulacak bir JSON alan dizisi.

Her çağrı için en fazla bir web_search kaynak ayarlayabilirsiniz.

Aşağıdaki örnek, bir AI Arama indeksi ve bir web aramasını bilgi kaynakları olarak yapılandırır:

[
  {
    "type": "vector_search",
    "description": "Internal product catalog",
    "config": {
      "index_name": "prod_catalog.docs.product_catalog",
      "text_col": "description",
      "doc_uri_col": "product_url"
    }
  },
  {
    "type": "web_search",
    "config": {
      "allowed_domains": ["wikipedia.org"]
    }
  }
]

İadeler

A VARIANT ve aşağıdaki şema:

{
  "response": { ... },     // Generated columns matching the provided schema. Each leaf is returned as an object (see below).
  "error_message": null,   // null on success, or an error message on failure
  "metadata": { ... }      // Metadata about the response, including grounding sources.
}

Alan, response oluşturulan sütunları içerir:

  • Alan adları ve türleri şema tanımıyla eşleşir. İç içe nesneler ve diziler orijinal şeklini korur.
  • Varsayılan olarak (enableRationale ise 'true'), her yaprak bir {rationale, value} nesnedir, burada rationale değerin nasıl türetildiğine dair kısa bir açıklama ve value şemaya göre oluşturulan değerdir. Ne zaman enableRationale'false', her yaprak bir {value} nesnedir.
  • Bir alanın valuenull , oluşturulamadığı zamandır.

alanı metadata yanıtla ilgili meta verileri içerir. Satır, bilgi kaynağı tarafından topraklandığında, metadata.sources satırı topraklayan kaynak belge tanımlayıcılarının bir dizisidir. Topraklama satır düzeyindedir, bu yüzden sources tek alanlar için değil, tüm satıra uygulanır.

Eğer contentNULL ise, sonuç NULL olur.

Examples

Temel zenginleştirme

Aşağıdaki örnek, modelin kendi bilgisi kullanılarak her şirket adı için iki sütun oluşturur. Gerekçe varsayılan olarak açık olduğundan, her alan bir {rationale, value} nesne olarak döner:

SELECT ai_enrich(
  company_name,
  '["industry", "headquarters_country"]'
) AS result
FROM sales.accounts.companies;

Talimatlarla yapılandırılmış şema

Aşağıdaki örnek, tipli bir şemayı tanımlar, görevi yönlendirmek için ek ekler instructions ve her alanın düz bir değer döndürmesi için mantığı devre dışı bırakır:

SELECT ai_enrich(
  review_text,
  '{
    "sentiment": {"type": "string", "description": "positive, negative, or neutral"},
    "topics": {"type": "array", "items": {"type": "string"}},
    "requires_follow_up": {"type": "boolean"}
  }',
  options => map(
    'instructions', 'Analyze the customer review and categorize it for the support team.',
    'enableRationale', 'false'
  )
) AS result
FROM support.reviews.customer_reviews;

İçiçe bir şema oluştur

Aşağıdaki örnek, her şirket için iç içe bir şema oluşturur — yapılandırılmış bir adres nesnesi, kurucu isimlerinden oluşan bir dizide, tipli bir yıl ve iç içe bir finansman turu:

SELECT ai_enrich(
  company_name,
  '{
    "hq_address": {
      "type": "object",
      "description": "Registered headquarters address",
      "properties": {
        "city": {"type": "string"},
        "country": {"type": "string"}
      }
    },
    "founding_team": {"type": "array", "description": "Full names of the founders", "items": {"type": "string"}},
    "founding_year": {"type": "integer", "description": "Year the company was founded"},
    "latest_funding_round": {
      "type": "object",
      "properties": {
        "stage": {"type": "string", "description": "Funding stage, for example Seed or Series A"},
        "amount_usd": {"type": "number", "description": "Amount raised in USD"}
      }
    }
  }'
) AS result
FROM sales.accounts.companies;

Yapay Zeka Arama indeksinde zemin zenginleştirme

Aşağıdaki örnek, her destek biletini, ürün dokümantasyonunun AI Arama indeksine dayanan alanlarla zenginleştirir, böylece üretilen değerler kendi içeriğinizden alınır:

SELECT
  ticket_id,
  ai_enrich(
    customer_description,
    '{
      "affected_product": {"type": "string"},
      "suggested_resolution": {"type": "string"},
      "documentation_url": {"type": "string"}
    }',
    PARSE_JSON('[{
      "type": "vector_search",
      "description": "Product documentation and troubleshooting guides",
      "config": {
        "index_name": "support.docs.product_documentation",
        "text_col": "content",
        "doc_uri_col": "doc_url"
      }
    }]')
  ) AS result
FROM support.tickets.open_tickets;

Aşağıdaki örnek, her şirket satırını internetten alınan up-totarih bilgileriyle zenginleştirir:

SELECT ai_enrich(
  company_name,
  '["recent_funding_round", "latest_headline"]',
  PARSE_JSON('[{
    "type": "web_search",
    "config": {"allowed_domains": ["reuters.com", "bloomberg.com"]}
  }]'),
  options => map('instructions', 'Find the most recent, verifiable information for each company.')
) AS result
FROM sales.accounts.companies;

Limitations

  • Bilgi web_search kaynağı ile topraklama sadece bazı bölgelerde ve çalışma alanlarında mevcuttur. Azure Databricks üzerinde web arama sayfasına bakınız.
  • Seçenek instructions 20.000 karakterle sınırlıdır.