RAG with Python Cookbook: Practical Recipes from Data Preprocessing to LLM Agents

RAG with Python Cookbook: Practical Recipes from Data Preprocessing to LLM Agents

RAG with Python Cookbook: Practical Recipes from Data Preprocessing to LLM Agents
Автор: Polzer Dominik
Дата выхода: 2026
Издательство: O’Reilly Media, Inc.
Количество страниц: 378
Размер файла: 5,8 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Cover....1

Copyright....4

Table of Contents....5

Preface....9

Who This Book Is For....9

What Youll Learn and How the Book Is Organized....10

Conventions Used in This Book....10

Using Code Examples....11

OReilly Online Learning....12

How to Contact Us....12

Acknowledgments....12

Chapter 1. Getting Started with RAG....15

1.1 Identifying High-Value RAG Use Cases for Your Organization....17

Problem....17

Solution....17

Discussion....19

See Also....20

1.2 Choosing Your IDE and Coding Agent Setup....20

Problem....20

Solution....20

Discussion....22

See Also....22

1.3 Getting Started with Jupyter Notebooks in VS Code....22

Problem....22

Solution....22

Discussion....23

See Also....24

1.4 Storing Secrets and API Keys with .env Files....24

Problem....24

Solution....24

Discussion....26

See Also....26

1.5 Building Your First RAG App....27

Problem....27

Solution....27

Discussion....31

See Also....32

1.6 Choosing the Frameworks and Libraries for Your RAG Applications....32

Problem....32

Solution....32

Discussion....34

1.7 Running the Code Examples in the Book Repository....35

Problem....35

Solution....35

Discussion....36

See Also....36

Chapter 2. Foundation Models....37

2.1 Defining a Suitable Prompt Template....38

Problem....38

Solution....38

Discussion....40

See Also....40

2.2 Selecting the Right Language Model for Your Task....40

Problem....40

Solution....41

Discussion....42

See Also....43

2.3 Generating Content with the OpenAI API....43

Problem....43

Solution....43

Discussion....46

See Also....47

2.4 Generating Content with Googles Gemini Models....47

Problem....47

Solution....47

Discussion....48

See Also....49

2.5 Generating Content with the Anthropic API....49

Problem....49

Solution....49

Discussion....50

See Also....51

2.6 Running Open Source Models Locally with Ollama....51

Problem....51

Solution....51

Discussion....54

See Also....54

2.7 Creating Structured Outputs with the OpenAI SDK and Pydantic....55

Problem....55

Solution....55

Discussion....57

See Also....58

Chapter 3. Loading Data....59

3.1 Loading Word Files in Python....61

Problem....61

Solution....61

Discussion....63

See Also....64

3.2 Loading PDF Files....64

Problem....64

Solution....64

Discussion....65

See Also....66

3.3 Loading and Handling Tabular Data from Excel and CSV Files....66

Problem....66

Solution....66

Discussion....70

See Also....71

3.4 Loading Structured Data from a PostgreSQL Database....71

Problem....71

Solution....71

Discussion....72

See Also....73

3.5 Loading Audio Files via Speech-to-Text Models....73

Problem....73

Solution....73

Discussion....73

See Also....74

3.6 Extracting Text from Images and PDFs via Tesseract OCR....75

Problem....75

Solution....75

Discussion....77

See Also....78

3.7 Extracting Text from Images via Multimodal Models....79

Problem....79

Solution....79

Discussion....81

See Also....81

3.8 Generating Text Description for Images via Multimodal Models....82

Problem....82

Solution....82

Discussion....83

See Also....84

3.9 Generating Text Summaries for Embedded Tables via Multimodal Models....84

Problem....84

Solution....84

Discussion....86

See Also....87

3.10 Parsing PDFs with Multimodal Content....87

Problem....87

Solution....87

Discussion....90

See Also....91

3.11 Loading Videos via Speech-to-Text and Multimodal Models....91

Problem....91

Solution....91

Discussion....95

See Also....96

Chapter 4. Data Preparation....97

4.1 Adding Metadata to Enable Metadata Filtering....98

Problem....98

Solution....98

Discussion....102

See Also....103

4.2 Enhancing Data Quality by Replacing Abbreviations and Technical Terms....104

Problem....104

Solution....104

Discussion....106

See Also....109

4.3 Improving Search Accuracy by Creating Hypothetical Questions for Text Chunks....109

Problem....109

Solution....109

Discussion....111

See Also....113

4.4 Splitting Documents via Character Splitting....113

Problem....113

Solution....113

Discussion....114

See Also....115

4.5 Splitting Documents with Recursive Text Splitters....115

Problem....115

Solution....115

Discussion....117

See Also....119

4.6 Chunking Documents with Document-Aware Splitting....119

Problem....119

Solution....119

Discussion....120

See Also....122

4.7 Splitting Text with Semantic-Aware Chunkers....122

Problem....122

Solution....122

Discussion....124

See Also....125

4.8 Splitting Text with Agentic Chunkers....125

Problem....125

Solution....125

Discussion....128

See Also....129

Chapter 5. Embeddings....131

5.1 Mapping the Linguistic Meaning of Text Chunks to a Numerical Representation....132

Problem....132

Solution....132

Discussion....134

See Also....137

5.2 Visualizing Semantic Relationships Between Text Chunks via Dimensionality Reduction Techniques....137

Problem....137

Solution....137

Discussion....140

See Also....141

5.3 Calculating the Distance Between Embeddings....141

Problem....141

Solution....141

Discussion....143

See Also....144

5.4 Choosing the Right Embedding Model....145

Problem....145

Solution....145

Discussion....145

See Also....146

5.5 Generating Embeddings for Images and Text with CLIP....147

Problem....147

Solution....147

Discussion....150

See Also....150

5.6 Performing Text Classification with Embeddings....151

Problem....151

Solution....151

Discussion....154

See Also....155

5.7 Improving Search Results with a Hybrid Search Approach....155

Problem....155

Solution....155

Discussion....158

See Also....159

Chapter 6. Vector Databases and Similarity Searches....161

6.1 Choosing the Right Vector Database....162

Problem....162

Solution....162

Discussion....164

See Also....165

6.2 Storing and Searching Embeddings with FAISS....165

Problem....165

Solution....166

Discussion....168

See Also....169

6.3 Storing and Working with Embeddings in a Chroma Vector Database....169

Problem....169

Solution....169

Discussion....172

See Also....173

6.4 Storing Embeddings in PostgreSQL with the pgvector Extension....173

Problem....173

Solution....173

Discussion....177

See Also....178

6.5 Performing Similarity Search in PostgreSQL....178

Problem....178

Solution....178

Discussion....180

See Also....181

6.6 Accelerating Vector Searches in PostgreSQL with Indexing Techniques....181

Problem....181

Solution....181

Discussion....185

See Also....187

6.7 Combining Keyword and Similarity Search to Improve Retrieval Accuracy with PostgreSQL....187

Problem....187

Solution....188

Discussion....189

See Also....190

Chapter 7. Retrieval....191

7.1 Optimizing Query Results via Metadata Filtering in PostgreSQL....194

Problem....194

Solution....194

Discussion....197

See Also....198

7.2 Enhancing Retrieval Accuracy with HyDE....198

Problem....198

Solution....198

Discussion....201

See Also....202

7.3 Improving Search Results with Multiquery Retrieval....202

Problem....202

Solution....202

Discussion....205

See Also....205

7.4 Addressing Complex Requests by Designing a Query Routing System....206

Problem....206

Solution....206

Discussion....209

See Also....210

7.5 Enhancing Retrieved Documents by Designing an Auto-Merging Retriever....211

Problem....211

Solution....211

Discussion....213

See Also....214

7.6 Retrieving More Complete Text Chunks with a Sentence Window Retriever....214

Problem....214

Solution....214

Discussion....216

See Also....217

7.7 Improving Retrieval Relevancy with Reranking Methods....217

Problem....217

Solution....217

Discussion....220

See Also....220

7.8 Decomposing Complex Queries into Multiple Subqueries....220

Problem....220

Solution....221

Discussion....223

See Also....224

Chapter 8. Agentic RAG....225

8.1 Designing a Custom Tool in Python....229

Problem....229

Solution....229

Discussion....229

See Also....230

8.2 Using Workflow Patterns in Multiagent Systems....230

Problem....230

Solution....230

Discussion....234

See Also....235

8.3 Choosing an Agentic Framework....235

Problem....235

Solution....235

Discussion....237

See Also....238

8.4 Building an Agentic System via Function Calling....238

Problem....238

Solution....238

Discussion....244

See Also....244

8.5 Accelerating Agents with asyncio....245

Problem....245

Solution....245

Discussion....249

See Also....250

8.6 Building a Sales Negotiation Agent with OpenAIs Agents SDK and Chroma....250

Problem....250

Solution....250

Discussion....257

See Also....259

8.7 Enriching Your Agents Capabilities with MCP Tools....259

Problem....259

Solution....259

Discussion....263

See Also....264

8.8 Building an Agentic System with LangGraph....264

Problem....264

Solution....264

Discussion....271

See Also....273

Chapter 9. Graph RAG....275

9.1 Creating Your First Neo4j Knowledge Graph and Feeding It with Text from Documents....277

Problem....277

Solution....278

Discussion....284

See Also....284

9.2 Extending the Knowledge Graph with Structured Data....285

Problem....285

Solution....285

Discussion....288

See Also....288

9.3 Building Your First Cypher Query....289

Problem....289

Solution....289

Discussion....291

See Also....291

9.4 Enabling Semantic Search on a Neo4j Knowledge Graph....292

Problem....292

Solution....292

Discussion....295

See Also....295

9.5 Optimizing the Knowledge Graph for RAG Systems....295

Problem....295

Solution....295

Discussion....297

See Also....297

Chapter 10. Evaluating RAG Systems....299

10.1 Choosing the Right Evaluation Metrics for RAG Systems....303

Problem....303

Solution....303

Discussion....306

See Also....307

10.2 Evaluating RAG Systems by Humans....307

Problem....307

Solution....307

Discussion....309

See Also....310

10.3 Creating Synthetic Data for Automated Testing....310

Problem....310

Solution....310

Discussion....314

See Also....315

10.4 Evaluating the Retriever Step by Calculating Context Precisionk....315

Problem....315

Solution....316

Discussion....320

See Also....322

10.5 Evaluating Faithfulness During Generation with LLM-as-a-Judge....322

Problem....322

Solution....322

Discussion....329

See Also....330

10.6 Evaluating the Response Relevancy of Your RAG System....330

Problem....330

Solution....330

Discussion....336

See Also....336

Chapter 11. RAG Web Apps....337

11.1 Building Your First Streamlit App....338

Problem....338

Solution....338

Discussion....339

See Also....340

11.2 Building a Chatbot App with Streamlit....340

Problem....340

Solution....340

Discussion....349

See Also....350

11.3 Adding PDF Analyzer Functionality to Your Chatbot....350

Problem....350

Solution....350

Discussion....354

See Also....355

11.4 Connecting Your RAG App to a SQL Database....355

Problem....355

Solution....355

Discussion....360

See Also....361

11.5 Deploying Your Streamlit App with Docker and AWS....361

Problem....361

Solution....361

Discussion....363

See Also....364

Index....365

About the Author....377

As businesses race to unlock the full potential of large language models (LLMs), a critical challenge has emerged: How do you connect these tools to real-time, external data to solve real-world problems? Retrieval-augmented generation (RAG) is the answer. By combining LLMs with information retrieval, RAG empowers you to build everything from intelligent chatbots to autonomous, task-solving agents.

Packed with over 70 practical recipes, this go-to guide tackles a wide range of GenAI applications through structured hands-on learning. Author Dominik Polzer provides the tools you need to design, implement, and optimize RAG systems for your unique use cases. Whether you're working with simple data retrieval or designing cutting-edge autonomous agents, this cookbook will help you stay ahead of the curve.

  • Learn core RAG components including embedding, retrieval, and generation techniques
  • Understand advanced workflows like semantic-aware chunking and multi-query prompting
  • Build custom solutions such as chatbots and autonomous agents for specific data challenges
  • Continuously evaluate and optimize systems for accuracy, relevance, and performance

Похожее:

Список отзывов:

Нет отзывов к книге.