Analyseurs
L’objet parsers fournit divers analyseurs pour les formats de données communs.
La fonction parsers.json5 analyse le format JSON5.
JSON5 est une extension du format de fichier JSON populaire, visant à être plus facile à écrire et à maintenir manuellement (par exemple, pour les fichiers de configuration).
En général, analyser un fichier JSON comme JSON5 ne cause pas de problème, mais cela peut être plus tolérant aux erreurs de syntaxe. En plus de JSON5, une réparation JSON est appliquée si l’analyse initiale échoue.
- Exemple de JSON5
{ // comments unquoted: "and you can quote me on that", singleQuotes: 'I can use "double quotes" here', lineBreaks: "Look, Mom! \No \\n's!", hexadecimal: 0xdecaf, leadingDecimalPoint: 0.8675309, andTrailing: 8675309, positiveSign: +1, trailingComma: "in objects", andIn: ["arrays"], backwardsCompatible: "with JSON",}Pour analyser, utilisez parsers.JSON5. Cela prend en charge à la fois un contenu texte ou un fichier comme entrée.
const res = parsers.JSON5("...")La fonction parsers.YAML analyse le format YAML. YAML est plus convivial pour le tokenizer LLM que JSON et est couramment utilisé dans les fichiers de configuration.
fields: number: 1 boolean: true string: fooarray: - 1 - 2Pour analyser, utilisez parsers.YAML. Cela prend en charge à la fois un contenu texte ou un fichier comme entrée.
const res = parsers.YAML("...")La fonction parsers.TOML analyse le format TOML. TOML est plus convivial pour le tokenizer LLM que JSON et est couramment utilisé dans les fichiers de configuration.
# This is a TOML documenttitle = "TOML Example"[object]string = "foo"number = 1Pour analyser, utilisez parsers.TOML. Cela prend en charge à la fois un contenu texte ou un fichier comme entrée.
const res = parsers.TOML("...")JSONL est un format qui stocke les objets JSON dans un format ligne par ligne. Chaque ligne est un objet JSON(5) valide (nous utilisons l’analyseur JSON5 pour une meilleure résilience aux erreurs).
{"name": "Alice"}{"name": "Bob"}Vous pouvez utiliser parsers.JSONL pour analyser les fichiers JSONL en un tableau d’objets (any[]).
const res = parsers.JSONL(file)La fonction parsers.XML analyse le format XML.
const res = parsers.XML('<xml attr="1"><child /></xml>')Les noms d’attributs sont précédés de ”@_”.
{ "xml": { "@_attr": "1", "child": {} }}Front matter
Section intitulée « Front matter »Front matter est une section de métadonnées en tête d’un fichier, généralement formatée en YAML.
---title: "Hello, World!"---
...Vous pouvez utiliser le parsers.frontmatter ou MD pour extraire les métadonnées dans un objet.
const meta = parsers.frontmatter(file)La fonction parsers.CSV analyse le format CSV. Si l’analyse réussit, la fonction renvoie un tableau d’objets où chaque objet représente une ligne du fichier CSV.
const res = parsers.CSV("...")Les analyseurs détecteront automatiquement les noms d’en-tête s’ils sont présents ; sinon, vous devez fournir un tableau de noms d’en-tête dans les options.
const res = parsers.CSV("...", { delimiter: "\t", headers: ["name", "age"] })La fonction parsers.PDF lit un fichier PDF et tente de le convertir proprement en un format texte. Lisez la documentation /genaiscript/reference/scripts/pdf pour plus d’informations.
La fonction parsers.DOCX lit un fichier .docx comme texte brut.
La fonction parsers.INI analyse les fichiers .ini, généralement utilisés pour les fichiers de configuration. Ce format est similaire au format clé=valeur.
KEY=VALUELa fonction parsers.XLSX lit un fichier .xlsx et renvoie un tableau d’objets où chaque objet représente une ligne de la feuille de calcul. La première ligne est utilisée comme en-têtes. La fonction utilise la bibliothèque xlsx.
const sheets = await parsers.XLSX("...filename.xlsx")const { rows } = sheets[0]Par défaut, elle lit la première feuille et la première ligne comme en-têtes. Vous pouvez passer un nom de feuille de calcul et/ou une plage à traiter en tant qu’options.
const res = await parsers.XLSX("...filename.xlsx", { sheet: "Sheet2", range: "A1:C10",})VTT, SRT
Section intitulée « VTT, SRT »La fonction parsers.transcription analyse les fichiers de transcription VTT ou SRT en une séquence de segments.
const segments = await parsers.transcription("WEBVTT...")Décompression
Section intitulée « Décompression »Décompresse le contenu d’un fichier zip et renvoie un tableau de fichiers.
const files = await parsers.unzip(env.files[0])HTML vers Texte
Section intitulée « HTML vers Texte »La fonction parsers.HTMLToText convertit le HTML en texte brut à l’aide de html-to-text.
const text = parsers.HTMLToText(html)Prompty est un format de modèle de prompt basé sur Markdown. GenAIScript fournit un analyseur pour les modèles prompty, avec quelques champs de métadonnées supplémentaires pour définir des tests et des exemples.
---name: Basic Promptdescription: A basic prompt that uses the chat API to answer questions---system:You are an AI assistant who helps people find information. Answer all questions to the best of your ability.As the assistant, you answer questions briefly, succinctly.user:{{question}}Pour analyser ce fichier, utilisez la fonction parsers.prompty.
const doc = await parsers.prompty(file)Expression mathématique
Section intitulée « Expression mathématique »La fonction parsers.math utilise mathjs pour analyser une expression mathématique.
const res = await parsers.math("1 + 1")La fonction parsers.dotEnv analyse les fichiers .env, généralement utilisés pour les fichiers de configuration. Ce format est similaire au format clé=valeur.
KEY=VALUEAnalyse la sortie de LLM similaire à la sortie de la fonction genaiscript def(). Le texte attendu ressemble à ceci :
Foo bar:```jsvar x = 1...```
Baz qux:Également pris en charge. …
Renvoie une liste de sections de code analysées.
const fences = parsers.fences("...")annotations
Section intitulée « annotations »Analyse les annotations d’erreurs et d’avertissements dans divers formats en une liste d’objets.
const annotations = parsers.annotations("...")La fonction parsers.tokens estime le nombre de tokens dans une chaîne pour le modèle actuel. Cela est utile pour estimer le nombre d’invites pouvant être générées à partir d’une chaîne.
const count = parsers.tokens("...")validateJSON
Section intitulée « validateJSON »La fonction parsers.validateJSON valide une chaîne JSON par rapport à un schéma.
const validation = parsers.validateJSON(schema, json)mustache
Section intitulée « mustache »Exécute le moteur de modèle mustache dans la chaîne et les arguments.
const rendered = parsers.mustache("Today is {{date}}.", { date: new Date() })Exécute le modèle jinja (en utilisant @huggingface/jinja).
const rendered = parsers.jinja("Today is {{date}}.", { date: new Date() })tidyData
Section intitulée « tidyData »Un ensemble d’options de manipulation de données utilisées en interne avec defData.
const d = parsers.tidyData(rows, { sliceSample: 100, sort: "name" })Applique une requête GROQ sur un objet JSON.
const d = parsers.GROQ( `*[completed == true && userId == 2]{ title}`, data)Utilitaire pour hacher un objet ou un tableau en une chaîne adaptée aux fins de hachage.
const h = parsers.hash({ obj, other }, { length: 12 })Par défaut, utilise sha-1, mais sha-256 peut également être utilisé. La logique de conditionnement du hachage peut changer entre les versions de genaiscript.
désenseigner
Section intitulée « désenseigner »Certains modèles renvoient leur raisonnement interne à l’intérieur des balises `
<think>This is my reasoning...</think>YesLa fonction unthink supprime les balises `
const text = parsers.unthink(res.text)Ligne de commande
Section intitulée « Ligne de commande »Utilisez la commande parse depuis la CLI pour essayer différents analyseurs.
# convert any known data format to JSONgenaiscript parse data mydata.csv