Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir:
Databricks SQL
Databricks Runtime
Önemli
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.
işlevi, ai_prep_search() öğesinin yapılandırılmış çıkışını ai_parse_document RAG vektör arama ve bilgi alma sistemleri için iyileştirilmiş bir biçime dönüştürür. İşlev, her giriş belgesi için içeriği anlamsal öbeklere böler, her öbeği belge başlığı, bölüm üst bilgileri, sayfa başvuruları gibi belge düzeyi bağlamıyla zenginleştirir ve eklemeye hazır bir gösterim oluşturur.
Gereksinimler
- Databricks Runtime 18.2 veya üzeri.
- Sunucusuz işlem kullanıyorsanız, aşağıdakiler de gereklidir:
- Sunucusuz ortam sürümü, gibi
VARIANTözellikleri etkinleştirdiği için 3 veya üzeri olarak ayarlanmalıdır. - Python veya SQL kullanmalıdır. Sunucusuz ek özellikler ve sınırlamalar için bkz. Sunucusuz işlem sınırlamaları.
- Sunucusuz ortam sürümü, gibi
-
ai_prep_searchİşlev Databricks not defterleri, SQL düzenleyicisi, Databricks iş akışları, işler veya Lakeflow Spark Bildirimli İşlem Hatları kullanılarak kullanılabilir.
Sözdizimi
ai_prep_search(
parsed VARIANT,
[options MAP<STRING, STRING>]
) RETURNS VARIANT
Argümanlar
-
parsedVARIANT: öğesinin yapılandırılmış çıkışınıai_parse_documenttemsil eden ifade. -
options: İsteğe bağlıMAP<STRING, STRING>bir . Desteklenen anahtarlar:-
'version': Kullanılacak çıkış şemasının sürümü.
-
İadeler
VARIANT Vektör arama dizini oluşturma için biçimlendirilmiş belge öbekleri içeren bir. Çıktıdaki her satır bir giriş belgesini temsil eder.
Çıkış şeması şöyledir:
{
"document": {
"contents": [
{
"chunk_id": STRING, // Unique identifier composed of the document ID and chunk position
"chunk_position": INT, // 0-based position of the chunk within the document
"chunk_to_retrieve": STRING, // Raw text content of the chunk
"chunk_to_embed": STRING, // Context-enriched text prepared for embedding; see chunk_to_embed format
"pages": [
{
"page_id": INT, // Page index that this chunk appears on
"image_uri": STRING // Path to the page image for multi-modal retrieval
}
]
}
],
"pages": [
{
"id": INT, // 0-based page index
"image_uri": STRING // Path to the rendered page image, populated when
// imageOutputPath is set in ai_parse_document
}
],
"source_uri": STRING // Source document URI
},
"error_status": {...}
}
Önemli
İşlev çıkış şeması major.minor biçimi kullanılarak sürümlenmiştir. Databricks, desteklenen veya varsayılan sürümü, devam eden araştırmalara göre geliştirilmiş gösterimleri yansıtacak şekilde yükseltebilir.
- Küçük sürüm yükseltmeleri geriye dönük olarak uyumludur ve sadece yeni alanlar ekleyebilir.
- Ana sürüm yükseltmeleri, alan eklemeleri, kaldırmalar veya yeniden adlandırmalar gibi uyumsuzluktan kaynaklanan değişiklikleri içerebilir.
chunk_to_embed biçimi
Alan, chunk_to_embed semantik arama sırasında alma kalitesini geliştirmek için belge düzeyi bağlamını öbek içeriğiyle birleştirir. Biçim:
Uyarı
Belirli bir öbek için değer içermeyen alanlar eklenir ancak boş bırakılır. Tam bileşim, alma kalitesini geliştirmek için gelecek sürümlerde güncelleştirilebilir.
The following passage represents a chunk of content from a document.
- 'Content' contains raw document text
- All other fields describe document context and hierarchical information
- For visual elements like images/charts, a summary is generated as part of 'Content'
Document Title: {doc_title}
Page Header: {page_header}
Page Footer: {page_footer}
Section Header: {section_header}
Caption: {caption}
Footnote: {footnote}
Page Number: {page_number}
Content:
{chunk_to_retrieve}
Örnekler
ai_parse_document ile zincirleme
Aşağıdaki örnek, Unity Kataloğu biriminde depolanan ham belgelerden aramaya hazır öbekler üretmek için ile zincirler ai_prep_searchai_parse_document :
WITH parsed_documents AS (
SELECT ai_parse_document(content) AS parsed
FROM READ_FILES('/Volumes/mydata/documents/', format => 'binaryFile')
)
SELECT ai_prep_search(parsed) AS result
FROM parsed_documents;
Vektör arama kaynak tablosu oluşturma
Aşağıdaki örnek çıktıyı tek tek öbek satırlarına düzleştirir ve bir Delta tablosuna yazar. Daha sonra tablo, ekleme sütunu ve birincil anahtar olarak kullanılarak chunk_to_embedchunk_id dizini için kaynak olarak kullanılabilir.
WITH parsed_documents AS (
SELECT ai_parse_document(content) AS parsed
FROM READ_FILES('/Volumes/mydata/documents/', format => 'binaryFile')
),
prepped_documents AS (
SELECT ai_prep_search(parsed) AS result
FROM parsed_documents
)
SELECT
chunk.value:chunk_id::STRING AS chunk_id,
chunk.value:chunk_position::INT AS chunk_position,
chunk.value:chunk_to_retrieve::STRING AS chunk_to_retrieve,
chunk.value:chunk_to_embed::STRING AS chunk_to_embed,
prepped_documents.result:document.source_uri::STRING AS source_uri
FROM
prepped_documents,
LATERAL variant_explode(prepped_documents.result:document.contents) AS chunk;
Sonuçta elde edilen satırlar aşağıdaki şemaya sahiptir:
| Sütun adı | Türü |
|---|---|
chunk_id |
STRING |
chunk_position |
INT |
chunk_to_retrieve |
STRING |
chunk_to_embed |
STRING |
source_uri |
STRING |
Çoklu kalıcı alma özelliğini etkinleştirme
seçeneğiyle ai_parse_document çağrıldığındaimageOutputPath, işlenen sayfa görüntüleri bir Unity Kataloğu birimine kaydedilir ve her öbeğin image_uripages dizisindeki alan doldurulur. Bu görüntü başvuruları, metinde tam olarak temsil edilmeyen blok diyagramları, grafikler veya tablolar gibi görsel bağlam gerektiren soruları yanıtlamak için sorgu zamanında görüntü özellikli bir modele geçirilebilir.
WITH parsed_documents AS (
SELECT ai_parse_document(
content,
map(
'imageOutputPath', '/Volumes/catalog/schema/volume/page_images/',
'descriptionElementTypes', '*'
)
) AS parsed
FROM READ_FILES('/Volumes/mydata/documents/', format => 'binaryFile')
),
prepped_documents AS (
SELECT ai_prep_search(parsed) AS result
FROM parsed_documents
)
SELECT
chunk.value:chunk_id::STRING AS chunk_id,
chunk.value:chunk_to_embed::STRING AS chunk_to_embed,
chunk.value:pages AS pages
FROM
prepped_documents,
LATERAL variant_explode(prepped_documents.result:document.contents) AS chunk;
Sınırlamalar
- İşlev giriş
ai_prep_searcholarak geçerliai_parse_documentbir çıkış gerektirir. DiğerVARIANTverilerin veya desteklenmeyen bir şema sürümünün geçirilmesi beklenmeyen sonuçlara veya hatalara neden olabilir. - Maksimum giriş boyutu, en büyük çıkış boyutuyla tutarlıdır
ai_parse_document.