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 surfaces : une API Python, une ligne de commande en click (sauf os-helper, le socle, qui n'en livre aucune), 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 — 13 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 🍎.
🦀 Six 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 existent pour que la suite tourne là où Python n'accède pas, téléphones compris ; chacune emprunte le chemin rapide de sa plateforme : voir 🦀 Les portages Rust pour le pourquoi et pour l'accélération de chacune. Les six 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
cargo add vocal-helper-rs --features onnx
# binaires (md2star-rs, 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, une ligne de commande en click, 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 ; dans seize briques sur dix-sept, 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.
La même promesse, sur toutes les machines. Local-first veut dire que le travail se fait sur votre machine — et les machines de quelqu'un ne sont pas que des portables : c'est aussi un téléphone dans une poche, une tablette sur un plan de travail, un petit boîtier dans un studio. Une suite écrite uniquement en Python tient cette promesse sur les ordinateurs et la rompt en silence partout ailleurs. Combler cet écart, c'est exactement à quoi servent les caisses Rust. Ce n'est pas une expérience à côté : c'est la même promesse, portée aux appareils que les gens ont réellement en main.
Ce n'est pas un reproche fait à Python, mais une conséquence de sa façon de se distribuer. Cinq obstacles séparent une bibliothèque Python d'un appareil quelconque :
numpy, onnxruntime, torch — embarquent des extensions natives ; or une roue existe pour une combinaison de système, de bibliothèque C, d'architecture de processeur et d'ABI Python. La matrice se multiplie : pour le mobile et l'embarqué la plupart de ses cases sont tout simplement vides.torch à lui seul pèse des gigaoctets. Un paquet d'application a un budget ; ce budget n'est pas en gigaoctets.
Rust inverse les cinq points. La compilation croisée y est une opération ennuyeuse et de première classe (cargo build --target aarch64-apple-ios), les dépendances se résolvent à la compilation sur la machine du développeur ; le résultat est une bibliothèque statique ou un binaire unique qui tourne sans rien installer. Le même arbre de sources produit des artefacts pour macOS, Linux, Windows, iOS et Android sans que le code sache vers lequel il part.
« Multi-appareils » ne vaut quelque chose que si chaque caisse atteint le chemin rapide offert par sa plateforme. Voici donc d'où chacune tire réellement sa vitesse — y compris les quatre qui n'ont aucun calcul propre à accélérer, ce qui mérite d'être dit franchement plutôt qu'enjolivé.
| Caisse | D'où vient sa vitesse |
|---|---|
vocal-helper-rs |
Le vrai cas d'accélération. Diarisation et transcription font tourner des graphes ONNX, donc chaque session choisit un moteur d'exécution ONNX Runtime. Depuis la 0.2.0 ce choix est branché : d'abord celui de l'appelant, puis VOCAL_HELPER_PROVIDER, sinon une mesure sur l'appareil (une courte chauffe, puis 30 s d'audio synthétique par moteur), le verdict gardé sous l'empreinte du graphe. Une feature par moteur : cuda et tensorrt sur NVIDIA, coreml sur Apple, directml sur Windows, openvino sur Intel. Un moteur qui refuse de s'enregistrer est sauté avec un avertissement, jusqu'au CPU : l'ouverture n'échoue jamais faute d'accélérateur. Sur Ubuntu avec NVIDIA, il faut CUDA 13 et cuDNN 9. La CI compile cuda,tensorrt et prouve le repli, mais aucun GPU NVIDIA ne l'a encore fait tourner pour de vrai. |
capture-helper-rs |
La pile audio du système lui-même, via cpal : CoreAudio sur macOS, WASAPI sur Windows, ALSA / PulseAudio / JACK / PipeWire sur Linux. Pas de PortAudio, pas de ffmpeg, rien à installer en plus — le chemin du micro est le chemin natif sur chaque système. |
audio-helper-rspodcast-helper-rs |
Toutes deux s'appuient sur ffmpeg ; toutes deux ont mesuré avant de choisir un chemin rapide. audio-helper-rs choisit l'encodeur d'une sortie compressée sur la machine, par essai à la vraie fréquence d'échantillonnage et au vrai nombre de canaux ; un encodeur de plateforme doit faire le travail en moins des deux tiers du temps pour détrôner celui qu'elle préfère, ce qu'AudioToolbox n'a pas fait sur Apple Silicon. podcast-helper-rs a trouvé les décodeurs AudioToolbox plus lents que ceux de ffmpeg, donc le défaut reste, avec --decoder pour passer outre. Un ffmpeg compilé pour GPU n'y change rien : NVENC, NVDEC, VAAPI et Quick Sync traitent des images, pas du son. |
youtube-helper-rs |
Aucun calcul propre : elle pilote yt-dlp et attend le réseau. Le gain de Rust ici, c'est le binaire statique unique et l'interface typée, pas la vitesse : prétendre autre chose serait malhonnête. |
md2star-rs |
Markdown vers DOCX, PPTX et PDF, DOCX ou PPTX vers Markdown (twin), l'audit des présentations, avec les citations, les équations natives et les gabarits de md2star, le tout dans le processus : ni Pandoc, ni LibreOffice, ni LaTeX, ni sous-processus. La conversion n'est que du XML, de la mesure de texte et de la composition : aucun accélérateur ne s'y applique. Son histoire matérielle est l'absence de prérequis : la CI vérifie à chaque envoi que la bibliothèque compile pour iOS et Android, moteur PDF et Mermaid compris, et la ligne de commande tient en un binaire statique (6,4 Mo, 50 Mo avec le moteur PDF intégré). Restent à l'original Python : le PDF relu en Markdown, les styles CSL complets, l'interface graphique et le juge visuel. |
Et une mesure en guise d'avertissement, parce que le raisonnement évident sur les accélérateurs s'est révélé faux. ONNX Runtime n'a pas de moteur Metal : sur Apple Silicon l'accélération passe donc par CoreML ; le mettre en tête semblait aller de soi. Mesuré sur le graphe de diarisation, CoreML donne un facteur temps réel de 1,257, plus lent que le direct et donc inutilisable, contre 0,528 pour le CPU seul : il ne prend que 1193 des 2827 nœuds du graphe et les découpe en 316 partitions, si bien que chaque pas de flux paie autant de traversées entre deux moteurs. Le second réglage « évident » était fautif aussi : forcer huit fils sur une machine à huit cœurs performants mesure 0,953 contre 0,528 en laissant le runtime choisir. La leçon n'est pas que CoreML est mauvais — il sera excellent sur un autre graphe — mais qu'un ordre codé en dur est faux quelque part, c'est pourquoi la brique Python mesure au lieu de supposer. La caisse fait de même depuis la 0.2.0 : sur un M2 Max, sa première ouverture du graphe de diarisation a de nouveau placé le CPU devant (0,74 contre 1,12 pour CoreML), alors que sur le graphe de transcription les deux sont arrivés à égalité (0,084 contre 0,086).
Un peu, parfois. Mais du Python bien accéléré n'a pas besoin d'être sauvé, puisqu'il délègue déjà le gros œuvre à du code natif : numpy calcule en C, onnxruntime en C++, ffmpeg dans son propre binaire. Une caisse Rust appelle exactement les mêmes bibliothèques, donc là où le travail est déjà natif, réécrire ne change rien. C'est mesuré et non supposé : en profilant le chemin de diarisation de vocal-helper, 99,8 % du temps est passé dans ONNX Runtime — le front-end de caractéristiques compte pour 0,1 % et la comptabilité autour du modèle pour 0,1 % de plus. Le plafond d'un gain de vitesse pour un portage Rust y est donc de 0,2 % : un facteur temps réel de 0,754 au lieu de 0,755. Python perd bien sur les boucles serrées, élément par élément, qui résistent à la vectorisation — mais c'est le plus souvent une raison de remanier la boucle plutôt que de changer de langage. À qui promet une réécriture Rust comme remède de performance, il faut d'abord demander son profil.
Chaque caisse est une réécriture indépendante de la promesse centrale de sa brique — pas une liaison, pas une traduction ligne à ligne — et chacune est vérifiée contre le Python qu'elle reflète au lieu d'être supposée d'accord avec lui. vocal-helper-rs, par exemple, compare son front-end et sa comptabilité de flux à des références produites par le Python, parce que les deux alimentent le même graphe ONNX : un désaccord silencieux là produirait d'autres réponses sur mobile, sans qu'aucun test unitaire de chaque côté ne le voie. Les six caisses sont aujourd'hui sur crates.io. vocal-helper-rs est arrivée la dernière, elle en est à la 0.2.0 : elle fait tourner diarisation puis transcription de bout en bout par ONNX Runtime. Les graphes pèsent des centaines de mégaoctets, alors ils restent hors de la caisse : on lui passe leur chemin. Fidèle à la section précédente, elle ne se défend pas par la vitesse : sur le CPU d'un M2 Max, sa transcription tourne à un facteur temps réel de 0,05, contre 0,022 à 0,028 pour le jumeau Python.
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 le socle sur lequel toutes les autres briques sont bâties : détection du système et du matériel, exécution de processus, chemins et fichiers, fichiers temporaires, empreintes, chargement de configuration, chronomètres mur, CPU et GPU, catalogues gettext. Il ne livre aucune ligne de commande. Une page facultative, Tree Radar (os-helper-gui), dessine l'occupation du disque en carte proportionnelle, colorée par âge, par doublons ou par type de fichier ; depuis la 4.1.1 elle embarque sa propre copie de D3 et marche hors ligne.
⭐ sur GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Audio Helper décode par ffmpeg et couvre les corvées audio courantes : chargement avec rééchantillonnage et passage en mono, conversion de formats, découpage et concaténation, silence et ambiance de pièce, ressemblance par MFCC, caractéristiques Mel et MFCC, plus la séparation des sources par Demucs en option. Un canevas de recettes sur /gui les enchaîne dans le navigateur.
⭐ sur 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 produit par un modèle local. Il tourne comme une chaîne producteur/consommateur asynchrone, en direct ou sur un enregistrement entier. Depuis la 5.0.0, les défauts sont Nemotron 3 pour la diarisation et Nemotron 3.5 pour la transcription quand la langue est à découvrir (whisper.cpp quand on la donne), tous deux en ONNX sans torch. Le graphe de diarisation se télécharge une fois depuis deraison.ai ; la diarisation en direct répond avec 1,04 s de latence au lieu de 6,4 s. pyannote, NeMo et sherpa-onnx restent disponibles sur demande.
⭐ sur GitHub · 📦 PyPI · 📃 Docs · 🦀 Aussi en Rust · 📦 crates.io · 🤖 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. Sept moteurs (Kokoro, OpenVoice, Chatterbox, Kyutai, audio8, qwen3tts, ElevenLabs) passent par un routeur qui choisit sur preuves mesurées : Kokoro en flux, Chatterbox hors ligne. OpenVoice, Chatterbox, audio8 et qwen3tts clonent une voix à partir d'un court extrait ; ElevenLabs est le seul moteur payant dans le nuage, employé seulement si on le nomme.
⭐ sur 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. Elle écoute par Vocal Helper 5 : whisper.cpp quand la langue est nommée, Nemotron 3.5 sinon. Tout tourne sur votre machine ; la boucle entière se répète sans micro, sans modèle, sans carte son.
⭐ sur GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Video Helper habille ffmpeg pour le travail vidéo : validation, conversion et découpe dans le temps, extraction d'images par plusieurs moteurs (VidGear, PyAV, tube ffmpeg), flux optique, compression, concaténation, incrustation, sous-titres gravés, conversion SRT/VTT, enfin l'appariement des visages à l'écran avec les locuteurs (YuNet, SFace, Light-ASD).
⭐ sur 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.
⭐ sur GitHub · 📦 PyPI · 📃 Docs · 🦀 Aussi en Rust · 📦 crates.io · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
YouTube Helper télécharge vidéos, audio et vignettes par yt-dlp, depuis YouTube, Vimeo, DailyMotion, Twitch et les nombreux autres sites que connaît yt-dlp, avec post-traitement par ffmpeg. Il parcourt les catalogues de flux, résout les URL directes, récupère métadonnées d'engagement et commentaires sans passer par l'API d'une plateforme. Un téléchargement raté est retenté par étapes, dont les cookies du navigateur puis Tor.
⭐ sur 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 filtre anti-repliement avant chaque sous-échantillonnage. Spotify et Apple Podcasts sont refusés, avec l'indication de passer plutôt par le flux RSS.
⭐ sur 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.
⭐ sur GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
SFTP Helper pilote le client sftp d'OpenSSH du système : envoi et téléchargement de fichiers ou de dossiers entiers (un dossier voyage en un seul flux tar.gz), reprise, listage, état, suppression, création de dossiers, plus un utilitaire remote_tempfile. La vérification de la clé d'hôte est toujours stricte ; l'authentification passe par votre clé SSH.
⭐ sur 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, les diagrammes Mermaid, les mathématiques LaTeX, les bibliographies BibTeX. twin relit un document fini en Markdown modifiable, audit cherche dans une présentation les chevauchements, les formes hors cadre et le texte trop petit, --smart-layout place les diapositives sur les dispositions propres d'un gabarit de designer, où --min-pt fixe une taille de texte plancher. Depuis la 3.13, le titre d'une image s'imprime comme crédit photo dans son cadre.
⭐ sur 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.
⭐ sur 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.
⭐ sur 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. Il prépare aussi les générations d'images, dimensionne puis diffuse par couches les modèles trop gros pour la mémoire, enfin sert un point d'accès compatible OpenAI sur /v1 où model="best" se résout à chaque requête.
⭐ sur 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.
⭐ sur 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.
⭐ sur GitHub · 📦 PyPI · 📃 Docs · 🤖 Compétence · 🎯 Déclencheurs · 🇬🇧 Read me
Oui. Chaque brique est sous licence BSD-3-Clause, celle de numpy et de scikit-learn : vous lisez le code, vous le forkez, vous l'embarquez dans un produit que vous vendez. Aucun compte à créer. Aucune période d'essai ne s'arrête non plus un vendredi soir.
Installez celle qui vous sert. Chaque brique est un paquet PyPI distinct : pip install youtube-helper installe youtube-helper, ses dépendances et os-helper, le socle commun à toutes les briques. La collection complète ne donne droit à aucun badge.
Neuf briques tournent entièrement chez vous : os, audio, video, capture, vocal, speaker, discussion, md2star et wallet. Quelques-unes téléchargent une fois un modèle ou un gabarit, puis travaillent hors ligne. youtube-helper et podcast-helper contactent les sites et les flux que vous désignez, rien d'autre. bucket-helper et sftp-helper envoient vos fichiers au serveur que vous choisissez : c'est leur métier. Vocal et Speaker connaissent aussi quelques moteurs hébergés payants ; ils n'en appellent un que si vous le nommez avec sa clé. Le routage automatique ne les choisit jamais.
Python 3.10 à 3.13. Les briques média (audio, video, capture, vocal, youtube, podcast) appellent ffmpeg, qui s'installe donc d'abord dans le PATH : brew install ffmpeg sur macOS. md2star pilote Pandoc ; sa réécriture Rust, md2star-rs, s'en passe.
Un ordinateur portable fait tourner les réglages par défaut. vocal-helper exécute ses modèles de parole en ONNX sans torch. Il chronomètre les accélérateurs de votre machine avant de leur faire confiance. Cette habitude nous a déjà évité une erreur : sur un M2 Max, CoreML traitait le graphe de diarisation plus lentement que le temps réel (facteur temps réel de 1,257), quand le simple processeur finissait à 0,528.
Oui. Chaque brique monte un jeu d'outils MCP sur son propre serveur FastAPI, à /mcp. Elle livre aussi un skill pour Claude Code ou OpenCode. Son TRIGGERS.md dit à l'agent quand appeler la brique et quand la laisser tranquille, ce qui vous épargne l'agent qui tente de transcrire un tableur.
Rarement. Nous l'avons mesuré avant que quiconque se fasse des idées. Dans la diarisation de vocal-helper, 99,8 % du temps passe dans ONNX Runtime, que Rust appelle exactement comme Python : réécrire les 0,2 % restants fait gagner 0,2 % au mieux. Les six crates servent aux téléphones, aux tablettes et aux installations en un seul fichier. vocal-helper-rs transcrit même plus lentement que son jumeau Python (facteur temps réel de 0,05 contre 0,022 à 0,028). Nous l'écrivons ici plutôt qu'en petits caractères.
Partez d'une tâche que vous avez déjà. Une conférence enregistrée qui doit devenir un document Word demande quatre briques : youtube-helper la récupère, audio-helper la décode, vocal-helper la transcrit, md2star met le texte en page. L'exemple composé montre toute la chaîne en une vingtaine de lignes.
Trois personnes : Warith Harchaoui, Mohamed Chelali et Bachir Zerroug, qui publient depuis avril 2024. Écrivez à warithmetics@deraison.ai pour un bogue, une idée ou un projet où brancher la suite. Un humain lit chaque message.
Mettez une étoile à la suite sur GitHub : un clic, aucune lettre d'information en retour. Le prochain développeur qui passe par là verra que le détour en valait la peine. Une brique vous a sauvé un après-midi ? Elle mérite aussi la sienne : l'étoile de sa section mène droit à son dépôt. Ces étoiles-là nous disent quelles briques soigner en priorité.
⭐ AI Helpers sur GitHub · 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