Documents sources
Les documents sources peuvent être :
– tout ou partie d’un site Web,
– un document HTML (mime type ’text/html’),
– un dossier local,
– un fichier local.
S’agissant de fichiers locaux (ou du contenu d’un dossier local), les types possibles sont, par leur extension : .csv, .doc, .docx, .epub, .mbox, .md [1], .mp3, .pdf, .ppt ... [2].
Un simple fichier .txt peut également être traité mais, à format élémentaire, rendu élémentaire.
Le format Markdown est préférentiel, sous le format décrit ici : https://www.markdownguide.org/basic-syntax/. [3].
Notez le fonctionnement différent selon la source :
– dans le cas d’un site Web, les documents extraits du site sont importés dans le dossier .../data/theme,
– dans tous les autres cas, les fichiers doivent se trouver dans le dossier .../data/theme : il n’y a pas d’importation.
Il est important de considérer que la qualité des traitements d’IA générative dépend étroitement de la qualité des documents et de leur ingestion.
Créer un index
Un index doit exister avant toute opération sur les documents. Pour créer un index [4] :
Usage :
.../ingestcmd.py --create_index --theme <theme>
Paramètres :
Argument | Description | |
—theme theme | Requis | Thème : espace de données spécifique. Un nom court, en minuscules, formé des caractères ’a-z’, ’-’ et ’_’ , sans espace. |
Ingérer des documents
Usage :
.../ingestcmd.py --theme <theme> --source {dir, file, url} [--llm <LLM>] [embeddings <Embeddings model>] [--recurse] [--all] [--forwards] [--level <N>] [--nostore]
Paramètres :
Argument | Description | |
—theme theme | Requis | Thème : espace de données spécifique. Un nom court, en minuscules, formé des caractères ’a-z’, ’-’ et ’_’ , sans espace. |
—source | Requis/Optionnel | Répertoire, fichier ou URL. Les répertoires et fichiers sont désignés par leurs adresses locales et absolues. Cet argument est requis pour toute autre action que —delete_document_by_filename. |
—dynamic | Optionnel | Indique que le site est dynamique et que les scripts doivent être exécutés au chargement de la page. |
—recurse | Optionnel | Ne s’applique que si la source est un répertoire. Indique que les sous-répertoires doivent être parcourus. |
—all | Optionnel | Indique que tout les fichier doivent être traités indépendamment de leur âge, qu’ils aient été modifiés ou non. Attention : le paramètre —all doit être indiqué pour une première ingestion. |
—forwards | Optionnel | Ne s’applique que si la source est un site Web. Indique de ne pas remonter vers la racine des documents. Par exemple, si l’URL est https://monsite.com/fr, le chemin /en ne sera pas parcouru. Voir également : Ingestion RAG : recommandations pour la création des pages Web . |
—levels | Optionnel | S’applique si la source est un site Web ou un répertoire. Nombre de niveaux à parcourir. |
—plan | Optionnel | S’applique si la source est un site Web. La source est un plan des pages à ingérer. Les pages ingérées seront limitées aux liens internes de cette seule page de plan et contenus dans les tags ’ul’ de classe ’plan’. |
—nostore | Optionnel | Par défaut, les index sont sauvegardés à chaque nouvelle ingestion, ce qui prend du temps. L’option —nostore bloque la sauvegarde, ce qui permet de choisir quand cela doit être fait, par exemple après l’ingestion de plusieurs sources. |
—llm modèle | Optionnel | Classe de modèle de langage à utiliser. Les valeurs possibles sont : OpenAI (défaut), MistralAI [5]. |
—embeddings modèle | Optionnel | Classe de modèle d’embeddings (transformer) à utiliser. Les valeurs possibles sont : openAI, BAAI, MistralAI ... [6]. |
Exemples :
.../ingestcmd.py --theme itego --source https://oa.dnc.global --verbose --llm MistralAI --embeddings BAAI --forwards
.../ingestcmd.py --theme thewiw-help --source https://our.whatiswhat.cloud/hlp/3.4.1/fr/ --verbose --llm MistralAI --embeddings BAAI --forwards --all
Réponse :
Réponse | Description |
---|---|
Fatal, code :code | L’exécution du script s’arrête sur l’erreur indiquée. 5 : Fatal pickle.dump error 6 : Fatal error setting LLM 7 : Fatal error setting embedding model 8 : error creating new index |
End, count : compte | L’exécution du script s’est terminée avec succès, le nombre de documents traités est indiqué par count. |
Supprimer un document
Usage :
.../ingestcmd.py <theme> --delete_document_by_filename <filename>
Paramètres :
Argument | Description | |
---|---|---|
—delete_document_by_filename | Optionnel | Supprime le document ayant le nom de fichier indiqué (tel que dans le dossier data du thème) et met à jour les index. Doit être utilisé sans autre argument que theme. |
Réponse :
Réponse | Description |
---|---|
End, code : code | L’exécution du script s’est terminée. code. = 9 indique le succès. En cas d’erreur : 3 : not deleted from index 4 : deleted from index but not deleted from directory 5 : file_name not found 6 : general error 7 : unknown source type Plus d’information dans le fichier nohup. Les codes 1-2, 126-165 et 255 proviennent du shell. |