-
Урок 1.
00:02:11
001 What Are We Building
-
Урок 2.
00:03:19
002 Installation Instructions (Don't Skip This!)
-
Урок 3.
00:00:23
003 Cursor Tips
-
Урок 4.
00:00:18
004 Explore The Repo problem
-
Урок 5.
00:02:59
005 Explore The Repo solution
-
Урок 6.
00:02:02
006 Setting Up Postgres
-
Урок 7.
00:02:19
007 Using Drizzle & Drizzle Studio
-
Урок 8.
00:01:51
008 Setting Up Redis
-
Урок 9.
00:01:18
009 FAQ's
-
Урок 10.
00:01:03
010 Introduction
-
Урок 11.
00:01:27
011 Choose An LLM problem
-
Урок 12.
00:01:00
012 Choose An LLM solution
-
Урок 13.
00:01:23
013 Our First Model Call problem
-
Урок 14.
00:01:50
014 Our First Model Call solution
-
Урок 15.
00:01:29
015 Set Up Discord Authentication problem
-
Урок 16.
00:02:30
016 Set Up Discord Authentication solution
-
Урок 17.
00:02:25
017 Create A Naive Agent With Serper problem
-
Урок 18.
00:02:23
018 Create A Naive Agent With Serper solution
-
Урок 19.
00:02:50
019 Showing Tool Calls In The Frontend problem
-
Урок 20.
00:01:52
020 Showing Tool Calls In The Frontend solution
-
Урок 21.
00:00:38
021 Search Grounding (optional) problem
-
Урок 22.
00:03:01
022 Search Grounding (optional) solution
-
Урок 23.
00:00:41
023 Rate Limiting (optional) problem
-
Урок 24.
00:03:43
024 Rate Limiting (optional) solution
-
Урок 25.
00:01:56
025 Connecting Our App To MCP Servers (optional)
-
Урок 26.
00:02:34
026 Create Database Resources For Persisting Messages problem
-
Урок 27.
00:02:58
027 Create Database Resources For Persisting Messages solution
-
Урок 28.
00:02:23
028 Persist Chats To The Database problem
-
Урок 29.
00:02:49
029 Persist Chats To The Database solution
-
Урок 30.
00:02:54
030 Creating New Chats In The Frontend problem
-
Урок 31.
00:02:20
031 Creating New Chats In The Frontend solution
-
Урок 32.
00:01:23
032 Showing The Saved Chats In The Frontend problem
-
Урок 33.
00:02:10
033 Showing The Saved Chats In The Frontend solution
-
Урок 34.
00:00:19
034 Fixing The 'New Chat' Button (optional) problem
-
Урок 35.
00:02:56
035 Fixing The 'New Chat' Button (optional) solution
-
Урок 36.
00:00:32
036 Adding 'use-scroll-to-bottom' (optional) problem
-
Урок 37.
00:03:04
037 Adding 'use-scroll-to-bottom' (optional) solution
-
Урок 38.
00:02:02
038 Choosing An Observability Platform
-
Урок 39.
00:01:52
039 Integrating Langfuse problem
-
Урок 40.
00:02:11
040 Integrating Langfuse solution
-
Урок 41.
00:03:00
041 Passing Extra Metadata To Langfuse problem
-
Урок 42.
00:01:48
042 Passing Extra Metadata To Langfuse solution
-
Урок 43.
00:02:13
043 Adding A Scraper problem
-
Урок 44.
00:03:33
044 Adding A Scraper solution
-
Урок 45.
00:00:30
045 Making The LLM Date-Aware (optional) problem
-
Урок 46.
00:01:31
046 Making The LLM Date-Aware (optional) solution
-
Урок 47.
00:01:58
047 Improving Our Crawler (optional)
-
Урок 48.
00:00:46
048 Reporting DB Calls To Langfuse (optional) problem
-
Урок 49.
00:02:19
049 Reporting DB Calls To Langfuse (optional) solution
-
Урок 50.
00:02:09
050 Initializing Evalite problem
-
Урок 51.
00:01:57
051 Initializing Evalite solution
-
Урок 52.
00:03:30
052 Choosing Our Success Criteria
-
Урок 53.
00:01:24
053 Making Our System Testable problem
-
Урок 54.
00:01:47
054 Making Our System Testable solution
-
Урок 55.
00:01:18
055 Our First Deterministic Eval problem
-
Урок 56.
00:02:16
056 Our First Deterministic Eval solution
-
Урок 57.
00:01:14
057 Adding A Global Rate Limiter (optional) problem
-
Урок 58.
00:03:34
058 Adding A Global Rate Limiter (optional) solution
-
Урок 59.
00:02:38
059 The Data Flywheel
-
Урок 60.
00:03:00
060 Our First LLM-As-A-Judge Eval problem
-
Урок 61.
00:03:06
061 Our First LLM-As-A-Judge Eval solution
-
Урок 62.
00:05:15
062 Create A Simple Dataset problem
-
Урок 63.
00:04:41
063 Create A Simple Dataset solution
-
Урок 64.
00:00:44
064 Organizing Our Dataset Into Dev, CI and Regression (optional) problem
-
Урок 65.
00:00:56
065 Organizing Our Dataset Into Dev, CI and Regression (optional) solution
-
Урок 66.
00:01:48
066 Assessing Answer Relevancy (optional) problem
-
Урок 67.
00:02:01
067 Assessing Answer Relevancy (optional) solution
-
Урок 68.
00:00:46
068 Extracting The Parameters Of Our System (optional) problem
-
Урок 69.
00:01:34
069 Extracting The Parameters Of Our System (optional) solution
-
Урок 70.
00:04:12
070 What's Wrong With Our Current Approach_
-
Урок 71.
00:01:32
071 Designing Our New System Prompt problem
-
Урок 72.
00:01:32
071.1 Designing Our New System Prompt problem
-
Урок 73.
00:00:17
072 Designing Our New System Prompt solution
-
Урок 74.
00:01:07
073 Creating a Next Action Picker problem
-
Урок 75.
00:01:33
074 Creating a Next Action Picker solution
-
Урок 76.
00:01:38
075 Implementing The Loop solution
-
Урок 77.
00:02:15
076 Connecting Our Loop To The Frontend problem
-
Урок 78.
00:01:43
077 Connecting Our Loop To The Frontend solution
-
Урок 79.
00:01:35
078 Smoothing Our Streaming (optional) problem
-
Урок 80.
00:01:44
079 Smoothing Our Streaming (optional) solution
-
Урок 81.
00:02:50
080 Showing The Steps Taken in The Frontend problem
-
Урок 82.
00:03:09
081 Showing The Steps Taken in The Frontend solution
-
Урок 83.
00:00:22
082 Fixing Telemetry problem
-
Урок 84.
00:03:09
083 Fixing Telemetry solution
-
Урок 85.
00:00:40
084 Passing The Message History problem
-
Урок 86.
00:02:26
085 Passing The Message History solution
-
Урок 87.
00:00:42
086 Persisting Our New Setup To The Backend problem
-
Урок 88.
00:05:19
087 Persisting Our New Setup To The Backend solution
-
Урок 89.
00:01:27
088 Generating Chat Titles (optional) problem
-
Урок 90.
00:02:49
089 Generating Chat Titles (optional) solution
-
Урок 91.
00:00:22
090 Adding Geolocation Info To The System Prompt (optional) problem
-
Урок 92.
00:02:34
091 Adding Geolocation Info To The System Prompt (optional) solution
-
Урок 93.
00:03:25
092 Agents vs Workflows
-
Урок 94.
00:01:33
093 Collapse Search and Crawl into one tool problem
-
Урок 95.
00:03:04
094 Collapse Search and Crawl into one tool solution
-
Урок 96.
00:01:39
095 Search, Scrape, Summarize problem
-
Урок 97.
00:06:01
096 Search, Scrape, Summarize solution
-
Урок 98.
00:05:33
097 Making A Query Rewriter problem
-
Урок 99.
00:05:07
098 Making A Query Rewriter solution
-
Урок 100.
00:00:48
099 Use A Combined Search_Scrape API Instead (optional) problem
-
Урок 101.
00:01:26
100 Use A Combined Search_Scrape API Instead (optional) solution
-
Урок 102.
00:10:03
101 Resumable Streams (optional)
-
Урок 103.
00:02:58
102 Building An Evaluator problem
-
Урок 104.
00:04:06
103 Building An Evaluator solution
-
Урок 105.
00:00:36
104 Showing Sources In The Frontend problem
-
Урок 106.
00:03:02
105 Showing Sources In The Frontend solution
-
Урок 107.
00:01:25
106 Implementing Guardrails (optional) problem
-
Урок 108.
00:02:19
107 Implementing Guardrails (optional) solution
-
Урок 109.
00:00:59
108 Implement An Ask Clarifying Questions Step (optional) problem
-
Урок 110.
00:02:52
109 Implement An Ask Clarifying Questions Step (optional) solution
-
Урок 111.
00:00:37
110 Showing Usage In The Frontend (optional) problem
-
Урок 112.
00:03:02
111 Showing Usage In The Frontend (optional) solution
-
Урок 113.
00:27:11
112 Migrating to AI SDK v5 (optional)
Would you mind providing the prompts, and other resources we might need to follow along with this course, please?
Thank you to all our crowdfunding supporters - you’re the best! The course has already started and will be released gradually as new lessons become available on the original platform. The final lessons will be unlocked on July 24. Thank you again, and enjoy your learning journey!
Thanks for the head up man .
Thank you to all crowdfunding participants! We're expecting the course - it starts on July 14.