Generator
  • Introduction
  • Endpoints
    • /generate
  • Les spécifications
    • Construire une spécification
    • Liste des spécifications
  • Les contextes
  • Les structures conditionnelles
    • For
  • Les filtres
    • Replace
    • Date
    • Uppercase
    • Lowercase
    • UCFirst
Powered by GitBook
On this page
  • Chaîner les contextes
  • Un contexte multiple pour une même forme de texte
  • Le Content Spinning
  • Utilisation des variables à partir de votre source de données.
  • Ajout d'une probabilité d'exécution

Was this helpful?

Les contextes

PreviousListe des spécificationsNextLes structures conditionnelles

Last updated 5 years ago

Was this helpful?

Un contexte représente la génération d'un texte et ce qu'il doit remplir comme condition pour être valide. Il se compose d'un texte a généré et de conditions (optionnelles) à remplir pour pouvoir se générer : les .

Exemple :

{
    "text" : "Texte a générer",
    "dataSpecTest" : [] // Spécifications à remplir
}

Si vous envoyez ce contexte à l'API, le résultat sera : Texte a générer

Chaîner les contextes

Afin de générer un texte, il vous faut pour cela chaîner les contextes. Cela va permettre de produire votre texte en fonction des différentes conditions que vous aurez décidé. L'exécution des contextes se fait pour le moment dans l'ordre.

Exemple :

[
    {
        "text" : "Nous avons besoin",
        "dataSpecTest" : [] // Spécifications à remplir
    },
    {
        "text" : "de générer un texte.",
        "dataSpecTest" : [] // Spécifications à remplir
    }
]

Le résultat de l'API sera : Nous avons besoin de générer un texte.

Utiliser les spécifications

Vous pouvez utiliser les spécifications pour venir améliorer le rendu de votre texte à générer en fonction de diverses conditions.

Exemple :

[
    {
        "text" : "Nous avons besoin",
        "dataSpecTest" : []
    },
    {
        "text" : "de générer un texte.",
        "dataSpecTest" : [
            [
                {
                    "operator": "===",
                    "left": 2,
                    "right":3
                }
            ]
        ]
    },
    {
        "text" : "d'être au top.",
        "dataSpecTest" : [
            [
                {
                    "operator": "===",
                    "left": 2,
                    "right":2
                }
            ]
        ]
    }
]

Le résultat sera : Nous avons besoin d'être au top.

Un contexte multiple pour une même forme de texte

Il peut arriver que pour une phrase vous souhaitiez en générer qu'une seule en fonction de vos données. Pour cela, vous devez envoyer un tableau de contextes.

"contexts" : [
	{ // Context 1
	 	"dataSpecTest" : [
			[
				{
					"operator" : "===",
					"left": 2,
					"right": 3
				}
   			]
       	],
		"text" : "Avant de démarrer ce rapport, sachez que ..."
	 },
	{ // Context 2
	 	"dataSpecTest" : [
			[
				{
					"operator" : "===",
					"left": 3,
					"right": 3
				}
   			]
       	],
		"text" : "Sachez que ce rapport est complexe ..."
	 }
]

Le résultat sera : Sachez que ce rapport est complexe ...

Vous pouvez ensuite tout cumuler et chaîner des contextes "simples" avec des contextes "multiple" etc ...

Le Content Spinning

Il est possible de faire du Content Spinning dans le texte à générer en utilisant les accolades {} avec le séparateur "pipe" |

[
    {
        "text" : "C'est une {mauvaise|belle} journée.",
        "dataSpecTest" : []
    }
]

A chaque génération, le texte fera aléatoirement :

  • C'est une mauvaise journée

  • C'est une belle journée

Utilisation des variables à partir de votre source de données.

Afin de rendre votre texte dynamique avec des variables, vous pouvez utiliser une syntaxe de "shortcode" tout en utilisant le séparateur # pour accéder aux différents éléments de votre source de données.

  • [[home_team.name]]

  • [[name]]

  • [[home_team.stats.win.total]]

Source de données :

{
    "home_team" : {
        "name": "Olympique Lyonnais",
        "position" : 1
    }
}

Exemple :

[
    {
        "text" : "[[home_team.name]] fait partie du Top 3. L'équipe occupe la [[home.position]]ème place.",
        "dataSpecTest" : [
            [
                {
                    "operator" : ">",
                    "left" : 3,
                    "right" : "[[home_team.position]]"
                }
            ]
        ]
    }
]

Le résultat sera : Olympique Lyonnais fait partie du Top 3. L'équipe occupe la 3ème place.

Ajout d'une probabilité d'exécution

Durant la création de votre contexte, il est possible que vous souhaitez qu'une phrase puisse apparaître de façon totalement aléatoire. Pour cela, vous pouvez rajouter une probabilité à votre contexte avec le mot-clé : probability

La valeur doit être comprise entre 1 et 99 (0 => autant ne pas mettre le contexte / 100 => autant ne pas avoir de probabilité). La valeur est exprimé en pourcentage :

  • 40 => 40% de chance

  • 69 => 69% de chance

  • ...

[
    {
        "text" : "[[#home_team#name]] fait partie du Top 3. L'équipe occupe la [[#home#position]]ème place.",
        "probability": 40,
        "dataSpecTest" : [
            [
                {
                    "condition_test" : "greater_than",
                    "value" : 3,
                    "variable" : "#home_team#position"
                }
            ]
        ]
    }
]

spécifications