- Categories:
Fonctions de chaîne et fonctions binaires (AI Functions)
SPLIT_TEXT_MARKDOWN_HEADER (SNOWFLAKE.CORTEX)¶
La fonction SPLIT_TEXT_MARKDOWN_HEADER divise un document au format Markdown en morceaux de texte structuré en fonction des niveaux d’en-tête. La fonction renvoie un tableau d’objets, où chaque objet contient le morceau de texte et les en-têtes associés auxquels ce morceau appartient.
Cette fonction est utile pour préserver la structure du document lors du découpage de contenu à des fins d’intégration, de génération augmentée par la récupération (RAG) ou d’indexation pour la recherche.
La fonction segmente d’abord le texte d’entrée en utilisant les en-têtes Markdown spécifiés, puis divise récursivement chaque segment en utilisant des séparateurs de texte brut par défaut (par exemple, ["nn", "n", " ", ""]) afin de produire des morceaux de la taille souhaitée.
Syntaxe¶
Arguments¶
Obligatoire :
'text_to_split'Chaîne au format Markdown à diviser.
'headers_to_split_on'Une carte clé-valeur dans laquelle les clés sont des syntaxes d’en-tête Markdown (par exemple,
#,##) et les valeurs sont des noms de champs de métadonnées (par ex.,header_1,header_2) pour étiqueter les morceaux. Par exemple :Cette configuration divisera le document en en-têtes
#et##. Dans la sortie, les champsheader_1etheader_2contiendront les valeurs correspondantes du texte d’en-tête.chunk_sizeNombre entier spécifiant le nombre maximum de caractères dans chaque fragment. La valeur doit être supérieure à zéro.
Facultatif :
overlapNombre entier spécifiant le nombre de caractères de chevauchement entre des fragments consécutifs. La valeur par défaut est 0 si non fourni.
Le chevauchement est utile pour maintenir le contexte entre les morceaux, ce qui peut améliorer les performances des tâches d’intégration et de récupération.
Renvoie¶
Renvoie un tableau d’objets. Chaque objet a la structure suivante :
chunk: Une chaîne contenant le texte extrait.headers: Un dictionnaire contenant les valeurs d’en-tête Markdown sous lesquelles le morceau est imbriqué. Les clés correspondent à celles fournies dans la carteheaders_to_split_on.
Exemples¶
Utilisation simple¶
L’exemple suivant divise une chaîne Markdown sur les en-têtes # et ##, produit des morceaux de 12 caractères maximum et applique un chevauchement de 5 caractères entre les morceaux.
Exemple de formatage Markdown et d’aplatissement des résultats en lignes¶
L’exemple suivant crée une table markdown_docs contenant un court document Markdown dans chaque ligne, puis appelle la fonction SPLIT_TEXT_MARKDOWN_HEADER pour fractionner chaque document en fonction des en-têtes “#” et “##”. La fonction divise ensuite chaque segment en morceaux de 20 caractères chacun, avec un chevauchement de 5 caractères entre les morceaux.