13 KiB
Fichier de test LLM
Ce document teste si le LLM, qui traduit la documentation, comprend le general_prompt dans scripts/translate.py et l’invite spécifique à la langue dans docs/{language code}/llm-prompt.md. L’invite spécifique à la langue est ajoutée à la fin de general_prompt.
Les tests ajoutés ici seront visibles par tous les concepteurs d’invites spécifiques à chaque langue.
Utiliser comme suit :
- Avoir une invite spécifique à la langue -
docs/{language code}/llm-prompt.md. - Effectuer une nouvelle traduction de ce document dans votre langue cible souhaitée (voir par exemple la commande
translate-pagedetranslate.py). Cela créera la traduction sousdocs/{language code}/docs/_llm-test.md. - Vérifier si tout est correct dans la traduction.
- Si nécessaire, améliorer votre invite spécifique à la langue, l’invite générale, ou le document anglais.
- Corriger ensuite manuellement les problèmes restants dans la traduction, afin que ce soit une bonne traduction.
- Retraduire, en ayant la bonne traduction en place. Le résultat idéal serait que le LLM ne fasse plus aucun changement à la traduction. Cela signifie que l’invite générale et votre invite spécifique à la langue sont aussi bonnes que possible (il fera parfois quelques changements apparemment aléatoires, la raison étant que les LLM ne sont pas des algorithmes déterministes).
Les tests :
Extraits de code
//// tab | Test
Ceci est un extrait de code : foo. Et ceci est un autre extrait de code : bar. Et encore un autre : baz quux.
////
//// tab | Info
Le contenu des extraits de code doit être laissé tel quel.
Voir la section ### Content of code snippets dans l’invite générale dans scripts/translate.py.
////
Guillemets
//// tab | Test
Hier, mon ami a écrit : « Si vous écrivez « incorrectly » correctement, vous l’avez écrit de façon incorrecte ». À quoi j’ai répondu : « Correct, mais ‘incorrectly’ est incorrectement non pas ‘« incorrectly »’ ».
/// note | Remarque
Le LLM traduira probablement ceci de manière erronée. Il est seulement intéressant de voir s’il conserve la traduction corrigée lors d’une retraduction.
///
////
//// tab | Info
Le concepteur de l’invite peut choisir s’il souhaite convertir les guillemets neutres en guillemets typographiques. Il est acceptable de les laisser tels quels.
Voir par exemple la section ### Quotes dans docs/de/llm-prompt.md.
////
Guillemets dans les extraits de code
//// tab | Test
pip install "foo[bar]"
Exemples de littéraux de chaîne dans des extraits de code : "this", 'that'.
Un exemple difficile de littéraux de chaîne dans des extraits de code : f"I like {'oranges' if orange else "apples"}"
Hardcore: Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'"
////
//// tab | Info
... Cependant, les guillemets à l’intérieur des extraits de code doivent rester tels quels.
////
Blocs de code
//// tab | Test
Un exemple de code Bash ...
# Afficher un message de bienvenue à l'univers
echo "Hello universe"
... et un exemple de code console ...
$ <font color="#4E9A06">fastapi</font> run <u style="text-decoration-style:solid">main.py</u>
<span style="background-color:#009485"><font color="#D3D7CF"> FastAPI </font></span> Starting server
Searching for package file structure
... et un autre exemple de code console ...
// Créer un répertoire "Code"
$ mkdir code
// Aller dans ce répertoire
$ cd code
... et un exemple de code Python ...
wont_work() # Cela ne fonctionnera pas 😱
works(foo="bar") # Cela fonctionne 🎉
... et c’est tout.
////
//// tab | Info
Le code dans les blocs de code ne doit pas être modifié, à l’exception des commentaires.
Voir la section ### Content of code blocks dans l’invite générale dans scripts/translate.py.
////
Onglets et encadrés colorés
//// tab | Test
/// info | Info Du texte ///
/// note | Remarque Du texte ///
/// note | Détails techniques Du texte ///
/// check | Vérifications Du texte ///
/// tip | Astuce Du texte ///
/// warning | Alertes Du texte ///
/// danger | Danger Du texte ///
////
//// tab | Info
Les onglets et les blocs « Info »/« Note »/« Warning »/etc. doivent avoir la traduction de leur titre ajoutée après une barre verticale (« | »).
Voir les sections ### Special blocks et ### Tab blocks dans l’invite générale dans scripts/translate.py.
////
Liens Web et internes
//// tab | Test
Le texte du lien doit être traduit, l’adresse du lien doit rester inchangée :
- Lien vers le titre ci-dessus
- Lien interne{.internal-link target=_blank}
- Lien externe
- Lien vers une feuille de style
- Lien vers un script
- Lien vers une image
Le texte du lien doit être traduit, l’adresse du lien doit pointer vers la traduction :
////
//// tab | Info
Les liens doivent être traduits, mais leur adresse doit rester inchangée. Exception faite des liens absolus vers des pages de la documentation FastAPI. Dans ce cas, il faut pointer vers la traduction.
Voir la section ### Links dans l’invite générale dans scripts/translate.py.
////
Éléments HTML « abbr »
//// tab | Test
Voici quelques éléments entourés d’un élément HTML « abbr » (certains sont inventés) :
L’abbr fournit une expression complète
- GTD
lt- XWT
- PSGI
L’abbr donne une expression complète et une explication
- MDN
- I/O.
////
//// tab | Info
Les attributs « title » des éléments « abbr » sont traduits en suivant des consignes spécifiques.
Les traductions peuvent ajouter leurs propres éléments « abbr » que le LLM ne doit pas supprimer. Par exemple pour expliquer des mots anglais.
Voir la section ### HTML abbr elements dans l’invite générale dans scripts/translate.py.
////
Éléments HTML « dfn »
- grappe
- Apprentissage profond
Titres
//// tab | Test
Créer une application Web - un tutoriel
Bonjour.
Annotations de type et indications de type
Rebonjour.
Superclasses et sous-classes
Rebonjour.
////
//// tab | Info
La seule règle stricte pour les titres est que le LLM laisse la partie hachage entre accolades inchangée, ce qui garantit que les liens ne se rompent pas.
Voir la section ### Headings dans l’invite générale dans scripts/translate.py.
Pour certaines consignes spécifiques à la langue, voir par exemple la section ### Headings dans docs/de/llm-prompt.md.
////
Termes utilisés dans les documents
//// tab | Test
-
vous
-
votre
-
p. ex.
-
etc.
-
fooen tant queint -
baren tant questr -
bazen tant quelist -
le Tutoriel - Guide utilisateur
-
le Guide utilisateur avancé
-
la documentation SQLModel
-
la documentation de l’API
-
la documentation automatique
-
Data Science
-
Apprentissage profond
-
Apprentissage automatique
-
Injection de dépendances
-
authentification HTTP Basic
-
HTTP Digest
-
format ISO
-
la norme JSON Schema
-
le schéma JSON
-
la définition de schéma
-
Flux Password
-
Mobile
-
déprécié
-
conçu
-
invalide
-
à la volée
-
standard
-
par défaut
-
sensible à la casse
-
insensible à la casse
-
servir l’application
-
servir la page
-
l’app
-
l’application
-
la requête
-
la réponse
-
la réponse d’erreur
-
le chemin d’accès
-
le décorateur de chemin d’accès
-
la fonction de chemin d’accès
-
le corps
-
le corps de la requête
-
le corps de la réponse
-
le corps JSON
-
le corps de formulaire
-
le corps de fichier
-
le corps de la fonction
-
le paramètre
-
le paramètre de corps
-
le paramètre de chemin
-
le paramètre de requête
-
le paramètre de cookie
-
le paramètre d’en-tête
-
le paramètre de formulaire
-
le paramètre de fonction
-
l’événement
-
l’événement de démarrage
-
le démarrage du serveur
-
l’événement d’arrêt
-
l’événement de cycle de vie
-
le gestionnaire
-
le gestionnaire d’événements
-
le gestionnaire d’exceptions
-
gérer
-
le modèle
-
le modèle Pydantic
-
le modèle de données
-
le modèle de base de données
-
le modèle de formulaire
-
l’objet modèle
-
la classe
-
la classe de base
-
la classe parente
-
la sous-classe
-
la classe enfant
-
la classe sœur
-
la méthode de classe
-
l’en-tête
-
les en-têtes
-
l’en-tête d’autorisation
-
l’en-tête
Authorization -
l’en-tête transféré
-
le système d’injection de dépendances
-
la dépendance
-
l’élément dépendable
-
le dépendant
-
lié aux E/S
-
lié au processeur
-
concurrence
-
parallélisme
-
multi-traitement
-
la variable d’env
-
la variable d’environnement
-
le
PATH -
la variable
PATH -
l’authentification
-
le fournisseur d’authentification
-
l’autorisation
-
le formulaire d’autorisation
-
le fournisseur d’autorisation
-
l’utilisateur s’authentifie
-
le système authentifie l’utilisateur
-
la CLI
-
l’interface en ligne de commande
-
le serveur
-
le client
-
le fournisseur cloud
-
le service cloud
-
le développement
-
les étapes de développement
-
le dict
-
le dictionnaire
-
l’énumération
-
l’enum
-
le membre d’enum
-
l’encodeur
-
le décodeur
-
encoder
-
décoder
-
l’exception
-
lever
-
l’expression
-
l’instruction
-
le frontend
-
le backend
-
la discussion GitHub
-
le ticket GitHub
-
la performance
-
l’optimisation des performances
-
le type de retour
-
la valeur de retour
-
la sécurité
-
le schéma de sécurité
-
la tâche
-
la tâche d’arrière-plan
-
la fonction de tâche
-
le template
-
le moteur de templates
-
l’annotation de type
-
l’annotation de type
-
le worker du serveur
-
le worker Uvicorn
-
le Worker Gunicorn
-
le processus worker
-
la classe de worker
-
la charge de travail
-
le déploiement
-
déployer
-
le SDK
-
le kit de développement logiciel
-
le
APIRouter -
le
requirements.txt -
le jeton Bearer
-
le changement majeur incompatible
-
le bogue
-
le bouton
-
l’appelable
-
le code
-
le commit
-
le gestionnaire de contexte
-
la coroutine
-
la session de base de données
-
le disque
-
le domaine
-
le moteur
-
le faux X
-
la méthode HTTP GET
-
l’élément
-
la bibliothèque
-
le cycle de vie
-
le verrou
-
le middleware
-
l’application mobile
-
le module
-
le montage
-
le réseau
-
l’origine
-
la surcharge
-
le payload
-
le processeur
-
la propriété
-
le proxy
-
la pull request
-
la requête
-
la RAM
-
la machine distante
-
le code d’état
-
la chaîne
-
l’étiquette
-
le framework Web
-
le joker
-
retourner
-
valider
////
//// tab | Info
Il s’agit d’une liste non exhaustive et non normative de termes (principalement) techniques présents dans les documents. Elle peut aider le concepteur de l’invite à déterminer pour quels termes le LLM a besoin d’un coup de main. Par exemple, lorsqu’il continue de remplacer une bonne traduction par une traduction sous-optimale. Ou lorsqu’il a des difficultés à conjuguer/décliner un terme dans votre langue.
Voir par exemple la section ### List of English terms and their preferred German translations dans docs/de/llm-prompt.md.
////