Aller au contenu
A small, square digital illustration shows flat, simplified icons representing various file formats arranged neatly in a grid. Symbols include a curly bracket for JSON5, flowing lines with dashes for YAML and TOML, stacked bars for CSV/Excel, a single angle bracket for XML, a double quotation mark for code, a pie chart with an equation symbol for math and data, and a zipper indicating compressed ZIP files. Each symbol uses clean, geometric shapes within a limited color palette, with no background, shadows, text, or human figures.

Analyseurs

AI generated translation.

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: foo
array:
- 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 document
title = "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).

data.jsonl
{"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 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",
})

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écompresse le contenu d’un fichier zip et renvoie un tableau de fichiers.

const files = await parsers.unzip(env.files[0])

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.

basic.prompty
---
name: Basic Prompt
description: 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)

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:
```js
var x = 1
...
```
Baz qux:

Également pris en charge. …

Renvoie une liste de sections de code analysées.

const fences = parsers.fences("...")

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("...")

La fonction parsers.validateJSON valide une chaîne JSON par rapport à un schéma.

const validation = parsers.validateJSON(schema, json)

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() })

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.

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)

Utilisez la commande parse depuis la CLI pour essayer différents analyseurs.

Fenêtre de terminal
# convert any known data format to JSON
genaiscript parse data mydata.csv