We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

This lesson's interactive features are locked, please to keep using them

What Is Search?

Click to play video

Imagine if you had to scroll through every single movie on Netflix to find the movie you're looking for.

Search is a non-negotiable feature of nearly all content-based web applications. In this course, we'll learn how it works, then focus on using AI, LLMs, and search together for an even better user experience. Good search is about much more than exact keyword matches. We want to be able to:

  • Find relevant results even if the search terms don't match exactly
  • Match based on semantic meaning, not just keywords
  • Understand user intent and context
  • Provide succinct results that go beyond the raw data

To do that, we'll learn about RAG, or "Retrieval Augmented Generation." "Retrieval" is the first component in RAG:

  • R: Retrieve information via a search algorithm
  • A: Augment our instructions with the search results
  • G: Generate better, richer, and more accurate information using LLMs

What Will We Build?

We're going to build pieces of a make-believe product called Hoopla, a Netflix-like streaming service. Specifically, we'll build the technologies that power its search bar.

Assignment

Hoopla needs movie data to search through. Let's download the dataset we'll use throughout this course.

  1. uv init rag-search-engine
    cd rag-search-engine
    
  2. uv venv
    

    Make sure the venv directory is in your .gitignore file. uv init usually adds it for you.

  3. source .venv/bin/activate
    

    You should see (rag-search-engine) at the beginning of your terminal prompt; for example, mine is:

    (rag-search-engine) wagslane@MacBook-Pro-2 rag-search-engine %
    

    Always make sure that your virtual environment is activated when running the code or using the Boot.dev CLI in this course.

Run and submit the CLI tests.