This repository contains the material for a live workshop on building AI applications with TypeScript. The workshop covers various aspects of AI development, from basic text generation to advanced patterns like memory systems, multi-agent workflows, and human-in-the-loop interactions.
By the end of this workshop, you'll be able to:
- Build AI applications with TypeScript
- Deeply understand the AI SDK v5
- Work with different AI providers and models
- Create memory systems for AI applications
- Build multi-agent systems
- Implement human-in-the-loop workflows
- Evaluate and test AI systems
- Monitor and debug AI applications
- Node.js (version 22 or higher)
- pnpm (optional, you can use
npm,yarnorbuninstead) - A free (or paid) Gemini API Key, or an API key from your AI provider of choice
- A free Tavily API key (optional, for a couple of exercises)
- A Docker Desktop installation (optional, only for ONE exercise)
- A free Langfuse account (optional, only for ONE exercise)
- Clone this repository:
git clone https://github.com/ai-hero-dev/poland-ai-ts-workshop.git
cd poland-ai-ts-workshop- Install dependencies:
pnpm install- Copy the
.env.examplefile to.env:
cp .env.example .env- Sign up to the required services and edit the
.envfile with your API keys.
Start by running pnpm dev:
pnpm devThis will allow you to choose between the different exercises.
You can also run pnpm exercise <exercise-number> to run a specific exercise.
Exercises are organized in the exercises/ directory with the following structure:
exercises/
├── 01-basics/
│ ├── 01.1-choosing-a-model/
│ │ ├── problem/
│ │ │ ├── readme.md
│ │ │ └── main.ts
│ │ └── solution/
│ │ └── main.ts
│ └── 01.2-stream-text-to-terminal/
│ ├── problem/
│ └── solution/
├── 02-naive-agents/
├── 03-persistence/
└── ...
Each exercise contains different types of folders that serve specific purposes:
- Contains the exercise you need to complete
- Includes a
readme.mdfile with detailed instructions- Each
readme.mdcontains a long introductory section, and a "Steps to Complete" section for more detailed instructions
- Each
- Each code file has
TODOs in it that you need to fill in - This is where you'll spend most of your time running through the exercises
- Contains the completed, working version of the exercise
- Useful for reference when you're stuck or want to compare your approach
- Can be run to see the expected output
- Contains additional explanations and walkthroughs
- May include detailed breakdowns of concepts covered in the exercise
- Useful for deeper understanding of the topics
- Start with the problem: Navigate to the
problem/folder and read thereadme.md - Work through the exercise: Follow the instructions and implement the solution
- Test your solution: Run the exercise to see if it works as expected
- Compare with solution: If there's a solution, check the
solution/folder when you're done
If you encounter issues or have questions:
- Check the solution folder for the exercise you're working on
- Ensure your environment variables are properly configured
- Verify you're using the correct Node.js and pnpm versions
Happy coding! 🚀