Five GitHub repos to build, test and understand AI
These are the five actual GitHub repositories from the carousel. Here's what each one is for, which part to open, and how to turn it into something you can use. The practical project running through this guide is an enquiry classifier: a small tool that labels a message as sales, support or other.
part 01
First, choose the job you need
You want to...: Adapt a Claude API example
Open this repository: Claude Cookbooks
What you'll use: A task-specific notebook
You want to...: Search a collection by meaning
Open this repository: Generative AI for Beginners
What you'll use: Lesson 8
You want to...: Compare two prompts fairly
Open this repository: Promptfoo
What you'll use: A repeatable evaluation
You want to...: Understand how gradients work
Open this repository: Neural Networks: Zero to Hero
What you'll use: The micrograd lesson
You want to...: Decide what to learn next
Open this repository: Maxime Labonne's LLM Course
What you'll use: The LLM Engineer roadmap
Public repository access is free. Running its examples can involve API usage, hosting or hardware costs. A README is the starting documentation, a notebook combines explanation and executable cells, and a dependency file lists packages a project needs. Read those before running installation commands.
You can inspect every repo in your browser without installing it. When you do run one, use its current setup instructions in a separate project folder and keep API keys out of files you share.
part 02
1. Claude Cookbooks: start with a real task
Open Anthropic's classification folder and its guide notebook. It gives you a concrete API example to inspect and adapt. Basic Python and an understanding of notebook cells will help; API billing is separate from your Claude chat subscription.
Read the category definitions before the API call. Then identify where the input text enters and what the example expects back. For your practice classifier, define sales as a request about buying, support as help with an existing purchase, and other as everything outside those definitions.
Run a small public or synthetic example first, then change one input. Keep the model and instructions fixed so you can see what that input change does. If a model identifier or dependency has changed, follow the current repository guidance instead of copying an old screenshot.
Useful result: a classifier you can explain, with categories defined before the model sees the messages. An unclear label definition is a product decision to resolve, not something an API automatically fixes.
part 03
2. Microsoft's Generative AI for Beginners: learn search by meaning
Lesson 8, building search applications, demonstrates searching video transcripts and returning relevant video timestamps. It introduces embeddings, numerical representations used to compare text by meaning.
Follow a question through three stages: its numerical representation, the matching transcript section and the timestamp returned. The supplied transcript index uses older material, including an October 2023 cutoff. Treat it as a worked example, then check the current setup guidance and your provider's available models before running it.
For a smaller follow-up project, use ten short FAQ entries you wrote yourself. Give every entry an ID and source title. Search them with a question phrased differently from the answer. Inspect the retrieved entry before asking a model to write an answer from it.
Useful result: a search result that points back to the passage supporting it. If you change the embedding model, rebuild the stored document embeddings with the matching model. Comparing vectors from incompatible embedding setups can break the search even if both are lists of numbers.
part 04
3. Promptfoo: compare changes against the same examples
Open Promptfoo's getting-started guide. It explains how to create a configuration, connect providers, run evaluations and inspect results. The repository is software you run, so expect installation and model-provider setup. Hosted provider calls may send test inputs to that provider and incur usage charges.
For the enquiry classifier, compare two prompt versions on the same messages. Version A gives only the three category names. Version B adds definitions and a rule for messages that contain both a purchase question and a support issue.
Decide the correct labels yourself before the run. Start with six examples, then add the confusing cases you find. Inspect disagreements rather than relying only on an overall score. A prompt that wins on obvious messages may still fail on your most important cases.
Useful result: a comparison you can repeat after a change. Once a small test set has guided lots of revisions, keep some fresh examples aside for a later check.
part 05
4. Zero to Hero: understand the calculation underneath
Karpathy's Neural Networks: Zero to Hero includes lessons and notebooks for micrograd and makemore. This is the more technical route in the list, so basic Python and some calculus will make it easier to follow.
Start with micrograd. Trace a small computation forwards to get its value, then backwards to understand how a change in an earlier input affects that result. You don't need to begin with a full language model.
Try the original expression z = 3x + 2 at x = 4. The output is 14, and increasing x by 0.1 increases z by 0.3. That ratio illustrates a derivative of 3. In a longer computation, backpropagation combines local derivatives through the graph.
Useful result: you can explain what a gradient measures, without treating it as a magic training signal. This lesson supports your understanding of AI; it isn't a prerequisite for adapting every API cookbook.
part 06
5. LLM Course: choose a focused next topic
Open Maxime Labonne's LLM Engineer roadmap. Use it to locate the part your project needs, such as running models, storing searchable information or building applications.
For the classifier, stay with application building and evaluation. If your next feature is answering questions from stored policies, then retrieval and vector storage become relevant. You can return to fine-tuning later if you have a clear reason and suitable data.
Choose one linked tutorial, check its date and setup instructions, then write down the single capability you expect to gain. The roadmap links material of different ages and depths. Public learning links and the author's separately sold products are different things.
Useful result: a next step tied to a project you already understand, so your study time improves something real.
part 07
Worked example: define the labels before testing them
Here's a small synthetic starter set. The mixed-intent rule is our example policy: an unresolved issue with an existing purchase takes priority over a new sales question.
Message: Can I book your automation service?
Expected label: sales
Why: Asking to buy
Message: My template download link doesn't work.
Expected label: support
Why: Existing purchase problem
Message: Love your latest post.
Expected label: other
Why: No buying or support request
Message: Do you have a team package?
Expected label: sales
Why: Asking about an offer
Message: My login failed. Also, can I upgrade?
Expected label: support
Why: Existing issue takes priority
Message: Can you recommend a cafe?
Expected label: other
Why: Outside the service categories
If the fourth message is labelled other, examine whether “sales” was defined too narrowly. If the fifth is labelled sales, make the priority rule explicit. Don't add its exact wording as the only example and assume the problem is solved. Try a new mixed-intent message afterwards.
part 08
Paste this into Claude to get a usable starter pack
This prompt works in a regular chat. It creates the ingredients for the cookbook and evaluation, without requiring an API call.
Create a starter pack for an enquiry classifier I can implement using Anthropic's Claude Cookbooks and test using Promptfoo.
Use these labels: sales = asks about buying a service or product; support = needs help with an existing purchase; other = neither. If a message includes an unresolved existing-purchase issue and a new purchase question, support takes priority.
Return:
1. A precise classification prompt that returns one lowercase label only.
2. Twelve original synthetic test messages in CSV format with columns id,message,expected_label,reason. Include obvious examples, paraphrases, mixed-intent messages and irrelevant text. Quote CSV fields correctly.
3. A deliberately shorter baseline prompt to compare against the full prompt.
4. Four NEW held-out examples in a separate CSV block. Do not use their wording in either prompt.
5. A plain-language explanation of how to inspect failures and update a category policy before changing code.
Keep every message fictional. Do not invent evaluation results. Explain any genuinely ambiguous label and propose one clear policy choice for it. Do not create a provider-specific configuration unless you can check its current official syntax and I have supplied my provider.
part 09
If the example doesn't work
For installation errors, compare your Python or Node version with the repo's stated requirements. For an API error, record the status code and model name without sharing the key. For bad answers, inspect the input and label rules before adding more code.
Your first action is to open the classification notebook and generate the synthetic starter pack. Once you can run and explain that small example, use the other repos to improve the part that needs attention.