ai_extract işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Önemli

Bu işlev Genel Önizleme aşamasındadır ve HIPAA ile uyumludur.

Önizleme sırasında:

İşlev, ai_extract() sağladığınız şemaya göre metin ve belgelerden yapılandırılmış verileri ayıklar. Basit alan adlarını temel ayıklama için kullanabilir veya faturalar, sözleşmeler ve finansal dosyalar gibi iş belgeleri için iç içe nesneler, diziler, tür doğrulama ve alan açıklamalarıyla karmaşık şemalar tanımlayabilirsiniz.

İşlev, gibi VARIANTdiğer yapay zeka işlevlerinden metin veya ai_parse_document çıktı kabul eder ve uçtan uca belge işleme için birleştirilebilir iş akışlarını etkinleştirir.

Görsel kullanıcı arabiriminin sonuçlarını ai_extractdoğrulamak ve yinelemek için bkz. Bilgi Ayıklama.

Gereksinimler

Apache 2.0 lisansı

Şu anda kullanılabilecek temel modeller Apache 2.0 Lisansı, Telif Hakkı © Apache Software Foundation kapsamında lisanslandırılır. Müşteriler, geçerli model lisanslarıyla uyumluluğu sağlamakla sorumludur.

Databricks, geçerli koşullarla uyumluluğu sağlamak için bu lisansların gözden geçirilmesini önerir. Gelecekte Databricks'in iç karşılaştırmalarına göre daha iyi performans gösteren modeller ortaya çıkarsa Databricks modeli (ve bu sayfada sağlanan geçerli lisansların listesini) değiştirebilir.

Bu işlevi güçlendiren model, Model Sunma Temeli Model API'leri kullanılarak kullanılabilir hale getirilir. Databricks'te hangi modellerin kullanılabildiği ve bu modellerin kullanımını yöneten lisanslar ve ilkeler hakkında bilgi için bkz. Geçerli model koşulları .

Gelecekte Databricks'in iç karşılaştırmalarına göre daha iyi performans gösteren modeller ortaya çıkarsa Databricks modelleri değiştirebilir ve belgeleri güncelleştirebilir.

  • Bu işlev yalnızca bazı bölgelerde kullanılabilir. Bkz. Yapay zeka işlevi kullanılabilirliği.
  • Bu işlev Azure Databricks SQL Classic'te kullanılamaz.
  • Databricks SQL fiyatlandırma sayfasını gözden geçirin.
  • Databricks Runtime 15.1 ve üzerinde bu işlev Databricks iş akışında görev olarak çalıştırılacak not defterleri de dahil olmak üzere Databricks not defterlerinde desteklenir.
  • Toplu çıkarım iş yükleri, gelişmiş performans için Databricks Runtime 15.4 ML LTS gerektirir.

Söz dizimi

Databricks, iç içe alan ayıklamayı ve açıklamaları desteklediğinden bu işlevin 2. sürümünün kullanılmasını önerir.

ai_extract(
    content VARIANT | STRING,
    schema STRING,
    [options MAP<STRING, STRING>]
) RETURNS VARIANT

Sürüm 2

ai_extract(
    content VARIANT | STRING,
    schema STRING,
    [options MAP<STRING, STRING>]
) RETURNS VARIANT

Sürüm 1

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

Argümanlar

  • content: VARIANT veya STRING ifadesi. Kabul eder:

    • Ham metin olarak STRING
    • Başka VARIANT bir yapay zeka işlevi (örneğin ai_parse_document) tarafından üretilen bir
  • schema STRING: Ayıklama için JSON şemasını tanımlayan değişmez değer. Şema şu şekilde olabilir:

    • Basit şema: Alan adlarının JSON dizisi (dize olduğu varsayılır)
      "[\"vendor_name\", \"invoice_id\", \"total_amount\"]"
      
    • Gelişmiş şema: Tür bilgileri, açıklamalar ve iç içe yapıları olan bir JSON nesnesi
      • , , string, integernumberve boolean türlerini desteklerenum. Tür doğrulama gerçekleştirir. Geçerli olmayan değerler hatayla sonuçlanır. En fazla 500 sabit listesi değeri.
      • ile kullanarak "type": "object" iç içe nesneleri destekler "properties"
      • ile kullanarak "type": "array" temel öğe veya nesne dizilerini destekler "items"
      • Ayıklama kalitesine yol gösterecek her özellik için isteğe bağlı "description" alan
  • options: Yapılandırma seçeneklerini içeren isteğe bağlı MAP<STRING, STRING> bir seçenek:

    • version: Geçişi desteklemek için sürüm anahtarı ("2.1", "2.0", "1.0"). Varsayılan değer giriş türlerini temel alır.
    • instructions: Ayıklama kalitesini geliştirmek için görevin ve etki alanının genel açıklaması. 20.000 karakterden az olmalıdır.
    • enableCitations: olduğunda true, ayıklama şemasındaki her alanın çıktısı, belgede ayıklanan çıkışı gösteren sıfır veya daha fazla alıntı listesi içerir.
    • enableConfidenceScores: olduğunda true, ayıklama şemasındaki her alanın çıktısı 0 ile 1 arasında bir güvenilirlik puanı içerir ve modelin bu değerle ilgili ne kadar kesin olduğunu gösterir. Uygun güvenilirlik eşiği, özel kullanım örneğinize bağlıdır ve risk ve hata toleransınızla uyumlu bir kesme seçmelisiniz.

Sürüm 2

  • content: VARIANT veya STRING ifadesi. Kabul eder:

    • Ham metin olarak STRING
    • Başka VARIANT bir yapay zeka işlevi (örneğin ai_parse_document) tarafından üretilen bir
  • schema STRING: Ayıklama için JSON şemasını tanımlayan değişmez değer. Şema şu şekilde olabilir:

    • Basit şema: Alan adlarının JSON dizisi (dize olduğu varsayılır)
      "[\"vendor_name\", \"invoice_id\", \"total_amount\"]"
      
    • Gelişmiş şema: Tür bilgileri, açıklamalar ve iç içe yapıları olan bir JSON nesnesi
      • , , string, integernumberve boolean türlerini desteklerenum. Tür doğrulama gerçekleştirir. Geçerli olmayan değerler hatayla sonuçlanır. En fazla 500 sabit listesi değeri.
      • ile kullanarak "type": "object" iç içe nesneleri destekler "properties"
      • ile kullanarak "type": "array" temel öğe veya nesne dizilerini destekler "items"
      • Ayıklama kalitesine yol gösterecek her özellik için isteğe bağlı "description" alan
  • options: Yapılandırma seçeneklerini içeren isteğe bağlı MAP<STRING, STRING> bir seçenek:

    • version: Geçişi desteklemek için sürüm anahtarı ("1.0" v1 davranışı için, "2.0" v2 davranışı için). Varsayılan, giriş türlerini temel alır, ancak öğesine geri döner "1.0".
    • instructions: Ayıklama kalitesini geliştirmek için görevin ve etki alanının genel açıklaması. 20.000 karakterden az olmalıdır.

Sürüm 1

  • content STRING: Ham metni içeren bir ifade.

  • labels: Bir ARRAY<STRING> literal. Her öğe ayıklanacak bir varlık türüdür.

  • options: Yapılandırma seçeneklerini içeren isteğe bağlı MAP<STRING, STRING> bir seçenek:

    • version: Geçişi desteklemek için sürüm anahtarı ("1.0" v1 davranışı için, "2.0" v2 davranışı için). Varsayılan, giriş türlerini temel alır, ancak öğesine geri "1.0"döner.

İadeler

Şunu içeren bir VARIANT döndürür:

{
  "response": {...},       // Extracted data matching the provided schema. Each leaf is returned as a Field object (see below).
  "error_message": null,   // null on success, or error message on failure
  "metadata": { ... }      // Metadata about the response, including unfurled citation ids.
}

alanı, response şemaya göre ayıklanan yapılandırılmış verileri içerir:

  • Alan adları ve türleri şema tanımıyla eşleş
  • Şemanın yapısı yanıtta korunur: iç içe nesneler ve diziler özgün şekillerini korur. Ayıklama şemasındaki her "skaler" alan, aşağıdaki alanlara sahip bir çıkış nesnesine sahiptir:
    • value: Şemaya göre yazılan ayıklanan değer. Null alanı ayıklanamazsa.
    • citation_ids: Yalnızca olduğunda enableCitationstruebulunur. dizinine metadata.citationsalınmış bir kimlik dizisi.
    • confidence_score: Yalnızca olduğunda enableConfidenceScorestruebulunur. 0 ile 1 arasında bir float.
  • Tamsayı, sayı, boole ve sabit listesi türleri için tür doğrulaması zorunlu kılındı
  • Eğer contentNULL ise, sonuç NULL olur.

alanı metadata yanıtla ilgili meta verileri içerir. olduğunda enableCitationstrue, metadata alan, ayıklanan değeri girişteki konumuna response kadar takip eden alandaki her alıntı kimliğiyle ilgili ayrıntıları içerir.

Giriş türüne bağlı olarak alıntılar iki türden biri olabilir:

  • Ham metin (STRING) girişleri için alıntı, özgün girişteki bir metin aralığıdır. metadata.citations dosyasındaki her nesnenin içeriği:
    • id: Bir alandaki citation_ids girişiyle eşleşen tamsayı.
    • start: Giriş dizesine 0 tabanlı karakter uzaklığı dahil.
    • stop: Giriş dizesine özel 0 tabanlı karakter uzaklığı.
  • PDF belgeleri ve görüntüleri için (aşağı akışı ai_parse_documentkullanılırkenai_extract), alıntı özgün girişteki sınırlayıcı bir kutudur. içindeki metadata.citations her nesnenin içeriği:
    • id: Bir alandaki girdiyle eşleşen citation_ids tamsayı.
    • bbox: Çıkışta şekli element.bbox ai_parse_document ile aynı olan nesne dizisi{coord, page_id}. coord , sayfa görüntüsündeki [x0, y0, x1, y1]; page_id piksel koordinatlarıdır ve 0 tabanlı bir sayfa dizinidir.

Sürüm 2

Şunu içeren bir VARIANT döndürür:

{
  "response": { ... },   // Extracted data matching the provided schema
  "error_message": null          // null on success, or error message on failure
}

alanı, response şemaya göre ayıklanan yapılandırılmış verileri içerir:

  • Alan adları ve türleri şema tanımıyla eşleş
  • İç içe nesneler ve diziler yapıda korunur
  • Alanlar bulunamazsa olabilir null
  • , , integernumberve boolean türleri için enumtür doğrulaması zorunlu kılındı

Eğer contentNULL ise, sonuç NULL olur.

Sürüm 1

STRUCT Her alanın içinde labelsbelirtilen bir varlık türüne karşılık geldiği bir döndürür. Her alan, ayıklanan varlığı temsil eden bir dize içerir. İşlev herhangi bir varlık türü için birden fazla aday bulursa, yalnızca bir tane döndürür.

Örnekler

Basit şema - yalnızca alan adları

> SELECT ai_extract(
    'Invoice #12345 from Acme Corp for $1,250.00 dated 2024-01-15',
    '["invoice_id", "vendor_name", "total_amount", "invoice_date"]',
    options => map('version', '2.1')
  );
 {
   "response": {
     "invoice_id":   {"value": "12345"},
     "vendor_name":  {"value": "Acme Corp"},
     "total_amount": {"value": "1250.00"},
     "invoice_date": {"value": "2024-01-15"}
   },
   "error_message": null
 }

Gelişmiş şema - türleri ve açıklamaları ile

> SELECT ai_extract(
    'Invoice #12345 from Acme Corp for $1,250.00 dated 2024-01-15',
    '{
      "invoice_id": {"type": "string", "description": "Unique invoice identifier"},
      "vendor_name": {"type": "string", "description": "Legal business name"},
      "total_amount": {"type": "number", "description": "Total invoice amount"},
      "invoice_date": {"type": "string", "description": "Date in YYYY-MM-DD format"}
    }',
    options => map('version', '2.1')
  );
 {
   "response": {
     "invoice_id":   {"value": "12345"},
     "vendor_name":  {"value": "Acme Corp"},
     "total_amount": {"value": 1250.00},
     "invoice_date": {"value": "2024-01-15"}
   },
   "error_message": null
 }

İç içe nesneler ve diziler

> SELECT ai_extract(
    'Invoice #12345 from Acme Corp
     Line 1: Widget A, qty 10, $50.00 each
     Line 2: Widget B, qty 5, $100.00 each
     Subtotal: $1,000.00, Tax: $80.00, Total: $1,080.00',
    '{
      "invoice_header": {
        "type": "object",
        "properties": {
          "invoice_id": {"type": "string"},
          "vendor_name": {"type": "string"}
        }
      },
      "line_items": {
        "type": "array",
        "description": "List of invoiced products",
        "items": {
          "type": "object",
          "properties": {
            "description": {"type": "string"},
            "quantity": {"type": "integer"},
            "unit_price": {"type": "number"}
          }
        }
      },
      "totals": {
        "type": "object",
        "properties": {
          "subtotal": {"type": "number"},
          "tax_amount": {"type": "number"},
          "total_amount": {"type": "number"}
        }
      }
    }',
    options => map('version', '2.1')
  );
 {
   "response": {
     "invoice_header": {
       "invoice_id":  {"value": "12345"},
       "vendor_name": {"value": "Acme Corp"}
     },
     "line_items": [
       {"description": {"value": "Widget A"}, "quantity": {"value": 10}, "unit_price": {"value": 50.00}},
       {"description": {"value": "Widget B"}, "quantity": {"value": 5},  "unit_price": {"value": 100.00}}
     ],
     "totals": {
       "subtotal":     {"value": 1000.00},
       "tax_amount":   {"value": 80.00},
       "total_amount": {"value": 1080.00}
     }
   },
   "error_message": null
 }

ile birlikte kullanılabilirlik ai_parse_document

> WITH parsed_docs AS (
    SELECT
      path,
      ai_parse_document(
        content,
        MAP('version', '2.0')
      ) AS parsed_content
    FROM READ_FILES('/Volumes/finance/invoices/', format => 'binaryFile')
  )
  SELECT
    path,
    ai_extract(
      parsed_content,
      '["invoice_id", "vendor_name", "total_amount"]',
      MAP('version', '2.1', 'instructions', 'These are vendor invoices.')
    ) AS invoice_data
  FROM parsed_docs;

Sabit listeleri kullanma

> SELECT ai_extract(
    'Invoice #12345 from Acme Corp, amount: $1,250.00 USD',
    '{
      "invoice_id": {"type": "string"},
      "vendor_name": {"type": "string"},
      "total_amount": {"type": "number"},
      "currency": {
        "type": "enum",
        "labels": ["USD", "EUR", "GBP", "CAD", "AUD"],
        "description": "Currency code"
      },
      "payment_terms": {"type": "string"}
    }',
    options => map('version', '2.1')
  );
 {
   "response": {
     "invoice_id":     {"value": "12345"},
     "vendor_name":    {"value": "Acme Corp"},
     "total_amount":   {"value": 1250.00},
     "currency":       {"value": "USD"},
     "payment_terms":  {"value": null}
   },
   "error_message": null
 }

Alıntılar (STRING girişi, SPAN alıntıları)

> SELECT ai_extract(
    'Invoice #12345 from Acme Corp for $1,250.00 dated 2024-01-15',
    '{
      "invoice_id": {"type": "string", "description": "Unique invoice identifier"},
      "vendor_name": {"type": "string", "description": "Legal business name"},
      "total_amount": {"type": "number", "description": "Total invoice amount"},
      "invoice_date": {"type": "string", "description": "Date in YYYY-MM-DD format"}
    }',
   options => map(
     'version', '2.1',
     'enableCitations', 'true'
   )
  );
 {
   "response": {
     "invoice_id": {"citation_ids": [0], "value": "12345"},
     "vendor_name": {"citation_ids": [0], "value": "Acme Corp"},
     "total_amount": {"citation_ids": [1], "value": 1250.00},
     "invoice_date": {"citation_ids": [1], "value": "2024-01-15"}
   },
   "metadata": {
     "chunk_type": "span",
     "citations": [
       {"id": 0, "start": 0, "stop": 29},
       {"id": 1, "start": 29, "stop": 60}
     ]
   },
   "error_message": null
 }

Alıntılar (ai_parse_document VARYANT, BBOX alıntıları)

> WITH parsed AS (
    SELECT ai_parse_document(
             content,
             map('imageOutputPath', '/Volumes/main/default/parsed_images/')  // necessary for rendering bboxes
           ) AS doc
    FROM READ_FILES('/Volumes/main/default/invoices/invoice.pdf', format => 'binaryFile')
  )
  SELECT ai_extract(
    doc,
    '{"invoice_id":{"type":"string"}, "total_amount":{"type":"number"}}',
    options => map('version','2.1','enableCitations','true')
  ) AS extracted
  FROM parsed;
{
  "response": {
    "invoice_id":   {"citation_ids": [0], "value": "12345"},
    "total_amount": {"citation_ids": [1], "value": 1250.00}
  },
  "metadata": {
    "chunk_type": "bbox",
    "citations": [
      {"id": 0, "bbox": [{"coord": [120, 80,  240, 110], "page_id": 0}]},
      {"id": 1, "bbox": [{"coord": [400, 500, 560, 530], "page_id": 0}]}
    ],
    "pages": [{"id": 0, "image_uri": "/Volumes/main/default/parsed_images/6077ca79...f8efdb2ed05.jpg"}]
  },
  "error_message": null
}

Güvenilirlik puanları


> SELECT ai_extract(
    'Invoice #12345 from Acme Corp for $1,250.00 dated 2024-01-15',
    '{
      "invoice_id": {"type": "string", "description": "Unique invoice identifier"},
      "vendor_name": {"type": "string", "description": "Legal business name"},
      "total_amount": {"type": "number", "description": "Total invoice amount"},
      "invoice_date": {"type": "string", "description": "Date in YYYY-MM-DD format"}
    }',
   options => map(
    'version', '2.1',
    'enableConfidenceScores', 'true'
   )
  );
{
  "response": {
    "invoice_id": {"confidence_score": 0.95, "value": "12345"},
    "vendor_name": {"confidence_score": 0.62, "value": "Acme Corp"},
    "total_amount": {"confidence_score": 1.0, "value": 1250.00},
    "invoice_date": {"confidence_score": 0.99, "value": "2024-01-15"}
  },
  "error_message": null
}

Not defteri örneği

Aşağıdaki not defteri işlevin alıntı çıkışlarını ai_extract analiz etmek için bir görsel hata ayıklama arabirimi sağlar. Alıntı meta verilerinin alt dize kod parçacıkları (STRING girişi) veya sınırlayıcı kutu yer paylaşımları (VARIANT girişi) olarak nasıl işleneceği ve alıntıları SQL'deki öğelere ai_parse_document geri birleştirerek ai_extract el ile gözden geçirme için düşük güvenilirlikli ayıklamalara bayrak ekleyebileceğinizi gösterir.

Alıntı işleme not defteri

Dizüstü bilgisayar al

Sürüm 2

Basit şema - yalnızca alan adları

> SELECT ai_extract(
    'Invoice #12345 from Acme Corp for $1,250.00 dated 2024-01-15',
    '["invoice_id", "vendor_name", "total_amount", "invoice_date"]'
  );
 {
   "response": {
     "invoice_id": "12345",
     "vendor_name": "Acme Corp",
     "total_amount": "1250.00",
     "invoice_date": "2024-01-15"
   },
   "error_message": null
 }

Gelişmiş şema - türleri ve açıklamaları ile

> SELECT ai_extract(
    'Invoice #12345 from Acme Corp for $1,250.00 dated 2024-01-15',
    '{
      "invoice_id": {"type": "string", "description": "Unique invoice identifier"},
      "vendor_name": {"type": "string", "description": "Legal business name"},
      "total_amount": {"type": "number", "description": "Total invoice amount"},
      "invoice_date": {"type": "string", "description": "Date in YYYY-MM-DD format"}
    }'
  );
 {
   "response": {
     "invoice_id": "12345",
     "vendor_name": "Acme Corp",
     "total_amount": 1250.00,
     "invoice_date": "2024-01-15"
   },
   "error_message": null
 }

İç içe nesneler ve diziler

> SELECT ai_extract(
    'Invoice #12345 from Acme Corp
     Line 1: Widget A, qty 10, $50.00 each
     Line 2: Widget B, qty 5, $100.00 each
     Subtotal: $1,000.00, Tax: $80.00, Total: $1,080.00',
    '{
      "invoice_header": {
        "type": "object",
        "properties": {
          "invoice_id": {"type": "string"},
          "vendor_name": {"type": "string"}
        }
      },
      "line_items": {
        "type": "array",
        "description": "List of invoiced products",
        "items": {
          "type": "object",
          "properties": {
            "description": {"type": "string"},
            "quantity": {"type": "integer"},
            "unit_price": {"type": "number"}
          }
        }
      },
      "totals": {
        "type": "object",
        "properties": {
          "subtotal": {"type": "number"},
          "tax_amount": {"type": "number"},
          "total_amount": {"type": "number"}
        }
      }
    }'
  );
 {
   "response": {
     "invoice_header": {
       "invoice_id": "12345",
       "vendor_name": "Acme Corp"
     },
     "line_items": [
       {"description": "Widget A", "quantity": 10, "unit_price": 50.00},
       {"description": "Widget B", "quantity": 5, "unit_price": 100.00}
     ],
     "totals": {
       "subtotal": 1000.00,
       "tax_amount": 80.00,
       "total_amount": 1080.00
     }
   },
   "error": null
 }

ile birlikte kullanılabilirlik ai_parse_document

> WITH parsed_docs AS (
    SELECT
      path,
      ai_parse_document(
        content,
        MAP('version', '2.0')
      ) AS parsed_content
    FROM READ_FILES('/Volumes/finance/invoices/', format => 'binaryFile')
  )
  SELECT
    path,
    ai_extract(
      parsed_content,
      '["invoice_id", "vendor_name", "total_amount"]',
      MAP('instructions', 'These are vendor invoices.')
    ) AS invoice_data
  FROM parsed_docs;

Sabit listeleri kullanma

> SELECT ai_extract(
    'Invoice #12345 from Acme Corp, amount: $1,250.00 USD',
    '{
      "invoice_id": {"type": "string"},
      "vendor_name": {"type": "string"},
      "total_amount": {"type": "number"},
      "currency": {
        "type": "enum",
        "labels": ["USD", "EUR", "GBP", "CAD", "AUD"],
        "description": "Currency code"
      },
      "payment_terms": {"type": "string"}
    }'
  );
 {
   "response": {
     "invoice_id": "12345",
     "vendor_name": "Acme Corp",
     "total_amount": 1250.00,
     "currency": "USD",
     "payment_terms": null
   },
   "error": null
 }

Sürüm 1

> SELECT ai_extract(
    'John Doe lives in New York and works for Acme Corp.',
    array('person', 'location', 'organization')
  );
 {"person": "John Doe", "location": "New York", "organization": "Acme Corp."}

> SELECT ai_extract(
    'Send an email to jane.doe@example.com about the meeting at 10am.',
    array('email', 'time')
  );
 {"email": "jane.doe@example.com", "time": "10am"}

Sınırlamalar

  • Bu işlev Azure Databricks SQL Classic'te kullanılamaz.
  • Bu işlev görünümlerle kullanılamaz.
  • Şema en fazla 128 alanı destekler.
  • Alan adları en fazla 150 karakter içerebilir.
  • Şemalar iç içe yerleştirilmiş alanlar için en fazla yedi iç içe yerleştirme düzeyini destekler.
  • Numaralandırma alanları en fazla 500 değeri destekler.
  • Tür doğrulaması , , integernumberve boolean türleri için enumzorlanır. Bir değer belirtilen türle eşleşmiyorsa işlev bir hata döndürür.
  • Toplam bağlam boyutu üst sınırı 128.000 belirteçtir.

Sürüm 2

  • Bu işlev Azure Databricks SQL Classic'te kullanılamaz.
  • Bu işlev görünümlerle kullanılamaz.
  • Şema en fazla 128 alanı destekler.
  • Alan adları en fazla 150 karakter içerebilir.
  • Şemalar iç içe yerleştirilmiş alanlar için en fazla yedi iç içe yerleştirme düzeyini destekler.
  • Numaralandırma alanları en fazla 500 değeri destekler.
  • Tür doğrulaması , , integernumberve boolean türleri için enumzorlanır. Bir değer belirtilen türle eşleşmiyorsa işlev bir hata döndürür.
  • Toplam bağlam boyutu üst sınırı 128.000 belirteçtir.

Sürüm 1

  • Bu işlev Azure Databricks SQL Classic'te kullanılamaz.
  • Bu işlev Görünümler ile kullanılamaz.
  • İçerikte bir varlık türü için birden fazla aday bulunursa, yalnızca bir değer döndürülür.