L'IA sans le Cloud, directement dans votre poche.
Tutoriel : Intégrer une IA Locale (Ollama) dans votre App Flutter
Un guide pas à pas pour créer des applications mobiles intelligentes, 100% offline et respectueuses de la vie privée en combinant Flutter et Ollama.

Depuis l'explosion des intelligences artificielles génératives, une quasi-totalité des applications que nous utilisons suit le même schéma : notre appareil envoie une requête via Internet à un serveur distant surpuissant (appartenant à OpenAI, Google, Anthropic...), qui la traite et nous renvoie une réponse. Ce modèle, bien que très performant, présente trois inconvénients majeurs : une dépendance à la connexion internet, des coûts d'API qui peuvent vite grimper, et surtout, des préoccupations légitimes sur la confidentialité des données envoyées.
Et si on pouvait changer la donne ? Si on pouvait faire tourner ces puissants modèles de langage directement sur nos machines, créant ainsi des applications intelligentes capables de fonctionner en mode hors-ligne, tout en garantissant que nos données ne quittent jamais notre appareil ?
C'est précisément ce que je vous propose de découvrir dans ce tutoriel. Nous allons construire ensemble une application de chat simple avec Flutter, le framework de Google, qui dialoguera avec une intelligence artificielle tournant 100% localement sur votre ordinateur grâce à l'outil révolutionnaire Ollama. Préparez-vous à entrer dans une nouvelle ère du développement d'applications : celle de l'IA embarquée, privée et souveraine.
Les Prérequis : Votre Environnement de Travail
Avant de commencer à coder, assurons-nous que votre environnement est prêt. Voici les outils dont nous aurons besoin :
Le SDK Flutter : Si vous ne l'avez pas, suivez les instructions d'installation officielles sur le site de Flutter.
Un éditeur de code : Visual Studio Code avec l'extension Dart et Flutter, ou Android Studio / Xcode sont d'excellents choix.
Ollama : L'outil magique qui va nous permettre de faire tourner des modèles d'IA localement. Nous verrons l'installation juste après.
Un appareil mobile (ou un émulateur) : Pour tester notre application Flutter.
Étape 1 : Installer et Lancer votre Serveur d'IA Local avec Ollama
Ollama est un outil open-source qui simplifie radicalement le déploiement et l'utilisation de grands modèles de langage (LLMs) sur votre machine personnelle.
Installation d'Ollama
L'installation est d'une simplicité enfantine. Rendez-vous sur le site officiel d'Ollama et téléchargez la version correspondant à votre système d'exploitation (macOS, Windows ou Linux). Suivez les instructions d'installation.
Télécharger votre premier modèle d'IA
Une fois Ollama installé, ouvrez votre terminal (ou PowerShell sur Windows). Pour ce tutoriel, nous allons utiliser Llama 3, le puissant modèle open-source de Meta. Pour le télécharger, tapez simplement la commande suivante :
ollama run llama3
La première fois que vous lancez cette commande, Ollama va télécharger les plusieurs gigaoctets du modèle. Soyez patient. Une fois le téléchargement terminé, vous vous retrouverez directement dans une interface de chat en ligne de commande. Félicitations, vous dialoguez avec une IA qui tourne entièrement sur votre machine !
Le point crucial : Exposer Ollama sur votre réseau local
Par défaut, Ollama n'écoute que les requêtes venant de votre ordinateur (localhost). Or, votre téléphone (même en Wi-Fi) est un appareil différent sur le réseau. Il ne pourra donc pas communiquer avec Ollama. Nous devons dire à Ollama d'accepter les connexions de tout le réseau local.
Trouvez l'adresse IP locale de votre ordinateur.
Sur macOS : Allez dans Préférences Système > Réseau et notez votre "Adresse IP".
Sur Windows : Ouvrez l'invite de commandes (cmd) et tapez ipconfig. Notez l'adresse "IPv4".
Elle ressemblera à 192.168.1.XX.
Configurez la variable d'environnement OLLAMA_HOST.
Sur macOS/Linux (dans votre terminal) :
export OLLAMA_HOST=0.0.0.0
Sur Windows (dans PowerShell) :
$env:OLLAMA_HOST="0.0.0.0"
Relancez Ollama. Fermez le processus Ollama s'il est en cours et relancez-le. Il écoutera désormais sur toutes les interfaces réseau. Votre téléphone pourra maintenant lui parler via l'adresse http://192.168.1.XX:11434.
Étape 2 : Créer et Configurer le Projet Flutter
Maintenant que notre serveur d'IA local est prêt, passons à la création de notre application mobile.
Initialisation du Projet
Ouvrez votre terminal dans votre dossier de travail et créez un nouveau projet Flutter :
flutter create flutter_ollama_chat
Ajouter les Dépendances
Pour communiquer avec l'API d'Ollama, nous aurons besoin du package http. Ouvrez le fichier pubspec.yaml et ajoutez la ligne suivante dans la section dependencies :
YAML
dependencies:
flutter:
sdk: flutter
http: ^1.2.1 # ou la dernière version
Enregistrez le fichier, et lancez flutter pub get dans le terminal pour installer le package.
Étape 3 : Coder l'Interface de Chat en Flutter
Ouvrez le fichier lib/main.dart. Nous allons remplacer le code de base par une interface de chat simple. Je ne vais pas mettre l'intégralité du code de l'interface ici, mais voici la structure générale que vous pouvez implémenter :
Un Scaffold comme structure de base de la page.
Un Column qui contient deux éléments principaux :
Un Expanded avec un ListView.builder pour afficher la liste des messages.
Un Padding en bas contenant un Row avec un TextField pour saisir le message et un IconButton pour l'envoyer.
Pour gérer l'état, vous pouvez simplement créer une liste de messages et utiliser setState pour la mettre à jour. Chaque message peut être un simple objet Dart avec une propriété text et une propriété isUser (un booléen pour savoir si le message vient de l'utilisateur ou de l'IA).
Étape 4 : Connecter Flutter à l'API Ollama
C'est ici que la magie opère. Nous allons créer la fonction qui envoie le message de l'utilisateur à notre serveur Ollama local et qui récupère la réponse.
La Fonction d'Appel API
Ajoutez cette fonction asynchrone dans votre widget. N'oubliez pas de remplacer VOTRE_IP_LOCALE par l'adresse IP de votre ordinateur que vous avez notée plus tôt.
Dart
import 'package:http/http.dart' as http;
import 'dart:convert';
Future getOllamaResponse(String prompt) async {
// L'URL de votre serveur Ollama local
final url = Uri.parse('http://VOTRE_IP_LOCALE:11434/api/generate');
// Le corps de la requête au format JSON
final body = jsonEncode({
'model': 'llama3',
'prompt': prompt,
'stream': false, // Important: on attend la réponse complète
});
try {
final response = await http.post(
url,
headers: {'Content-Type': 'application/json'},
body: body,
);
if (response.statusCode == 200) {
final responseBody = jsonDecode(response.body);
return responseBody['response']; // On extrait le texte de la réponse
} else {
// Gérer l'erreur
return 'Erreur: ${response.statusCode}';
}
} catch (e) {
// Gérer l'exception (ex: réseau non accessible)
return 'Erreur de connexion: $e';
}
}
Dans le onPressed de votre IconButton, vous appellerez cette fonction avec le texte du TextField, puis vous ajouterez la réponse de l'IA à votre liste de messages en utilisant setState.
Note importante : Dans ce tutoriel, nous avons utilisé stream: false pour plus de simplicité. Cela signifie que l'application attend que l'IA ait généré l'intégralité de sa réponse avant de l'afficher. Pour une véritable application de chat, il est préférable d'utiliser stream: true et de gérer le flux de données pour afficher la réponse mot par mot, créant un effet "machine à écrire" beaucoup plus réactif.
Conclusion : Les Portes de l'IA Embarquée sont Ouvertes
Et voilà ! Vous avez maintenant une application Flutter fonctionnelle qui dialogue avec une intelligence artificielle puissante, tournant à 100% sur votre machine locale. Vous avez créé une application intelligente, rapide, qui fonctionne sans internet et qui respecte totalement la vie privée.
Ce que nous avons construit n'est que la pointe de l'iceberg. À partir de cette base, les possibilités sont infinies :
Implémenter le streaming pour une expérience de chat en temps réel.
Intégrer des modèles plus spécialisés (génération de code, traduction...).
Construire un système de RAG (Recherche Augmentée par Génération) en connectant l'application à une base de données vectorielle locale pour que l'IA puisse répondre à des questions sur vos propres documents.
Créer une application de bureau avec Flutter, qui embarque directement le serveur Ollama pour une solution tout-en-un et facilement distribuable.
Ce tutoriel démontre que l'ère de l'IA locale et embarquée n'est plus de la science-fiction. Grâce à des outils comme Flutter et Ollama, les développeurs ont désormais le pouvoir de créer une nouvelle génération d'applications intelligentes, plus rapides, plus résilientes et plus respectueuses de nos données.
Découvrez les derniers articles du Blog
Veille, astuces et réflexions sur le web, la tech et la cybersécurité.
Plongez dans mes dernières publications, couvrant les actualités et tendances tech, le développement web et mobile, l'automatisation et l'IA, mais aussi des anecdotes et des conseils en cybersécurité. Il y en a pour tous les goûts pour rester à la pointe de l'innovation et optimiser ta présence en ligne
Un projet web en tête ? Discutons-en.
Que ce soit pour une idée, un devis ou une simple question, le premier échange est toujours constructif.

Un projet web est un investissement stratégique qui doit servir vos objectifs. Sa réussite repose sur une vision claire et une exécution précise, loin des solutions génériques et impersonnelles.
C'est pourquoi ma méthode de travail place la phase de découverte au cœur de tout le processus. Avant d'aborder la technique, je prends le temps nécessaire pour comprendre votre métier, vos ambitions et les défis qui vous sont propres. Cet échange fondamental nous permet de définir ensemble un cahier des charges précis et de valider les orientations les plus pertinentes pour votre activité.
L'objectif est simple : concevoir une solution sur-mesure, performante, et qui parle avec justesse à vos clients.
Contactez-moi pour discuter de votre projet. Vous découvrirez une approche transparente, centrée sur vos objectifs et rigoureuse dans la recherche du meilleur retour sur investissement.