What happens when two ML Engineers with a love for sci-fi movies team up? š¤
You get Ava, a Whatsapp agent that can engage with users in a realistic way, inspired by the great film Ex Machina. Ok, letās be real, you wonāt be building a fully sentient robot in this project, but you will enjoy some pretty interesting Whatsapp conversations. I can assure you that! š
Check the code here! š§āš»
This course is divided into six lessons:
šļø Lesson 1: Project overview
šøļø Lesson 2: Ava's brain is just a graph
š§ Lesson 3: Unlocking Ava's memories
š£ļø Lesson 4: Giving Ava a Voice
š Lesson 5: Ava learns to see
š± Lesson 6: Ava installs Whatsapp
Today, weāll start with the first lesson - a general introduction to the project and its core components.
Project Overview
Ava is a "Whatsapp Agentā, meaning it will interact with you through this app. But it wonāt just rely on āregularā text messages, it will also listen to your voice notes (yes, even if you are one of those people š)and react to your pictures.
And thatās not all ⦠Ava can also respond with its own voice notes and images of what itās up to - yes, Ava has a life beyond talking to you, donāt be such a narcissist! š
At this point, you might be wondering:
What kind of system have we implemented to handle multimodal inputs / outputs coherently?
The short answer: Avaās brain is just a graph ⦠a LangGraph šøļø (sorry, I couldnāt resist).
š Avaās Graph
Your brain is made up of neurons, right? Well, Avaās brain is made up of LangGraph nodes and edges - one for the processing images, another for listening to your voice, another for fetching relevant memories, and so on.
At its core, Ava is simply a graph with a state. This state maintains all the key details of the conversation, including shared information (text, audio or images), current activities, and contextual information.
This is exactly what weāll explore in Lesson 2, where youāll learn how LangGraph can be used to build agentic design architectures, such as the router.
š Avaās memory
An Agent without memory is like talking to the main character of āMementoā (and if you havenāt seen that film⦠seriously, what are you doing with your life?).
Ava has two types of memory:
š· Short term memory
The usual - it stores the sequence of messages to maintain conversation context. In our case, we save this sequence in SQLite (we are also storing a summary of the conversation, but thatās for future lessons š).
š· Long term memory
When you meet someone, you donāt remember everything they say; you retain only the key details, like their name, profession, or where theyāre from, right?. Thatās exactly what we wanted to replicate with Qdrant - extracting relevant information from the conversation and storing it as embeddings.
Donāt worry because weāll cover the memory modules in Lesson 3.
š Avaās senses
Real Whatsapp conversations arenāt limited to just text. Think about it - do you remember the last cringe GIF your mom sent you last week? Or that neverending voice note from your high school friend? Exactly. We need both images and audio.
To make this possible, weāve selected the following tools.
š· Text
Both JesĆŗs and I are Groq fans (if you chat with Ava, ask about its job, you might be surprised). Thatās why we are using Groq models for all text generation. Specifically, weāve chosen llama-3.3-70b-versatile as our core LLM.
š· Images
The image module handles two tasks: processing user images and generating new ones (take a look at the image below).
For image āunderstandingā, weāre using Groqās llama-3.2-90b-vision-preview.
For image generation, black-forest-labs/FLUX.1-schnell-Free using Together AI.
š· Audio
The audio module needs to take care of TTS (Text-To-Speech) and STT (Speech-To-Text).
For TTS, we are using Elevenlabs voices.
For STT, whisper-large-v3-turbo from Groq.
Weāll cover the audio module in Lesson 4 and the image module in Lesson 5!
And thatās all for today! As you can see, this is a very complete course, so we hope youāre excited to get started with it! Remember, Lesson 2 will be available next Wednesday, February 12th. Every lesson (including this one) comes with a complementary video on JesĆŗs Copadosā YouTube channel.
We strongly recommend exploring both resources (written lessons and video lessons) to maximize your learning experience! š
š± Happy Whatsapping! š±










OK, you whetted my appetite....but now I am disappointed. It is now Feb 13. Did I miss the next installment somewhere?
Good one and Funny Miguel š! Canāt wait to see whatās coming next.