KevsRobots Learning Platform
5% Percent Complete
By Kevin McAleer, 5 Minutes
Page last updated August 23, 2026

Ahoy there makers! If you have been using Obsidian for a while you have probably hit the same wall I did. You know you wrote something down about that motor driver. You know it is in there somewhere. But search gives you forty hits for βmotorβ and none of them are the one you want.
Search looks for words. You want to search for meaning.
That is what we are going to build. By the end of this course you will have a tool called Ask My Vault - a Python command line app that reads your entire vault, understands what each note is actually about, and answers questions like βwhat motor driver did I use on the SMARS build and why did I switch?β with a proper answer and a list of the notes it got that answer from.
The technique is called RAG - Retrieval Augmented Generation. It is two ideas glued together:
The important part is that second constraint. A model on its own will happily make things up about your robot. A model that has been handed your actual notes and told to cite them will tell you when your notes do not contain the answer - which is often the most useful thing it can say.
Everything except the final answer step runs entirely on your own machine. The embedding model is a small local one that ChromaDB downloads for you. Your notes never leave your laptop during indexing.
After completing this course, you will:
amv command you can run against your own vaultlist[str] | NoneNo GPU required. Everything here runs comfortably on a laptop, and the retrieval side runs fine on a Raspberry Pi 5.
You should be comfortable with basic Python - functions, classes, dictionaries and list comprehensions. If you are not there yet, start with:
Each lesson builds one piece of the tool. Code appears in blocks like this:
# Every code block in this course is complete and runnable
print("Hello, vault")
Every code block tells you where it goes. The first line is a comment naming the file, so you are never left guessing:
# vault_rag/config.py
CHUNK_SIZE = 1200
When a block adds to a file you already started, the comment says where to put it - and when it replaces something from an earlier lesson, it says that too:
# vault_rag/vault.py (add below the Note class)
# vault_rag/vault.py (replaces the load_note you wrote in lesson 5)
Some blocks are throwaway experiments rather than part of the tool. Those name a scratch file instead, which you can delete afterwards:
# try_it.py - a scratch script in the project root
Blocks with no file comment are either shell commands or short fragments illustrating a point.
Most lessons finish with a Try it Yourself section - small experiments that show you the behaviour rather than just telling you about it - and a Common Issues section for the things that trip people up.
Right then. Letβs find out what RAG actually is.
You can use the arrows β β on your keyboard to navigate between lessons.
Comments