- Categories:
Zeichenfolgen- und Binärfunktionen (AI Functions)
SPLIT_TEXT_MARKDOWN_HEADER (SNOWFLAKE.CORTEX)¶
Die SPLIT_TEXT_MARKDOWN_HEADER-Funktion teilt ein Markdown-formatiertes Dokument basierend auf den Kopfzeilenebenen in strukturierte Textblöcke auf. Die Funktion gibt ein Array von Objekten zurück, wobei jedes Objekt den Textblock und die zugehörigen Kopfzeilen enthält, unter die dieser Block fällt.
Diese Funktion ist nützlich, um die Dokumentstruktur beizubehalten, wenn Inhaltsblöcke für die Einbettung, Retrieval-Augmented Generation (RAG) oder die Suchindizierung erstellt werden.
Die Funktion segmentiert zunächst den Eingabetext unter Verwendung der angegebenen Markdown-Headers und teilt dann rekursiv jedes Segment mithilfe von Standard-Trennzeichen für Klartext auf (z. B. ["nn", "n", " ", ""]), um Blöcke der gewünschten Größe zu erzeugen.
Syntax¶
Argumente¶
Benötigt:
'text_to_split'Eine Markdown-formatierte Zeichenfolge, die aufgeteilt werden soll.
'headers_to_split_on'Eine Schlüssel-Wert-Zuordnung, in der die Schlüssel Markdown-Header-Syntax (z. B.
#,##) und die Werte Metadaten-Feldnamen (z. B.header_1,header_2) sind, um die Blöcke zu kennzeichnen. Beispiel:Mit dieser Konfiguration wird das Dokument auf
#- und##-Header aufgeteilt. In der Ausgabe enthalten die Felderheader_1undheader_2die entsprechenden Header-Textwerte.chunk_sizeEine Ganzzahl, die die maximale Anzahl von Zeichen in jedem Block angibt. Der Wert muss größer als Null sein.
Optional:
overlapEine Ganzzahl, die die Anzahl der Zeichen angibt, die zwischen aufeinanderfolgenden Blöcken überlappen sollen. Der Standardwert ist 0, wenn nicht angegeben.
Überschneidungen sind nützlich, um den Kontext blockübergreifend aufrechtzuerhalten, was die Leistung bei Einbettungs- und Abrufaufgaben verbessern kann.
Rückgabewerte¶
Gibt ein Array von Objekten zurück. Jedes Objekt hat die folgende Struktur:
chunk: Eine Zeichenfolge, die den extrahierten Text enthält.headers: Ein Dictionary mit den Markdown-Header-Werten, unter denen der Block verschachtelt ist. Die Schlüssel stimmen mit den in derheaders_to_split_on-Zuordnung angegebenen Schlüsseln überein.
Beispiele¶
Einfache Nutzung¶
Das folgende Beispiel teilt eine Markdown-Zeichenfolge auf #- und ##-Header auf, erzeugt Blöcke mit bis zu 12 Zeichen und wendet eine 5-Zeichen-Überlappung zwischen Blöcken an.
Beispiel mit Markdown-Formatierung und Vereinfachung von Ergebnissen in Zeilen¶
Im folgenden Beispiel wird eine Tabelle markdown_docs erstellt, die in jeder Zeile ein kurzes Markdown-Dokument enthält, und dann die Funktion SPLIT_TEXT_MARKDOWN_HEADER aufgerufen, um jedes Dokument an den Markdown-Headern ‚#‘ und ‚##‘ zu segmentieren. Die Funktion teilt dann jedes Segment in Blöcke von je 20 Zeichen auf, mit einer Überlappung von 5 Zeichen zwischen den Blöcken.