Build your own AI Personal Assistant in TypeScript
Why did I bought?
Matt is a great teacher and a well experienced developer that uses TypeScript even to make coffee 😅 Now he started a new adventure over at aihero.dev and while following Kent C. Dodds course on MCP I wanted to learn more about Agents and how to implement them in my development.
What’s in for you?
To be brutally honest, I do not know it yet. This is just my place where I am collecting notes on the courses I am learning, but I’m pretty sure sooner or later you’ll find plenty of articles that will be more structured than these notes 😅
Retrieval Skill Building
Having an AI as a personal assistant base all of in on your own data. In this module we will learn how to prepare and retrieve it at the right moment.
-
Retrieval Introduction
When working with an LLM that needs to access our own data, the general accepted approach was to train a model leveraging the data itself. But there's something better...
-
Overview of the BM25 Algorithm
Discovering how the BM25 algorithm works with our dataset.
-
Retrieval with BM25
Once we've discovered the capabilities of BM25 to score all our documents, it's time to implement the approach with our LLM.
-
Replacing BM25 with Embeddings
In this lesson we discover the power of Embeddings that helps us build a vector database that is capable of better understand the meaning of our documents and improve the BM25 approach that is based on keywords.
-
Rank Fusion
We discovered how the BM25 is a great approach for keywords matching, while being able to leverage the embedding is great to have a vector capable of helping us understand the meaning of a resource. Let's discover how can we combine the two!
-
Query Rewriting
Don't rely on the user query to search your data. In this lesson you'll learn how to leverage LLM to not only create a set of keywords, but even to rewrite the query for the semantic search.
Advanced Retrieval Skill Building
Learn how to handle big documents inside your archive so you will reduce the allucination and provide only the specific documents that are relevant to the user.
-
Fixed Size Chunks
We get introduced to the concept of chunking large documents into smaller pieces by leveraging the `TokenTextSplitter` from LangChain.
-
Structural Chunking
Let's discover how to help the chunking mechanism by introducing some structure it can follow in order to improve the chunk generation step.
-
Reranking
Leverage the LLM to remove all the chunks that are not that much useful for our end result.
Andrea Barghigiani
Frontend and Product Engineer in Palermo , He/Him