Function Calling : enseigner des outils à l'assistant

Cet article fait partie de la série Assistant vocal sur Raspberry Pi.

À l’article #5, on injectait la météo dans chaque conversation, même pour une question comme “quel est ton nom?”. C’est du gaspillage de tokens. Le function calling règle ça : le LLM décide lui-même quand appeler un outil, et uniquement quand c’est nécessaire.

Le code complet de cet article est disponible sur GitHub.

[Lire]

Météo en temps réel et swap Claude API

Cet article fait partie de la série Assistant vocal sur Raspberry Pi.

L’assistant répond bien, mais il ne sait pas quel temps il fait dehors. On branche Open-Meteo, une API météo gratuite et sans clé. Tant qu’à y être, on swap aussi Ollama pour Claude API : une seule ligne dans appsettings.json.

Le code complet de cet article est disponible sur GitHub.

[Lire]

Mémoire, détection de silence et systemd

Cet article fait partie de la série Assistant vocal sur Raspberry Pi.

L’assistant de l’article #3 fonctionne, mais chaque échange repart de zéro. On règle ça en trois temps : mémoire conversationnelle, détection automatique de silence, et démarrage au boot avec systemd.

Le code complet de cet article est disponible sur GitHub.

[Lire]

Intégration Ollama et contexte maison

Cet article fait partie de la série Assistant vocal sur Raspberry Pi.

La réponse hardcodée de l’article #2 avait un seul but : confirmer que le pipeline audio fonctionne. Maintenant, on remplace cette ligne par un vrai appel HTTP à Ollama sur le pi-cerveau. On ajoute aussi un system prompt pour donner une identité à l’assistant.

Le code complet de cet article est disponible sur GitHub.

[Lire]

Worker Service .NET 10 et pipeline audio

Cet article fait partie de la série Assistant vocal sur Raspberry Pi.

Les deux Pi sont configurés. Maintenant on code. L’objectif : valider le pipeline audio complet sur le pi-client, de la pression du bouton jusqu’à la réponse vocale, sans LLM. On hardcode une réponse pour l’instant. Le LLM arrive à l’article #3.

Le code complet de cet article est disponible sur GitHub.

[Lire]