
Applications d'IA basées sur les données apprises avec RamaIndex
Description
Introduction au livre
Connectons les données et le LLM pour créer des applications d'IA véritablement utiles.
L'IA générative et les grands modèles de langage (LLM) sont des outils puissants dotés d'un potentiel énorme, mais ils présentent également des faiblesses évidentes, telles que la génération d'informations trompeuses, le traitement de contextes courts et la difficulté à refléter des données à jour.
Ce livre fournit des conseils précis sur la manière d'utiliser la génération de recherche augmentée (RAG) et LlamaIndex pour surmonter ces limitations, et vous aide à pratiquer l'ensemble du processus de développement d'applications d'IA, de la collecte de données à l'indexation, en passant par la recherche, l'interrogation, l'ingénierie des invites et le déploiement, en créant votre propre projet avec Python et Streamlit.
Ce livre aborde tous les sujets, des concepts de base à la création de chatbots et d'agents, en passant par la personnalisation et les stratégies de déploiement concrètes.
Ce livre vous permettra d'aller au-delà de la simple formation pratique pour expérimenter l'ensemble du processus de traitement et d'optimisation des données, et développer les compétences nécessaires pour créer des applications d'IA précises et intelligentes qui transcendent les limites d'un LLM.
L'IA générative et les grands modèles de langage (LLM) sont des outils puissants dotés d'un potentiel énorme, mais ils présentent également des faiblesses évidentes, telles que la génération d'informations trompeuses, le traitement de contextes courts et la difficulté à refléter des données à jour.
Ce livre fournit des conseils précis sur la manière d'utiliser la génération de recherche augmentée (RAG) et LlamaIndex pour surmonter ces limitations, et vous aide à pratiquer l'ensemble du processus de développement d'applications d'IA, de la collecte de données à l'indexation, en passant par la recherche, l'interrogation, l'ingénierie des invites et le déploiement, en créant votre propre projet avec Python et Streamlit.
Ce livre aborde tous les sujets, des concepts de base à la création de chatbots et d'agents, en passant par la personnalisation et les stratégies de déploiement concrètes.
Ce livre vous permettra d'aller au-delà de la simple formation pratique pour expérimenter l'ensemble du processus de traitement et d'optimisation des données, et développer les compétences nécessaires pour créer des applications d'IA précises et intelligentes qui transcendent les limites d'un LLM.
- Vous pouvez consulter un aperçu du contenu du livre.
Aperçu
indice
Préface du traducteur xii
Revue du lecteur bêta xiv
Début XVI
À propos de ce livre xvii
PARTIE I : Présentation de l'IA générative et de LlamaIndex
CHAPITRE 1 Comprendre les grands modèles de langage 3
1.1 Introduction à l'IA générative et au LLM 4
1.1.1 Qu'est-ce que l'IA générative ? 4 / 1.1.2 Qu'est-ce que le LLM ? 4
1.2 Comprendre le rôle du LLM dans la technologie moderne 6
1.3 Explorer les défis auxquels sont confrontés les LLM 8
1.4 Augmentation du LLM avec RAG 12
1.5 Résumé 14
CHAPITRE 02 LlamaIndex : Un joyau caché ? Présentation de l’écosystème LlamaIndex 15
2.1 Exigences techniques 15
2.2 Optimisation du modèle de langage : interaction entre le réglage fin, RAG et LlamaIndex 16
__2.2.1 Le chiffon est-il la seule solution ? 16 / 2.2.2 Caractéristiques de LlamaIndex 18
2.3 Découvrir les avantages de la divulgation progressive de la complexité 20
__2.3.1 Aspects importants à prendre en compte 21
2.4 Projet pratique LlamaIndex - Introduction à PITS 21
__2.4.1 Fonctionnement 21
2.5 Préparation de l'environnement de codage 23
2.5.1 Installation de Python 24 / 2.5.2 Installation de Git 24 / 2.5.3 Installation de LlamaIndex 25 / 2.5.4 Enregistrement d'une clé API OpenAI 25 / 2.5.5 Découverte de Streamlit – L'outil idéal pour une création et un déploiement rapides 28 / 2.5.6 Installation de Streamlit 29 / 2.5.7 Conclusion 29 / 2.5.8 Vérifications finales 30
2.6 Comprendre la structure du dépôt de code LlamaIndex 31
2.7 Résumé 32
PARTIE II : Démarrer votre premier projet LlamaIndex
CHAPITRE 03 Débuter votre voyage avec LlamaIndex 37
3.1 Exigences techniques 37
3.2 Comprendre les composants essentiels de LlamaIndex : documents, nœuds et index 38
3.2.1 Documents 38 / 3.2.2 Nœuds 41 / 3.2.3 Création manuelle d'objets nœuds 43 / 3.2.4 Extraction automatique de nœuds à partir de documents à l'aide de séparateurs 43 / 3.2.5 Les nœuds n'aiment pas être seuls ; ils recherchent les relations 45 / 3.2.6 Pourquoi les relations sont-elles importantes ? 46 / 3.2.7 Index 47 / 3.2.8 Presque terminé ? 49 / 3.2.9 Comment cela fonctionne-t-il en interne ? 50 / 3.2.10 Récapitulatif rapide des concepts clés 52
3.3 Création de votre première candidature LLM interactive et augmentée 52
3.3.1 Comprendre la logique et déboguer les applications à l'aide des fonctionnalités de journalisation de LlamaIndex 54 / 3.3.2 Personnalisation du LLM utilisé dans LlamaIndex 55 / 3.3.3 C'est aussi simple que 1-2-3 55 / 3.3.4 Paramètres de température 56 / 3.3.5 Comprendre comment utiliser les paramètres de personnalisation 58
3.4 Pratique ? Démarrage du projet PITS 59
3.4.1 Examen du code source 61
3.5 Résumé 64
CHAPITRE 04 Importation des données dans le flux de travail RAG 65
4.1 Exigences techniques 65
4.2 Collecte de données via LlamaHub 66
4.3 Aperçu de LlamaHub 67
4.4 Collecte de contenu à l'aide de LlamaHub Data Loader 68
4.4.1 Collecte de données à partir de pages web 68 / 4.4.2 Collecte de données à partir de bases de données 70 / 4.4.3 Collecte de données en masse à partir de sources dans divers formats de fichiers 71
4.5 Analyse d'un document en nœuds 76
4.5.1 Comprendre un séparateur de texte simple 76 / 4.5.2 Utiliser un analyseur de nœuds plus avancé 78 / 4.5.3 Utiliser un analyseur relationnel 82 / 4.5.4 Confusion entre analyseurs de nœuds et séparateurs de texte ? 83 / 4.5.5 Comprendre la taille et le chevauchement des segments 83 / 4.5.6 Inclure les relations avec Include_Prev_Next_rel 85 / 4.5.7 Utilisation pratique de ce modèle de création de nœuds 86
4.6 Utilisation des métadonnées pour améliorer le contexte 88
4.6.1 Extracteur de résumé 90 / 4.6.2 Extracteur de questions-réponses 91 / 4.6.3 Extracteur de titre 91 / 4.6.4 Extracteur d'entité 92 / 4.6.5 Extracteur de mots-clés 93 / 4.6.6 Extracteur de programme Pydantic 94 / 4.6.7 Extracteur de métadonnées Marvin 94 / 4.6.8 Définition d'un extracteur personnalisé 95 / 4.6.9 Plus de métadonnées, est-ce toujours mieux ? 95
4.7 Estimation des coûts pouvant survenir lors de l'utilisation d'un extracteur de métadonnées 96
4.7.1 Bonnes pratiques simples pour minimiser les coûts 97 / 4.7.2 Estimation des coûts maximaux avant la mise en marche de l'extracteur 97
4.8 Protection de la vie privée avec les extracteurs de métadonnées et au-delà 99
4.8.1 Suppression des données personnelles et autres informations sensibles 101
4.9 Améliorer l'efficacité grâce aux pipelines de collecte de données 102
4.10 Traitement des documents contenant à la fois du texte et des données tabulaires 106
4.11 Exercices pratiques ? Téléchargement des documents d’étude sur PITS 107
4.12 Résumé 109
CHAPITRE 05 Indexation avec LlamaIndex 111
5.1 Exigences techniques 111
5.2 Indexation des données – Une perspective holistique 112
5.2.1 Caractéristiques communes à tous les types d'index 113
5.3 Comprendre VectorStoreIndex 114
5.3.1 Un exemple simple d'utilisation de VectorStoreIndex 114 / 5.3.2 Comprendre les plongements lexicaux 116 / 5.3.3 Comprendre la recherche par similarité 118 / 5.3.4 Comment LlamaIndex génère-t-il ces plongements lexicaux ? 122 / 5.3.5 Quel modèle de plongement lexical utiliser ? 124
5.4 Persistance et réutilisation de l'index 125
5.4.1 Comprendre le contexte de stockage 127 / 5.4.2 Différences entre le stockage vectoriel et la base de données vectorielle 129
5.5 Autres types d'index dans LlamaIndex 131
5.5.1 Index des résumés 131 / 5.5.2 Index des résumés de documents 133 / 5.5.3 Index de la table des mots clés 135 / 5.5.4 Index arborescent 137 / 5.5.5 Index du graphe de connaissances 142
5.6 Création d'index superposés à l'aide de ComposableGraph 145
5.6.1 Utilisation de ComposableGraph 146 / 5.6.2 Explication plus détaillée de ce concept 147
5.7 Estimation du coût potentiel de la construction d'index et des requêtes 148
5.8 Pratique ? Indexation des ressources pédagogiques PITS 152
5.9 Résumé 153
PARTIE III Recherche et exploitation des données indexées 155
CHAPITRE 06 Interrogation des données, étape 1 - Recherche contextuelle 157
6.1 Exigences techniques 157
6.2 Aperçu du mécanisme de requête 158
6.3 Comprendre le moteur de recherche de base 158
6.3.1 Recherche d'index VectorStore 160 / 6.3.2 Recherche d'index Summary 162 / 6.3.3 Recherche d'index DocumentSummary 164 / 6.3.4 Recherche d'index Tree 167 / 6.3.5 Recherche d'index KeywordTable 170 / 6.3.6 Recherche d'index KnowledgeGraph 172 / 6.3.7 Caractéristiques communes à tous les outils de recherche 176 / 6.3.8 Utilisation efficace des mécanismes de recherche - Opérations asynchrones 177
6.4 Construction d'un mécanisme de recherche avancé 178
6.4.1 Méthodes de recherche simples 178 / 6.4.2 Implémentation des filtres de métadonnées 179 / 6.4.3 Utilisation des sélecteurs pour une logique de décision plus avancée 182 / 6.4.4 Comprendre les outils 184 / 6.4.5 Transformation et réécriture des requêtes 186 / 6.4.6 Création de sous-requêtes plus spécifiques 188
6.5 Comprendre les concepts de recherche dense et clairsemée 191
6.5.1 Recherche dense 191 / 6.5.2 Recherche clairsemée 192 / 6.5.3 Implémentation de la recherche clairsemée dans LlamaIndex 195 / 6.5.4 Exploration d'autres méthodes de recherche avancées 198
6.6 Résumé 199
CHAPITRE 07 Interrogation des données, étape 2 - Post-traitement et synthèse des réponses 200
7.1 Exigences techniques 200
7.2 Réorganisation, transformation et filtrage des nœuds à l'aide de postprocesseurs 201
7.2.1 Exploration du filtrage, de la transformation et du réordonnancement des nœuds par les postprocesseurs 202 / 7.2.2 SimilarityPostprocessor 204 / 7.2.3 KeywordNodePostprocessor 205 / 7.2.4 PrevNextNodePostprocessor 208 / 7.2.5 LongContextReorder 209 / 7.2.6 PIINodePostprocessor et NERPIINodePostprocessor 209 / 7.2.7 MetadataReplacementPostprocessor 210 / 7.2.8 SentenceEmbeddingOptimizer 212 / 7.2.9 Postprocesseurs temporels 213 / 7.2.10 Postprocesseurs de réordonnancement 215 / 7.2.11 Conclusion sur les postprocesseurs de nœuds 220
7.3 Comprendre le synthétiseur de réponse 220
7.4 Mise en œuvre des techniques d'analyse syntaxique des résultats 224
7.4.1 Extraction de données structurées à l'aide d'un analyseur syntaxique de sortie 225 / 7.4.2 Extraction de données structurées à l'aide d'un programme Pydantic 229
7.5 Création et utilisation d'un moteur de requêtes 230
7.5.1 Exploration de différentes méthodes de construction d'un moteur de requêtes 230 / 7.5.2 Utilisation avancée de l'interface du moteur de requêtes 231
7.6 Exercice ? Créer un questionnaire dans PITS 239
7.7 Résumé 242
CHAPITRE 08 Création de chatbots et d'agents avec LlamaIndex 243
8.1 Exigences techniques 243
8.2 Comprendre les chatbots et les agents 244
8.2.1 Découverte de ChatEngine 246 / 8.2.2 Comprendre les différents modes de chat 248
8.3 Mise en œuvre des stratégies d'agents dans votre application 258
8.3.1 Création d'outils et de classes ToolSpec pour les agents 259 / 8.3.2 Comprendre la boucle d'inférence 262 / 8.3.3 OpenAIAgent 264 / 8.3.4 ReActAgent 269 / 8.3.5 Comment interagir avec l'agent ? 271 / 8.3.6 Améliorer l'agent à l'aide d'outils utilitaires 271 / 8.3.7 Utiliser l'agent LLMCompiler pour des scénarios plus avancés 276 / 8.3.8 Utiliser l'API du protocole d'agent de bas niveau 279
8.4 Exercice pratique : Mise en œuvre du suivi des conversations pour PITS 282
8.5 Résumé 288
Résumé 133
PARTIE IV Personnalisation, ingénierie rapide et conclusion
CHAPITRE 09 Personnalisation et déploiement du projet LlamaIndex 291
9.1 Exigences techniques 291
9.2 Personnalisation des composants RAG 292
9.2.1 Impact de LLaMA et LLaMA 2 sur l'environnement open-source 292 / 9.2.2 Exécution de LLM locaux avec LM Studio 293 / 9.2.3 Routage entre LLM avec des services comme Neutrino ou OpenRouter 300 / 9.2.4 Personnalisation du modèle d'intégration 303 / 9.2.5 Utilisation de la simplicité d'utilisation des Llama Packs 303 / 9.2.6 Utilisation de l'interface de ligne de commande Llama 306
9.3 Utilisation de techniques avancées de suivi et d'évaluation 308
9.3.1 Suivi des flux de travail RAG avec Phoenix 309 / 9.3.2 Évaluation de notre système RAG 312
9.4 Introduction à la distribution avec Streamlit 319
9.5 Prise en main ? Guide de déploiement étape par étape 321
__9.5.1 Déploiement d'un projet PITS sur le cloud communautaire Streamlit 323
9.6 Résumé 327
CHAPITRE 10 Lignes directrices et meilleures pratiques pour une ingénierie rapide 328
10.1 Exigences techniques 328
10.2 Pourquoi les invites sont votre arme secrète 329
10.3 Comprendre comment LlamaIndex utilise les invites 332
10.4 Personnalisation de l'invite par défaut 335
__10.4.1 Utilisation de techniques d'incitation avancées dans LlamaIndex 339
10.5 La règle d'or de l'ingénierie rapide 340
10.5.1 Exactitude et clarté de l'expression 340 / 10.5.2 Caractère directif 340 / 10.5.3 Qualité du contexte 340 / 10.5.4 Quantité de contexte 341 / 10.5.5 Format de sortie requis 342 / 10.5.6 Coût d'inférence 342 / 10.5.7 Latence globale du système 343 / 10.5.8 Choix du bon LLM pour la tâche 343 / 10.5.9 Méthodes courantes pour créer des invites efficaces 346
10.6 Résumé 349
CHAPITRE 11 Conclusion et ressources supplémentaires 351
11.1 Autres projets et apprentissages complémentaires 351
11.1.1 Collection d'exemples LlamaIndex 352 / 11.1.2 Prochaines étapes ? Prime Replit 355 / 11.1.3 La force de la majorité ? Communauté LlamaIndex 356
11.2 Principaux points à retenir et mots d'encouragement finaux 357
11.2.1 L'avenir de RAG dans le contexte plus large de l'IA générative 359 / 11.2.2 Considérations philosophiques 362
11.3 Résumé 363
Recherche 365
Revue du lecteur bêta xiv
Début XVI
À propos de ce livre xvii
PARTIE I : Présentation de l'IA générative et de LlamaIndex
CHAPITRE 1 Comprendre les grands modèles de langage 3
1.1 Introduction à l'IA générative et au LLM 4
1.1.1 Qu'est-ce que l'IA générative ? 4 / 1.1.2 Qu'est-ce que le LLM ? 4
1.2 Comprendre le rôle du LLM dans la technologie moderne 6
1.3 Explorer les défis auxquels sont confrontés les LLM 8
1.4 Augmentation du LLM avec RAG 12
1.5 Résumé 14
CHAPITRE 02 LlamaIndex : Un joyau caché ? Présentation de l’écosystème LlamaIndex 15
2.1 Exigences techniques 15
2.2 Optimisation du modèle de langage : interaction entre le réglage fin, RAG et LlamaIndex 16
__2.2.1 Le chiffon est-il la seule solution ? 16 / 2.2.2 Caractéristiques de LlamaIndex 18
2.3 Découvrir les avantages de la divulgation progressive de la complexité 20
__2.3.1 Aspects importants à prendre en compte 21
2.4 Projet pratique LlamaIndex - Introduction à PITS 21
__2.4.1 Fonctionnement 21
2.5 Préparation de l'environnement de codage 23
2.5.1 Installation de Python 24 / 2.5.2 Installation de Git 24 / 2.5.3 Installation de LlamaIndex 25 / 2.5.4 Enregistrement d'une clé API OpenAI 25 / 2.5.5 Découverte de Streamlit – L'outil idéal pour une création et un déploiement rapides 28 / 2.5.6 Installation de Streamlit 29 / 2.5.7 Conclusion 29 / 2.5.8 Vérifications finales 30
2.6 Comprendre la structure du dépôt de code LlamaIndex 31
2.7 Résumé 32
PARTIE II : Démarrer votre premier projet LlamaIndex
CHAPITRE 03 Débuter votre voyage avec LlamaIndex 37
3.1 Exigences techniques 37
3.2 Comprendre les composants essentiels de LlamaIndex : documents, nœuds et index 38
3.2.1 Documents 38 / 3.2.2 Nœuds 41 / 3.2.3 Création manuelle d'objets nœuds 43 / 3.2.4 Extraction automatique de nœuds à partir de documents à l'aide de séparateurs 43 / 3.2.5 Les nœuds n'aiment pas être seuls ; ils recherchent les relations 45 / 3.2.6 Pourquoi les relations sont-elles importantes ? 46 / 3.2.7 Index 47 / 3.2.8 Presque terminé ? 49 / 3.2.9 Comment cela fonctionne-t-il en interne ? 50 / 3.2.10 Récapitulatif rapide des concepts clés 52
3.3 Création de votre première candidature LLM interactive et augmentée 52
3.3.1 Comprendre la logique et déboguer les applications à l'aide des fonctionnalités de journalisation de LlamaIndex 54 / 3.3.2 Personnalisation du LLM utilisé dans LlamaIndex 55 / 3.3.3 C'est aussi simple que 1-2-3 55 / 3.3.4 Paramètres de température 56 / 3.3.5 Comprendre comment utiliser les paramètres de personnalisation 58
3.4 Pratique ? Démarrage du projet PITS 59
3.4.1 Examen du code source 61
3.5 Résumé 64
CHAPITRE 04 Importation des données dans le flux de travail RAG 65
4.1 Exigences techniques 65
4.2 Collecte de données via LlamaHub 66
4.3 Aperçu de LlamaHub 67
4.4 Collecte de contenu à l'aide de LlamaHub Data Loader 68
4.4.1 Collecte de données à partir de pages web 68 / 4.4.2 Collecte de données à partir de bases de données 70 / 4.4.3 Collecte de données en masse à partir de sources dans divers formats de fichiers 71
4.5 Analyse d'un document en nœuds 76
4.5.1 Comprendre un séparateur de texte simple 76 / 4.5.2 Utiliser un analyseur de nœuds plus avancé 78 / 4.5.3 Utiliser un analyseur relationnel 82 / 4.5.4 Confusion entre analyseurs de nœuds et séparateurs de texte ? 83 / 4.5.5 Comprendre la taille et le chevauchement des segments 83 / 4.5.6 Inclure les relations avec Include_Prev_Next_rel 85 / 4.5.7 Utilisation pratique de ce modèle de création de nœuds 86
4.6 Utilisation des métadonnées pour améliorer le contexte 88
4.6.1 Extracteur de résumé 90 / 4.6.2 Extracteur de questions-réponses 91 / 4.6.3 Extracteur de titre 91 / 4.6.4 Extracteur d'entité 92 / 4.6.5 Extracteur de mots-clés 93 / 4.6.6 Extracteur de programme Pydantic 94 / 4.6.7 Extracteur de métadonnées Marvin 94 / 4.6.8 Définition d'un extracteur personnalisé 95 / 4.6.9 Plus de métadonnées, est-ce toujours mieux ? 95
4.7 Estimation des coûts pouvant survenir lors de l'utilisation d'un extracteur de métadonnées 96
4.7.1 Bonnes pratiques simples pour minimiser les coûts 97 / 4.7.2 Estimation des coûts maximaux avant la mise en marche de l'extracteur 97
4.8 Protection de la vie privée avec les extracteurs de métadonnées et au-delà 99
4.8.1 Suppression des données personnelles et autres informations sensibles 101
4.9 Améliorer l'efficacité grâce aux pipelines de collecte de données 102
4.10 Traitement des documents contenant à la fois du texte et des données tabulaires 106
4.11 Exercices pratiques ? Téléchargement des documents d’étude sur PITS 107
4.12 Résumé 109
CHAPITRE 05 Indexation avec LlamaIndex 111
5.1 Exigences techniques 111
5.2 Indexation des données – Une perspective holistique 112
5.2.1 Caractéristiques communes à tous les types d'index 113
5.3 Comprendre VectorStoreIndex 114
5.3.1 Un exemple simple d'utilisation de VectorStoreIndex 114 / 5.3.2 Comprendre les plongements lexicaux 116 / 5.3.3 Comprendre la recherche par similarité 118 / 5.3.4 Comment LlamaIndex génère-t-il ces plongements lexicaux ? 122 / 5.3.5 Quel modèle de plongement lexical utiliser ? 124
5.4 Persistance et réutilisation de l'index 125
5.4.1 Comprendre le contexte de stockage 127 / 5.4.2 Différences entre le stockage vectoriel et la base de données vectorielle 129
5.5 Autres types d'index dans LlamaIndex 131
5.5.1 Index des résumés 131 / 5.5.2 Index des résumés de documents 133 / 5.5.3 Index de la table des mots clés 135 / 5.5.4 Index arborescent 137 / 5.5.5 Index du graphe de connaissances 142
5.6 Création d'index superposés à l'aide de ComposableGraph 145
5.6.1 Utilisation de ComposableGraph 146 / 5.6.2 Explication plus détaillée de ce concept 147
5.7 Estimation du coût potentiel de la construction d'index et des requêtes 148
5.8 Pratique ? Indexation des ressources pédagogiques PITS 152
5.9 Résumé 153
PARTIE III Recherche et exploitation des données indexées 155
CHAPITRE 06 Interrogation des données, étape 1 - Recherche contextuelle 157
6.1 Exigences techniques 157
6.2 Aperçu du mécanisme de requête 158
6.3 Comprendre le moteur de recherche de base 158
6.3.1 Recherche d'index VectorStore 160 / 6.3.2 Recherche d'index Summary 162 / 6.3.3 Recherche d'index DocumentSummary 164 / 6.3.4 Recherche d'index Tree 167 / 6.3.5 Recherche d'index KeywordTable 170 / 6.3.6 Recherche d'index KnowledgeGraph 172 / 6.3.7 Caractéristiques communes à tous les outils de recherche 176 / 6.3.8 Utilisation efficace des mécanismes de recherche - Opérations asynchrones 177
6.4 Construction d'un mécanisme de recherche avancé 178
6.4.1 Méthodes de recherche simples 178 / 6.4.2 Implémentation des filtres de métadonnées 179 / 6.4.3 Utilisation des sélecteurs pour une logique de décision plus avancée 182 / 6.4.4 Comprendre les outils 184 / 6.4.5 Transformation et réécriture des requêtes 186 / 6.4.6 Création de sous-requêtes plus spécifiques 188
6.5 Comprendre les concepts de recherche dense et clairsemée 191
6.5.1 Recherche dense 191 / 6.5.2 Recherche clairsemée 192 / 6.5.3 Implémentation de la recherche clairsemée dans LlamaIndex 195 / 6.5.4 Exploration d'autres méthodes de recherche avancées 198
6.6 Résumé 199
CHAPITRE 07 Interrogation des données, étape 2 - Post-traitement et synthèse des réponses 200
7.1 Exigences techniques 200
7.2 Réorganisation, transformation et filtrage des nœuds à l'aide de postprocesseurs 201
7.2.1 Exploration du filtrage, de la transformation et du réordonnancement des nœuds par les postprocesseurs 202 / 7.2.2 SimilarityPostprocessor 204 / 7.2.3 KeywordNodePostprocessor 205 / 7.2.4 PrevNextNodePostprocessor 208 / 7.2.5 LongContextReorder 209 / 7.2.6 PIINodePostprocessor et NERPIINodePostprocessor 209 / 7.2.7 MetadataReplacementPostprocessor 210 / 7.2.8 SentenceEmbeddingOptimizer 212 / 7.2.9 Postprocesseurs temporels 213 / 7.2.10 Postprocesseurs de réordonnancement 215 / 7.2.11 Conclusion sur les postprocesseurs de nœuds 220
7.3 Comprendre le synthétiseur de réponse 220
7.4 Mise en œuvre des techniques d'analyse syntaxique des résultats 224
7.4.1 Extraction de données structurées à l'aide d'un analyseur syntaxique de sortie 225 / 7.4.2 Extraction de données structurées à l'aide d'un programme Pydantic 229
7.5 Création et utilisation d'un moteur de requêtes 230
7.5.1 Exploration de différentes méthodes de construction d'un moteur de requêtes 230 / 7.5.2 Utilisation avancée de l'interface du moteur de requêtes 231
7.6 Exercice ? Créer un questionnaire dans PITS 239
7.7 Résumé 242
CHAPITRE 08 Création de chatbots et d'agents avec LlamaIndex 243
8.1 Exigences techniques 243
8.2 Comprendre les chatbots et les agents 244
8.2.1 Découverte de ChatEngine 246 / 8.2.2 Comprendre les différents modes de chat 248
8.3 Mise en œuvre des stratégies d'agents dans votre application 258
8.3.1 Création d'outils et de classes ToolSpec pour les agents 259 / 8.3.2 Comprendre la boucle d'inférence 262 / 8.3.3 OpenAIAgent 264 / 8.3.4 ReActAgent 269 / 8.3.5 Comment interagir avec l'agent ? 271 / 8.3.6 Améliorer l'agent à l'aide d'outils utilitaires 271 / 8.3.7 Utiliser l'agent LLMCompiler pour des scénarios plus avancés 276 / 8.3.8 Utiliser l'API du protocole d'agent de bas niveau 279
8.4 Exercice pratique : Mise en œuvre du suivi des conversations pour PITS 282
8.5 Résumé 288
Résumé 133
PARTIE IV Personnalisation, ingénierie rapide et conclusion
CHAPITRE 09 Personnalisation et déploiement du projet LlamaIndex 291
9.1 Exigences techniques 291
9.2 Personnalisation des composants RAG 292
9.2.1 Impact de LLaMA et LLaMA 2 sur l'environnement open-source 292 / 9.2.2 Exécution de LLM locaux avec LM Studio 293 / 9.2.3 Routage entre LLM avec des services comme Neutrino ou OpenRouter 300 / 9.2.4 Personnalisation du modèle d'intégration 303 / 9.2.5 Utilisation de la simplicité d'utilisation des Llama Packs 303 / 9.2.6 Utilisation de l'interface de ligne de commande Llama 306
9.3 Utilisation de techniques avancées de suivi et d'évaluation 308
9.3.1 Suivi des flux de travail RAG avec Phoenix 309 / 9.3.2 Évaluation de notre système RAG 312
9.4 Introduction à la distribution avec Streamlit 319
9.5 Prise en main ? Guide de déploiement étape par étape 321
__9.5.1 Déploiement d'un projet PITS sur le cloud communautaire Streamlit 323
9.6 Résumé 327
CHAPITRE 10 Lignes directrices et meilleures pratiques pour une ingénierie rapide 328
10.1 Exigences techniques 328
10.2 Pourquoi les invites sont votre arme secrète 329
10.3 Comprendre comment LlamaIndex utilise les invites 332
10.4 Personnalisation de l'invite par défaut 335
__10.4.1 Utilisation de techniques d'incitation avancées dans LlamaIndex 339
10.5 La règle d'or de l'ingénierie rapide 340
10.5.1 Exactitude et clarté de l'expression 340 / 10.5.2 Caractère directif 340 / 10.5.3 Qualité du contexte 340 / 10.5.4 Quantité de contexte 341 / 10.5.5 Format de sortie requis 342 / 10.5.6 Coût d'inférence 342 / 10.5.7 Latence globale du système 343 / 10.5.8 Choix du bon LLM pour la tâche 343 / 10.5.9 Méthodes courantes pour créer des invites efficaces 346
10.6 Résumé 349
CHAPITRE 11 Conclusion et ressources supplémentaires 351
11.1 Autres projets et apprentissages complémentaires 351
11.1.1 Collection d'exemples LlamaIndex 352 / 11.1.2 Prochaines étapes ? Prime Replit 355 / 11.1.3 La force de la majorité ? Communauté LlamaIndex 356
11.2 Principaux points à retenir et mots d'encouragement finaux 357
11.2.1 L'avenir de RAG dans le contexte plus large de l'IA générative 359 / 11.2.2 Considérations philosophiques 362
11.3 Résumé 363
Recherche 365
Image détaillée

Dans le livre
Lorsque j'ai découvert le framework LlamaIndex, j'ai été impressionné par l'exhaustivité de sa documentation officielle.
Mais je me suis vite rendu compte que la multitude d'options pouvait être déconcertante pour les débutants.
Mon objectif était donc de fournir un guide accessible aux débutants qui vous aiderait à explorer les fonctionnalités du framework et à les exploiter dans vos projets.
Plus vous approfondirez les mécanismes internes de LlamaIndex, mieux vous comprendrez son efficacité.
Ce livre vise à combler le fossé entre la documentation officielle et votre compréhension en déconstruisant des concepts complexes et en fournissant des exemples pratiques, vous permettant ainsi de créer en toute confiance des applications RAG tout en évitant les pièges courants.
--- p.xvi
LlamaIndex vous permet de créer rapidement des LLM intelligents capables de s'adapter à des cas d'utilisation spécifiques, en injectant des informations ciblées pour obtenir des réponses précises et pertinentes sans s'appuyer uniquement sur des connaissances générales pré-entraînées (GPT).
Il offre également un moyen simple de connecter des ensembles de données externes aux LLM tels que GPT-4, Claude et Llama.
En d'autres termes, LlamaIndex associe vos connaissances personnalisées aux vastes capacités de LLM.
--- p.18
LlamaHub vous permet d'accéder à une variété de sources de données avec seulement quelques lignes de code.
L'objet Document généré peut être analysé et indexé en nœuds en fonction des besoins de l'application.
Le format de sortie unifié, sous forme d'objet Document LlamaIndex, signifie que vous n'avez pas à gérer de manière complexe différents types de données dans votre logique métier principale.
Cette complexité est masquée par le cadre de travail.
--- p.67
Au fil du temps, les projets logiciels accumulent une documentation exhaustive, comprenant des spécifications techniques, la documentation de l'API, des guides d'utilisation et des notes pour les développeurs.
Le suivi de ces informations peut s'avérer difficile, surtout lorsque votre équipe a besoin de consulter rapidement des détails précis.
L'implémentation d'un SummaryIndex dans le référentiel de documents de votre projet permet aux développeurs d'effectuer des recherches rapides dans tous les documents.
Par exemple, un développeur pourrait demander : « Quelle est la procédure de gestion des erreurs pour l'API de la passerelle de paiement ? »
SummaryIndex analyse les documents indexés pour récupérer les sections pertinentes traitant de la gestion des erreurs, sans nécessiter de modèles d'intégration complexes ni de ressources informatiques intensives.
Cet index est particulièrement utile dans les environnements où les contraintes de ressources rendent impossible le maintien d'un stockage vectoriel important, ou lorsque la simplicité et la rapidité sont prioritaires.
--- p.131
Les applications RAG que nous développons doivent être aussi autonomes que possible pour décider des outils à utiliser en fonction des requêtes spécifiques des utilisateurs et des ensembles de données avec lesquels ils travaillent.
Certaines solutions codées en dur ne donnent de bons résultats que dans des scénarios limités.
C'est là qu'intervient une boucle d'inférence.
La boucle d'inférence est un aspect fondamental d'un agent, lui permettant de décider intelligemment des outils à utiliser dans différents scénarios.
Ceci est important car les exigences des applications complexes du monde réel peuvent varier considérablement, et les approches statiques limitent l'efficacité des agents.
--- p.262
Parfois, un seul LLM peut ne pas être idéal pour toutes les interactions.
Trouver le juste équilibre entre coût, latence et précision dans des scénarios RAG complexes peut s'avérer une tâche ardue lors du choix d'un LLM unique.
Et si vous pouviez combiner plusieurs LLM dans une même application et choisir dynamiquement celui à utiliser pour chaque interaction ? C’est précisément le rôle de services tiers comme Neutrino et OpenRouter.
Ces services peuvent améliorer considérablement les flux de travail RAG en fournissant des capacités de routage intelligent pour les requêtes entre différents LLM.
Mais je me suis vite rendu compte que la multitude d'options pouvait être déconcertante pour les débutants.
Mon objectif était donc de fournir un guide accessible aux débutants qui vous aiderait à explorer les fonctionnalités du framework et à les exploiter dans vos projets.
Plus vous approfondirez les mécanismes internes de LlamaIndex, mieux vous comprendrez son efficacité.
Ce livre vise à combler le fossé entre la documentation officielle et votre compréhension en déconstruisant des concepts complexes et en fournissant des exemples pratiques, vous permettant ainsi de créer en toute confiance des applications RAG tout en évitant les pièges courants.
--- p.xvi
LlamaIndex vous permet de créer rapidement des LLM intelligents capables de s'adapter à des cas d'utilisation spécifiques, en injectant des informations ciblées pour obtenir des réponses précises et pertinentes sans s'appuyer uniquement sur des connaissances générales pré-entraînées (GPT).
Il offre également un moyen simple de connecter des ensembles de données externes aux LLM tels que GPT-4, Claude et Llama.
En d'autres termes, LlamaIndex associe vos connaissances personnalisées aux vastes capacités de LLM.
--- p.18
LlamaHub vous permet d'accéder à une variété de sources de données avec seulement quelques lignes de code.
L'objet Document généré peut être analysé et indexé en nœuds en fonction des besoins de l'application.
Le format de sortie unifié, sous forme d'objet Document LlamaIndex, signifie que vous n'avez pas à gérer de manière complexe différents types de données dans votre logique métier principale.
Cette complexité est masquée par le cadre de travail.
--- p.67
Au fil du temps, les projets logiciels accumulent une documentation exhaustive, comprenant des spécifications techniques, la documentation de l'API, des guides d'utilisation et des notes pour les développeurs.
Le suivi de ces informations peut s'avérer difficile, surtout lorsque votre équipe a besoin de consulter rapidement des détails précis.
L'implémentation d'un SummaryIndex dans le référentiel de documents de votre projet permet aux développeurs d'effectuer des recherches rapides dans tous les documents.
Par exemple, un développeur pourrait demander : « Quelle est la procédure de gestion des erreurs pour l'API de la passerelle de paiement ? »
SummaryIndex analyse les documents indexés pour récupérer les sections pertinentes traitant de la gestion des erreurs, sans nécessiter de modèles d'intégration complexes ni de ressources informatiques intensives.
Cet index est particulièrement utile dans les environnements où les contraintes de ressources rendent impossible le maintien d'un stockage vectoriel important, ou lorsque la simplicité et la rapidité sont prioritaires.
--- p.131
Les applications RAG que nous développons doivent être aussi autonomes que possible pour décider des outils à utiliser en fonction des requêtes spécifiques des utilisateurs et des ensembles de données avec lesquels ils travaillent.
Certaines solutions codées en dur ne donnent de bons résultats que dans des scénarios limités.
C'est là qu'intervient une boucle d'inférence.
La boucle d'inférence est un aspect fondamental d'un agent, lui permettant de décider intelligemment des outils à utiliser dans différents scénarios.
Ceci est important car les exigences des applications complexes du monde réel peuvent varier considérablement, et les approches statiques limitent l'efficacité des agents.
--- p.262
Parfois, un seul LLM peut ne pas être idéal pour toutes les interactions.
Trouver le juste équilibre entre coût, latence et précision dans des scénarios RAG complexes peut s'avérer une tâche ardue lors du choix d'un LLM unique.
Et si vous pouviez combiner plusieurs LLM dans une même application et choisir dynamiquement celui à utiliser pour chaque interaction ? C’est précisément le rôle de services tiers comme Neutrino et OpenRouter.
Ces services peuvent améliorer considérablement les flux de travail RAG en fournissant des capacités de routage intelligent pour les requêtes entre différents LLM.
--- p.300
Avis de l'éditeur
Intelligence artificielle générative : il est temps de la créer, et non de la regarder.
À l'ère de l'IA générative, représentée par ChatGPT, ce livre a été créé pour les développeurs qui souhaitent transformer leurs idées en services concrets mais qui ne savent pas par où commencer.
Nous ne pouvons pas nous contenter d'appeler l'API et d'écrire le modèle.
Il devrait pouvoir s'entraîner avec vos propres données, communiquer en temps réel et déployer des services immédiatement.
Ce livre vous guide pas à pas tout au long de ce processus.
Ce guide pratique évite les concepts complexes, enseigne par la pratique et vous donne la confiance nécessaire pour y arriver vous aussi.
Ce livre aborde les principes de l'IA générative et de la RAG (génération de recherche augmentée) de manière pratique, en utilisant Python et Streamlit.
Nous mettrons notamment en œuvre l'ensemble du pipeline RAG, de la collecte des données à leur post-traitement, en passant par l'analyse, l'indexation et la recherche, en nous concentrant sur LlamaIndex.
Plutôt que de simplement expliquer la fonctionnalité, il montre, à travers un code spécifique, pourquoi chaque étape est nécessaire et comment elle peut être optimisée dans des projets réels.
Il couvre également un large éventail d'applications pratiques et concrètes, notamment la mise en œuvre de chatbots et d'agents, l'ingénierie de messages personnalisés, la gestion des coûts et les stratégies de déploiement.
Une fois que vous aurez compris les composants essentiels tels que VectorStore, KnowledgeGraph et QueryEngine, vous pourrez rapidement transformer vos idées en applications d'IA basées sur les données.
À la fin de ce livre, vous serez passé du statut de simple utilisateur à celui de développeur capable de mettre en œuvre et d'améliorer l'IA.
Pour ceux qui souhaitent apprendre par le code plutôt que par des théories complexes, et qui veulent réaliser un projet LLM pratique en utilisant RAG et LlamaIndex, ce livre constituera le point de départ le plus réaliste.
Contenu principal
● Comprendre l’écosystème LlamaIndex et ses composantes essentielles
● Collecter, analyser et indexer les données provenant de diverses sources (web, bases de données, fichiers, etc.).
● Conception et utilisation d'index personnalisés tels que VectorStore et KnowledgeGraph
● Apprenez des techniques efficaces de requête, de recherche, de post-traitement et de synthèse des réponses.
● Développement d'applications interactives par la mise en œuvre de chatbots et d'agents
● Meilleures pratiques et stratégies d'utilisation pour une ingénierie rapide
● Aborder les questions d’estimation des coûts, de confidentialité et de considérations éthiques
● Déploiement et mise à l'échelle de projets à l'aide de Streamlit
À l'ère de l'IA générative, représentée par ChatGPT, ce livre a été créé pour les développeurs qui souhaitent transformer leurs idées en services concrets mais qui ne savent pas par où commencer.
Nous ne pouvons pas nous contenter d'appeler l'API et d'écrire le modèle.
Il devrait pouvoir s'entraîner avec vos propres données, communiquer en temps réel et déployer des services immédiatement.
Ce livre vous guide pas à pas tout au long de ce processus.
Ce guide pratique évite les concepts complexes, enseigne par la pratique et vous donne la confiance nécessaire pour y arriver vous aussi.
Ce livre aborde les principes de l'IA générative et de la RAG (génération de recherche augmentée) de manière pratique, en utilisant Python et Streamlit.
Nous mettrons notamment en œuvre l'ensemble du pipeline RAG, de la collecte des données à leur post-traitement, en passant par l'analyse, l'indexation et la recherche, en nous concentrant sur LlamaIndex.
Plutôt que de simplement expliquer la fonctionnalité, il montre, à travers un code spécifique, pourquoi chaque étape est nécessaire et comment elle peut être optimisée dans des projets réels.
Il couvre également un large éventail d'applications pratiques et concrètes, notamment la mise en œuvre de chatbots et d'agents, l'ingénierie de messages personnalisés, la gestion des coûts et les stratégies de déploiement.
Une fois que vous aurez compris les composants essentiels tels que VectorStore, KnowledgeGraph et QueryEngine, vous pourrez rapidement transformer vos idées en applications d'IA basées sur les données.
À la fin de ce livre, vous serez passé du statut de simple utilisateur à celui de développeur capable de mettre en œuvre et d'améliorer l'IA.
Pour ceux qui souhaitent apprendre par le code plutôt que par des théories complexes, et qui veulent réaliser un projet LLM pratique en utilisant RAG et LlamaIndex, ce livre constituera le point de départ le plus réaliste.
Contenu principal
● Comprendre l’écosystème LlamaIndex et ses composantes essentielles
● Collecter, analyser et indexer les données provenant de diverses sources (web, bases de données, fichiers, etc.).
● Conception et utilisation d'index personnalisés tels que VectorStore et KnowledgeGraph
● Apprenez des techniques efficaces de requête, de recherche, de post-traitement et de synthèse des réponses.
● Développement d'applications interactives par la mise en œuvre de chatbots et d'agents
● Meilleures pratiques et stratégies d'utilisation pour une ingénierie rapide
● Aborder les questions d’estimation des coûts, de confidentialité et de considérations éthiques
● Déploiement et mise à l'échelle de projets à l'aide de Streamlit
SPÉCIFICATIONS DES PRODUITS
- Date d'émission : 30 octobre 2025
- Nombre de pages, poids, dimensions : 392 pages | 188 × 245 × 19 mm
- ISBN13 : 9791194587842
Vous aimerez peut-être aussi
카테고리
Langue coréenne
Langue coréenne