English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 132 Lessons (10h 6m) | 5.58 GB
Build production-ready AI Systems for internal Business Documents using LangChain, LangGraph, OpenAI, Chroma & Python
Build Real-World, Enterprise-grade RAG systems – not just toy demos.
Large Language Models (LLMs) like ChatGPT are powerful – but on their own they don’t know your company’s documents, policies or reports. That’s where Retrieval Augmented Generation (RAG) comes in.
In this course you’ll learn, step by step, how to build professional, fully customizable RAG Applications in Python using LangChain, LangGraph, OpenAI and Chroma – tailored to internal Business Data, Knowledge and Documents.
You won’t just copy a toy example and get “some” result – you’ll understand every Building Block: Loading and Chunking Documents, Embeddings, Vector Databases, Retrieval Strategies, Summarization methods, Conversational Memory, and automated Updates for your Vector Store.
By the end, you’ll be able to design, adapt and extend your own Enterprise RAG Pipelines with Confidence.
What makes this course different?
Most RAG tutorials stop after a simple “ask questions about this PDF” demo. This course goes several levels deeper:
- RAG inside a larger, agentic AI FrameworkYou’ll integrate RAG into LangChain and LangGraph, so it can become one tool in a larger AI Agent that can decide when to use RAG – and when to follow other tools or workflows. This is how modern, Agentic AI systems are built in practice.
- Fully explained, fully customizableEvery step is explained in detail:
- Multiple ways to load and split Documents
- Different Summarization Strategies (Stuff, Map-Reduce, Refine)
- Several Retrieval Strategies and their trade-offs
- Alternatives and Options at each step
You’ll always see why something is done, what could go wrong, and how to adjust it to your own use case.
- Dynamic, automated updates – production, not prototypesReal companies don’t have static PDFs. Files change all the time.You will build a system that can:
- Detect Content and Metadata Changes in Documents and Folders
- Automatically Update Embeddings and Vectors in ChromaDB
- Keep your RAG System in sync with your real document repositories
This is the kind of workflow you need for Enterprise Scenarios.
- Easily swappable Components (LLM, Embeddings, Vector DB, hosting)
- Because everything is built on LangChain and LangGraph, your system is modular:
- Swap OpenAI for Azure OpenAI or another provider
- Change Embedding Models for better data privacy
- Replace Chroma with a more powerful Vector DB if your user base grows
- Adjust prompts, retrievers and memory without rewriting everythingYou’re not locked into a single vendor or toy stack.
- Real-world Enterprise document scenarioYou’ll work with a complex folder structure and multiple file types: PDFs, Word, PowerPoint, Text, CSV, Mixed directoriesExactly the kind of messy, heterogeneous data you’ll see in real organizations.
What you’ll build
Over the course you will:
- Create a Basic Chatbot with LangChain & OpenAI
- Implement Document Summarization Pipelines for small and very large files
- Build your first RAG Chain with FAISS and LangChain
- Add Retrieval Strategies like similarity search, thresholds and MMR
- Use LangGraph to create a graph-based Chatbot with Memory
- Extend it into an Agentic Workflow, where RAG could be one tool among others
- Load and process multiple documents and formats from directories
- Create and operate a dynamic Chroma Vector Database
- Implement Metadata-based search & filtering (by document, page, date, etc.)
- Detect file changes and automatically re-embed updated Documents
- Bring it all together into a customizable, scalable, self-updating, Enterprise-ready RAG system
Who this course is for:
- Data Scientists, ML Engineers, and Developers who want to build real RAG Systems
- AI/Analytics Professionals in Enterprises who work with internal knowledge bases, reports, manuals or document repositories
- Technical Product Managers and Architects planning LLM-powered tools for document Q&A and Summarization
- Advanced Python users who want to understand LangChain, LangGraph and Vector Databases in a structured, hands-on way
Table of Contents
Getting Started
1 Welcome & Introduction
2 How to get the most out of this course
3 Retrieval Augmented Generation – Why and How (Motivation)
4 Course Overview and advanced RAG Workflows at a Glance
5 Student FAQ
Python Installation – Setting up the Coding Environment for this Course
6 Creating a new Anaconda Environment specific to this Course (Don´t Skip!!!)
7 Download and Install Anaconda
8 How to open Jupyter Notebooks
9 How to work with Jupyter Notebooks
Getting Access to the OpenAI API
10 OpenAI – Intro and Overview
11 Creating an OpenAI Account
12 The OpenAI API
LangChain and OpenAI Basics Creating a simple ChatBot in Python
13 Intro
14 Downloads and Preparations
15 A Toy Example Live in Action
16 Recent Updates and Deprecations
17 Using other (OpenAI) LLM Models
18 Token and Cost Analysis
19 Dynamic Prompts with PromptTemplate
20 ChatPromptTemplate with Roles
21 LangChain Expression Language (LEL)
22 LangChain Runnables
23 Adding custom Runnables
24 Wrap Up ChatBot Conversation without Memory (one-shot chain)
25 Turning a One-Shot-Chain into a real conversation with Memory
Document Summarization with LangChain and OpenAI
26 Intro
27 Preparations and Materials
28 Running a Summarization Toy Example
29 LangChain Built-in Chain for Document Summarization
30 Loading PDF Files with LangChain 101
31 Single Mode vs. Page Mode
32 Loading Large Documents with LangChain
33 Excursus Lazy Loading
34 Splitting & Chunking large Documents with LangChain
35 Recap Chunking when Loading
36 Text Splitting with RecursiveCharacterTextSplitter
37 Loading and Splitting PDFs – Pitfalls
38 Splitting large PDF Files with Langchain
39 Splitting with TokenTextSplitter
40 Stuff Summarization of small and mid size Documents
41 Stuff Summarization with Built-in Chain
42 Map-Reduce Summarization of (very) large Documents
43 Map-Reduce Summarization with Parallelization
44 Map-Reduce Summarization with Built-in Chain
45 Map-Reduce Summarization – Pros and Cons
46 Refine Summarization of (very) large Documents – Theory
47 Refine Summarization with LangChain
48 Conclusion
Intro to Retrieval Augmented Generation (RAG) with LangChain and OpenAI
49 Intro
50 Prerequisites and Materials
51 Using an RAG Chain for Business Docs – a Showcase Example
52 LangChain Built-in Chains for RAG
53 Why RAG – Superiority of RAG compared to other approaches
54 Recap Document Loading and Splitting
55 Vectorization & Embedding 101
56 Vector Retrieval with FAISS
57 Augmented Text Generation with OpenAI
58 Reusability of Embeddings and Vector Store
59 Vector Store with persistent long-term memory (FAISS and Chroma)
60 Retrieval Strategies and Techniques – Recap Similarity Search
61 Retrieval Strategies and Techniques – similarity_score_threshold
62 Retrieval Strategies and Techniques – max marginal relevance search (mmr)
63 Retrieval Strategies and Techniques – Comparison and Wrap Up
64 Homework Challenge – Retrieval Strategies applied
65 Scenario 1 Focused Q&A
66 Scenario 2 Exploratory Q&A and Multi-Aspect Q&A
67 Scenario 3 RAG Summarization
68 Scenario 4 Semantic Search Browse
69 Bonus Reducing Reliance on Query Wording with MultiQueryRetriever
LangGraph Basics – Building a Graph ChatBot with Memory
70 Intro
71 Preparations and Materials
72 What is a TypedDict
73 A simple Graph without Memory
74 Robustness and partial States Updates
75 A simple GraphChain with Memory
76 LangGraph Reducers – Introduction
77 Wrap Up A simple real-world Example using LangGraph
78 LangChain Messages – Intro
79 A simple Graph with LangChain Messages
80 The add_messages Reducer
81 Collecting a Messages Conversation with LangGraph
82 Shortcut using MessagesState
83 Creating a ChatBot with LangChain and OpenAI – recap
84 Creating a ChatBot with Memory using LangGraph and OpenAI
85 Running an Interactive Chat Session
86 Integrating a (Lang)Chain in a (Lang)Graph and other optional Features
87 Managing Chat History in longer Conversations – Theory
88 Truncating a Chat History
89 Retrieval Augmented Generation (RAG) with truncated Chat Memory
Working with multiple Documents and File Types
90 Intro
91 Preparations, Downloads and Materials
92 Loading multiple PDF documents in a Directory with LangChain
93 PyPDFDirectoryLoader (optional settings)
94 Loading multiple PDF Files with DirectoryLoader
95 Loading PDFs with UnstructuredLoader
96 Loading Text files (.txt)
97 Loading Word Files (.docx)
98 Loading Powerpoint Files (.pptx)
99 Loading PDF-Powerpoint Presentations
100 Loading CSV Files
101 Loading mixed file types with UnstructuredLoader
102 Loading mixed file types with DirectoryLoader
103 Recap Document Splitting & Vectorization
104 Wrap Up RAG with LangGraph covering multiple Documents and file types
105 Customized Loading by various Criteria
Creating a Dynamic Vector Database with Chroma
106 Intro
107 Preparations, Downloads and Materials
108 How to create an empty Chroma VectorDB (and adding Docs)
109 How to initialize a Chroma VectorDB with initial Docs
110 Loading an existing Chroma VectorDB
111 Searching Filtering Vectors by ID
112 Deleting Vectors by ID
113 Searching Filtering Vectors by Metadata Filters – Preparations
114 Searching Filtering Vectors by Document Name
115 Searching Filtering with Query Syntax
116 Advanced Metadata Searching Filtering – by pages
117 Advanced Metadata Searching Filtering – logical operators
118 Changing, Adding & Updating Metadata – Datetime Formats
119 Adding Unix Timestamp to (existing) Metadata
120 Advanced Metadata Searching Filtering – by Creation Date
121 Searching & Filtering by Document Contents (Substrings)
122 Advanced Searching & Filtering by Document Contents (Substrings)
123 Searching & Filtering by Document contents (Substrings) using regex
124 Wrap Up Adding, Updating and Deleting Docs from a Chroma VectorDB
Automated dynamic VectorDB Updates with Chroma and Python
125 Intro
126 Preparations, Downloads and Materials
127 Detecting content changes in single Word files
128 Detecting content changes in all files in a Directory
129 Using Metadata Prefilters to detect File Changes (Part 1)
130 Using Metadata Prefilters to detect File Changes (Part 2)
131 Dynamic Embedding Bringing it all together (Part 1)
132 Dynamic Embedding Bringing it all together (Part 2)
Resolve the captcha to access the links!
