I made a real BMO local AI agent with a Raspberry Pi and Ollama

En une phrase

Ce projet détaille la construction d'un agent IA local et incarné, inspiré par Beimo d'Adventure Time, intégrant un Raspberry Pi, des composants physiques, une interface utilisateur et des modèles d'IA open-source exécutés localement pour permettre des interactions vocales, textuelles et visuelles, transformant un simple chatbot en une machine pensante et agissante.

Points clés

  • Conception d'un agent IA incarné et local : L'objectif est de créer Beimo, un agent IA physique capable de prendre des décisions grâce à son IA embarquée, utilisant des composants et des modèles d'IA entièrement open-source et exécutés localement, sans nécessiter de connexion internet.
  • Architecture matérielle personnalisée : Le cerveau de Beimo est un Raspberry Pi 5 avec 16 Go de RAM et un SSD NVMe. L'interface comprend un écran tactile, une caméra, un microphone, des haut-parleurs et des boutons physiques personnalisés (D-pad, etc.), gérés par un microcontrôleur et un PCB conçu avec KiCad, le tout intégré dans un corps imprimé en 3D avec Blender.
  • Pile logicielle open-source pour l'IA : L'agent utilise une chaîne de traitement entièrement locale : Open Wake Word pour la détection du mot d'activation, Whisper d'OpenAI pour la transcription parole-texte, Ollama pour exécuter des LLM open-source (comme Gemma pour le texte et Moondream pour l'analyse d'images) et Piper pour la synthèse vocale des réponses.
  • Évolution vers un agent "pensant" : Pour dépasser le rôle de simple chatbot, le système permet au LLM (Gemma 3) d'agir comme un "agent" capable d'analyser les requêtes et de décider d'utiliser des "outils" (fonctions internes) avant de générer une réponse, lui permettant d'effectuer des actions et de prendre des décisions.
  • Optimisations et raffinements : Pour améliorer la vitesse et la réactivité, le projet a mis en œuvre un état de "préchauffage" pour charger les modèles LLM en mémoire au démarrage, a utilisé un SSD NVMe pour un accès plus rapide aux données, et a opté pour une combinaison de modèles plus petits et spécialisés (Gemma pour le texte, Moondream pour les images) pour les tâches multimodales.

Ressources

  • Raspberry Pi 5 — mini-ordinateur servant de cerveau pour l'IA embarquée
  • KiCad — logiciel open-source de conception de cartes de circuits imprimés (PCB)
  • Blender — logiciel de modélisation 3D utilisé pour concevoir le corps de Beimo
  • Open Wake Word — bibliothèque open-source pour la détection de mots d'activation vocaux
  • Whisper (OpenAI) — modèle open-source pour la transcription de la parole en texte
  • Ollama — framework pour exécuter des modèles de langage (LLM) en local
  • Gemma (Google) — famille de modèles de langage légers développés par Google
  • Moondream — modèle de vision multimodale (image-vers-texte) utilisé via Ollama
  • Piper — moteur de synthèse vocale (text-to-speech) local et open-source