AI Helpers est une suite de 17 bibliothèques Python sous licence BSD-3-Clause, la même que scikit-learn, numpy ou scipy, faite pour simplifier le développement en intelligence artificielle : traitement audio et vidéo, transcription de parole en direct, acquisition de médias, capture, stockage sûr, cache, recherche vectorielle, choix d'un modèle local selon la machine. La suite est rangée en groupes, de sorte que vous n'installez que le coin dont vous avez besoin : Socle (OS Helper), Audio & voix (Audio, Vocal, Speaker, Discussion), Vidéo & capture (Video, Capture), Acquisition de médias (YouTube, Podcast), Stockage & transfert (Bucket, SFTP), Documents (md2star), Cache (Wallet) puis Divers (Standpoint, Best Engine AI, ANN Router, Elbow Helper).
Chaque brique expose les mêmes cinq surfaces : une API Python, deux lignes de commande (argparse puis click), un serveur HTTP FastAPI, un jeu d'outils MCP monté sur cette même application, enfin une compétence Claude Code / OpenCode installable. Là où cela se justifie, s'ajoute une interface web minimale sur /gui. La surface MCP n'est jamais une seconde implémentation : fastapi-mcp monte /mcp sur l'application FastAPI que la brique sert déjà, donc chaque outil est une route et les deux ne peuvent pas diverger. Là où une brique est destinée à tourner en service, la surface HTTP vient avec un Dockerfile accompagné d'un docker-compose.yml — 11 des 17 — portant le port, l'environnement, une sonde de santé, plus le compagnon dont chacune a réellement besoin : MinIO pour Bucket, un serveur SFTP jetable pour SFTP, Ollama pour Standpoint avec Best Engine AI, Qdrant avec pgvector pour ANN Router. La suite est locale par conception : vos fichiers, votre audio, votre caméra, votre micro, vos documents sont traités sur votre machine avec des outils libres, sans SaaS, sans télémétrie, sans compte. Les deux briques de transfert distant, Bucket avec SFTP, sont l'exception assumée ; leur métier est de déplacer des données vers un stockage ou des serveurs que vous choisissez.
N'installez que le groupe qu'il vous faut — chaque brique est son propre paquet, toutes sont sur PyPI, vous installez donc par son nom ; chacune tire os-helper d'elle-même :
# 🔊 Audio & voix
pip install audio-helper vocal-helper
# 🎬 Vidéo & capture
pip install video-helper capture-helper
# 🌐 Acquisition de médias
pip install youtube-helper podcast-helper
# 🗄️ Stockage & transfert
pip install bucket-helper sftp-helper
# 🧩 Divers (documents, cache, cartes de positionnement, choix
# de modèle local, routage vectoriel, détection de coude)
pip install md2star wallet-helper standpoint best-engine-ai-helper ann-router elbow-helper
# 🧱 Socle seul (utilitaires de base)
pip install os-helper
Il vous faut toujours ffmpeg dans le PATH pour les briques médias (audio, vidéo, youtube, podcast, capture, vocal) : brew install ffmpeg sur macOS 🍎.
🦀 Cinq des dix-sept ont aussi une réécriture Rust indépendante — un dépôt à part, à la surface plus petite, qui n'est pas un remplacement direct. Elles sont publiées sur crates.io plutôt que sur PyPI ; chacune est liée depuis sa brique ci-dessous :
# bibliothèques
cargo add audio-helper-rs capture-helper-rs podcast-helper-rs youtube-helper-rs
# binaires (md2docx, md2pptx) — sans Pandoc, sans Python
cargo install md2star-rs
Les outils avec lesquels vous bâtissez de l'intelligence artificielle devraient tourner sur votre machine, garder vos données sous votre contrôle, sans jamais vous faire louer l'accès à votre propre travail.
Pas de SaaS, pas de télémétrie, pas de compte, aucun enfermement dans un nuage ; chaque ligne est sous BSD-3-Clause, donc vous pouvez la lire, la dériver, lui faire confiance. Nous nous y tenons honnêtement, puis nous disons précisément où cela s'applique pleinement, où cela ne s'applique pas.
Comment nous l'avons appliquée, concrètement. Chaque brique livre les mêmes surfaces, pour que la pile entière vous appartienne : une API Python, deux lignes de commande, un serveur HTTP FastAPI, un jeu d'outils MCP pour les agents, une compétence d'agent, puis — là où relire la sortie dans un navigateur aide vraiment — une interface minimale sur /gui, servie par la même application FastAPI locale, sans étape de construction, sans cadriciel, sans appel externe. Chaque brique documente ses conditions de déclenchement exactes dans un TRIGGERS.md ; ce catalogue est contraint, pas décoratif : il est recopié dans le references/triggers.md de la compétence ; une barrière scripts/check_triggers.py fait échouer la suite de tests dès que la compétence cesse de nommer une capacité ou laisse tomber sa clause SKIP. Les deux briques de transfert distant portent l'exception ouvertement plutôt que de prétendre le contraire.
Les briques sont faites pour s'enchaîner. Ici la suite transforme une conférence YouTube en document Word partageable avec son PDF — acquisition par 🌐 youtube-helper, décodage par 🔊 audio-helper, parole vers texte par 🗣️ vocal-helper, mise en page par 📄 md2star :
import youtube_helper as yth # 🌐 acquisition
import audio_helper as ah # 🔊 décodage en PCM
import vocal_helper as voh # 🗣️ parole vers texte (Whisper)
URL = "https://www.youtube.com/watch?v=YE7VzlLtp-4"
# 1) Acquérir : récupérer l'audio de la conférence (16 kHz mono, idéal pour l'ASR).
yth.download_audio(URL, "talk.mp3", target_sample_rate=16000)
# 2) Transcrire : Whisper sur le PCM décodé (to_numpy=True → tableau float32).
pcm, sr = ah.load_audio("talk.mp3", target_sample_rate=16000, to_mono=True, to_numpy=True)
transcript = voh.transcribe_pcm(pcm, sr, language="en")
# 3) Passer la main à md2star : écrire un Markdown titré pour la mise en page.
with open("talk.md", "w", encoding="utf-8") as fh:
fh.write(f"# Transcription de la conférence\n\n_Source : {URL}_\n\n{transcript}\n")
# 4) Mettre en page la transcription en document Word puis en PDF (CLI md2star).
md2docx talk.md # → talk.docx
md2pdf talk.md # → talk.pdf
Parce que le rendu md → docx → pdf de md2star est fidèle puis réversible (voir l'identité d'aller-retour de md2star), les documents obtenus se relisent directement en Markdown sans perdre le texte de la transcription.
OS Helper est une bibliothèque Python qui fournit des fonctions utilitaires pour travailler avec différents systèmes d'exploitation — gestion de fichiers, empreintes, configuration, chronométrage : le socle commun sur lequel toutes les autres briques sont bâties.
🍏 GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Audio Helper est une bibliothèque Python qui fournit des fonctions utilitaires pour le traitement de fichiers audio : chargement, conversion de formats, séparation des sources, découpage puis concaténation.
🔈 GitHub · 📦 PyPI · 📃 Docs · 🦀 Aussi en Rust · 📦 crates.io · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Vocal Helper transforme de l'audio en énoncés diarisés puis transcrits, avec en option un résumé glissant de la conversation par un modèle de langue. Il tourne comme une chaîne producteur/consommateur asynchrone en deux modes — flux en ligne ou lot hors ligne — enchaînant détection d'activité vocale, diarisation des locuteurs, parole vers texte, résumé facultatif. Bâti sur Silero VAD, whisper.cpp, les moteurs de diarisation pyannote ou NeMo, des modèles de langue servis par Ollama.
🗣️ GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Speaker Helper est l'inverse de Vocal Helper : du texte entre, de la parole sort, synthétisée dans votre propre processus plutôt que derrière un serveur. Dites une phrase, diffusez une réponse à mesure qu'elle s'écrit, narrez un document entier puis récupérez la piste minutée qui permet à une page de surligner au rythme de la voix. Kokoro par défaut, sans serveur à lancer, avec le clonage de voix par OpenVoice ou Chatterbox.
🔉 GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Vocal Helper entend, Speaker Helper parle, un modèle local répond — aucun des trois ne sait à qui est le tour. Discussion Helper est la boucle entre eux : écouter, répondre, parler, puis s'arrêter à l'instant où l'utilisateur coupe. Un seul détenteur de parole à la fois, une interruption sous 150 ms qui jette l'audio en file au lieu de l'écouler, un relevé de latence par échange qui nomme l'étape à corriger. Tout tourne sur votre machine ; la boucle entière se répète sans micro, sans modèle, sans carte son.
💬 GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Video Helper est une bibliothèque Python qui fournit des fonctions utilitaires pour le traitement de fichiers vidéo : extraction d'images par plusieurs moteurs (VidGear, PyAV, tube ffmpeg), chargement, conversion, travail sur les formats de sous-titres.
📺 GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Capture Helper est la couche d'entrée en direct de la pile AI Helpers : énumération puis capture multiplateforme des caméras avec les microphones, rendant des images BGR (H, W, 3) et du PCM. Il livre une interface de configuration de scène multi-sources en direct sur /gui — choisir caméras puis micros, les prévisualiser en direct dans le navigateur, composer une scène, l'enregistrer ou la recharger en JSON. Les données de caméra comme de microphone ne quittent jamais votre machine.
🎥 GitHub · 📦 PyPI · 📃 Docs · 🦀 Aussi en Rust · 📦 crates.io · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
YouTube Helper est une bibliothèque Python qui fournit des fonctions utilitaires pour télécharger vidéos, audio puis vignettes depuis des plateformes comme YouTube, Vimeo, DailyMotion, SoundCloud ou Twitch, à l'aide de yt-dlp. Il gère aussi le post-traitement par ffmpeg, le parcours des catalogues de flux, la récupération de métadonnées d'engagement sans passer par une API.
📹 GitHub · 📦 PyPI · 📃 Docs · 🦀 Aussi en Rust · 📦 crates.io · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Podcast Helper est la consommation universelle de flux audio : une URL entre, du PCM sort. Il accepte les fichiers locaux, les URL audio directes, les flux RSS ou Atom (dont il prend l'épisode le plus récent), ainsi que toute source gérée par yt-dlp. Bâti sur youtube-helper avec ffmpeg, feedparser puis podcastparser, avec un rééchantillonnage conforme à Shannon.
🎙️ GitHub · 📦 PyPI · 📃 Docs · 🦀 Aussi en Rust · 📦 crates.io · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Bucket Helper couvre AWS S3 ainsi que tout stockage objet compatible S3 (MinIO, Backblaze B2, DigitalOcean Spaces, Cloudflare R2, Wasabi) via boto3. Même forme que SFTP Helper : chargeur d'identifiants, envoi, téléchargement, suppression, test d'existence, listage par préfixe, plus un gestionnaire de contexte remote_tempfile.
🪣 GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
SFTP Helper est une bibliothèque Python qui fournit des fonctions utilitaires pour dialoguer avec des serveurs SFTP, avec vérification stricte de la clé d'hôte puis un utilitaire remote_tempfile, une fois vos identifiants de clé SSH renseignés.
🛜 GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
md2star est un pont Markdown → DOCX / PPTX / PDF bâti sur Pandoc, avec des gabarits de marque soignés, le rendu des diagrammes Mermaid, la prise en charge de la bibliographie.
⭐ GitHub · 📦 PyPI · 📃 Docs · 🦀 Aussi en Rust · 📦 crates.io · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Wallet Helper garantit que vous ne lancez jamais deux fois le même appel coûteux — une requête d'API payante, un modèle lent, n'importe quelle fonction chère. Les résultats sont persistants puis adressés par leur contenu, servis depuis un dépôt local au lieu d'être recalculés, même après redémarrage du processus. Deux appels identiques en vol se réduisent à un seul, dans le processus ou entre processus et machines, par un bail SQLite clôturé ou un serveur HTTP de déduplication facultatif.
♻️ GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Standpoint transforme un tableau comparatif (les options en lignes, les critères en colonnes) en une carte de positionnement 2D étiquetée, une courte analyse écrite puis un YAML de coordonnées, en une seule commande. Une ACP ordinaire sous le capot ; Standpoint ajoute le travail à la main — il oriente la carte autour d'une option de référence, nomme les axes en mots simples, colore puis étiquette les points.
🗺️ GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Best Engine AI Helper choisit puis récupère le meilleur modèle de langue ou de vision local pour la machine où il tourne. Il détecte la mémoire disponible (mémoire unifiée Apple Silicon, VRAM NVIDIA, RAM système), consulte un catalogue de modèles embarqué, retient le mieux noté qui tient dans une marge de sécurité, le télécharge par Ollama, puis écrit un fichier d'environnement que les projets en aval peuvent charger.
🧠 GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
ANN Router est le frère « recherche vectorielle » de Best Engine AI Helper : mesurer les critères → choisir le moteur → rendre une justification discutable, appliqué à la recherche du plus proche voisin approché. Il choisit, justifie, puis sait instancier le bon moteur parmi exact, turbovec, HNSW, FAISS, Annoy, Qdrant ou pgvector — une pièce indispensable pour le RAG.
🧭 GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Elbow Helper répond à une question plus dure que « où pourrait se trouver un genou ou un coude ? » — un algorithme à qui l'on demande cela rendra toujours quelque chose, même sur du bruit. Plutôt : un genou candidat est-il marqué, unique, persistant, reproductible, improbable sous un modèle sans genou ? Sinon, il s'abstient. Un localisateur écrit de zéro, en NumPy seul ; robust_knees couvre le cas à plusieurs genoux.
📐 GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
GitHub (la suite) · PyPI · 📃 Documentation · 📡 Flux des publications (Atom) · llms.txt · sitemap.xml
Licence BSD-3-Clause — Warith Harchaoui, Mohamed Chelali & Bachir Zerroug.
Contact : warithmetics@deraison.ai