
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 - 2
Pour 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 = 1
Pour 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=VALUE
La 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=VALUE
Analyse 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>Yes
La 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