Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Dispo sous Windows, Linux et macOS (Intel et Silicon), Reor est un outil de prise de notes markdown capable de s’auto-organiser. Cela signifie que l’outil utilise de l’IA localement pour vous aider à mettre de l’ordre dans vos idées.

C’est assez ouf puisque ça vous fera gagner un max de temps en reliant automatiquement vos idées, mais également en répondant à toutes vos questions en se basant sur vos notes. Reor offre également un moteur de recherche sémantique et le tout est stocké localement, ce qui évitera que vos données ne soient pompées.

Reor tire parti des géants tels que Llama.cpp, Transformers.js et LanceDB pour permettre à la fois aux modèles LLM et d’inférences de s’exécuter localement. Il est également possible de se connecter à des API compatibles OpenAI si vous le désirez.

Alors, comment fonctionne cette auto-organisation ?

En réalité, chaque note que vous écrivez est fragmentée et intégrée dans une base de données vectorielle interne. Les notes connexes sont automatiquement reliées par la similarité vectorielle. De plus, la base de Q&R alimentée par les LLM fonctionne sur un principe de RAG (Retrieval-Augmented Generation) sur le corpus de notes que vous lui avez donné. Exactement comme ce qu’on peut faire aujourd’hui avec des PDF et des outils comme PDFtoChat.

Pour commencer, rien de plus simple : il vous suffit de télécharger Reor et de l’installer comme n’importe quelle autre application. Notez que pour l’instant, l’application ne télécharge pas les modèles pour vous, vous devrez donc télécharger manuellement votre modèle de choix au format GGUF et l’importer dans l’outil. Cela peut être Mistral ou Llama 2 par exemple. Et comme ce sont des modèles open source et gratuits, vous n’aurez rien à payer.

L’importation de notes provenant d’autres applications est également possible, puisque Reor stocke ses données dans un seul répertoire, que vous choisissez lors de la première utilisation. Pour importer des notes/fichiers d’une autre application, il vous suffit donc de remplir ce répertoire manuellement avec des fichiers Markdown.

Voilà, c’est encore un peu brut comme outil, mais je parie que ça s’affinera avec le temps.

Merci à Lorenper


Si vous codez avec vos gros doigts boudinés toute la journée, notamment en Python, il se peut que comme 99% des codeurs, vous ne vous encombriez pas avec le formatage de votre code. Pas le temps, et l’IDE fait le minimum syndical donc ça vaaaaa.

C’est pourquoi aujourd’hui, je vous propose d’aller plus loin grâce à Black, un outil qui automatise la mise en forme de votre code Python pour qu’il soit cohérent, lisible et conforme aux normes établies notamment de PEP 8.

Pour l’installer :

pip install git+https://github.com/psf/black

Il nettoie vos merdes, mets des retours à la ligne dans vos tableaux, les fonctions, les définitions…etc., vous permet de gérer la longueur de vos lignes de code, enlève les retours à la ligne ou les points-virgules en trop, ou encore remplace les single quotes (‘) par des double quotes (« )… Et il y a encore plein d’autres petites améliorations dont vous pourrez consulter la liste ici.

black script.py

Un mode expérimental est également dispo, ce qui vous permettra de voir comment votre code sera formaté dans les prochaines versions.

black --preview script.py

Parmi les prochaines améliorations notables, on peut citer la gestion améliorée des chaînes multilignes dans les appels de fonction, où Black est désormais plus « intelligent » pour éviter d’introduire des sauts de ligne supplémentaires. En effet, avec cette nouvelle fonctionnalité, Black examine le contexte autour de la chaîne multiligne pour décider si elle doit être en ligne ou divisée en plusieurs lignes. Par exemple, lorsqu’une chaîne multiligne est passée à une fonction, Black ne divise la chaîne multiligne que si une ligne est trop longue ou si plusieurs arguments sont passés.

Il est également intéressant de noter les améliorations apportées à la gestion des parenthèses dans les dictionnaires. Désormais, pour dictionnaires avec de longues valeurs, elles sont enveloppées de parenthèses, et les parenthèses inutiles sont supprimées.

Black s’utilise donc en ligne de commande, peut aussi tourner dans un Docker et peut surtout être intégré dans vos process CI/CD pour « corriger » et formater automatiquement tout ce que vous récupérez dans les push sur le Git. Notez qu’une mesure de sécurité ralentit un peu le traitement, puisque Black vérifiera que le code reformaté produit toujours un AST (Abstract Syntax Tree) valide qui est effectivement équivalent à l’original. Si vous vous sentez en mode grosse confiance, vous pouvez utiliser le paramètre --fast pour aller encore plus vite.

Bref, c’est un excellent formateur de code qui s’intègre aussi bien dans Vim que dans Visual Studio Code ou utilisable en ligne de commande à l’ancienne comme on aime.

À découvrir ici.

Merci à Lorenper


Afin de rendre l’IA accessible à tous, y compris gratuitement puisque la plupart des modèles fonctionnent sur un système open source, une équipe de développeurs talentueux a créé Jan un outil pour les développeurs et les utilisateurs souhaitant profite d’une alternative à ChatGPT, totalement indépendante, fonctionnant hors ligne, open source et libre.

Il faut donc voir Jan comme un client de chat qui permet de télécharger des modèles comme Trinity, Mistral, Llama, OpenChat…etc. et de les faire tourner 100% hors ligne. Comme ça, pas de fuite de conversations privées ni de réutilisation de vos données pour entrainer de nouvelles IA. Et si comme moi, vous êtes accro à l’IA d’OpenAI, vous pourrez toujours y ajouter votre clé API et discuter avec ChatGPT (au tarif fixé par OpenAI évidemment).

Jan fonctionne sous Linux (Appimage et .deb dispo), sous Windows et macOS (Intel / Silicon) et propose une prise en charge des modèles open source tels que GGUF via llama.cpp, TensorRT via TensorRT-LLM ou des API externes. Jan utilise également le moteur d’inférence Nitro, des mêmes développeurs, qui se veut être rapide et léger.

Je teste ici le modèle Trinity 1.2 7B Q4 :

Et ici un modèle spécialisé en code Python nommé Wizard Coder Python 13B Q5.

Un truc cool avec Jan c’est que toutes les conversations sont conservées sur votre disque au format JSON, donc si le coeur vous en dit, vous pourrez ensuite les exploiter comme bon vous semble dans vos outils.

Jan propose également un serveur REST qui permet d’interroger via une API compatible OpenAI n’importe quel modèle que vous y feriez tourner. Ça permet de brancher vos outils ou vos scripts directement sur le LLM ouvert de votre choix.

Dans la lignée de Ollama ou LM Studio, Jan rempli ses promesses et vous permettra de vous éclater avec l’IA (abus de langage, je sais…) sans mettre en péril vos données personnelles.

Pour en savoir plus, rendez-vous sur le site de Jan ou sur leur page Github pour les sources et la doc.

Merci à Lorenper


Ça n’arrête plus ! Une faille de sécurité critique dans le protocole Bluetooth permettrait à un utilisateur tiers malveillant d’enregistrer l’audio capté par le microphone d’une enceinte Bluetooth se trouvant à proximité, même si celle-ci est déjà appairée et connectée à un autre appareil. Cette vulnérabilité peut malheureusement conduire à de l’espionnage de conversations privées que ce soit via une enceinte ou un casque. Tant que c’est bluetooth et qu’il y a un micro, ça fonctionne !

Et s’il n’y a pas de micro, cette faille permettrait également jouer ses propres fichiers audio sur vos enceintes sans votre consentement !

Ce problème de sécurité a été découvert et présenté la semaine dernière par Tarlogic lors de la conférence RootedCon 2024 avec en cadeau bonux un PoC (proof of concept) baptisé BlueSpy permettant d’exploiter la faille.

Ce script n’utilise pas de vulnérabilité non corrigée, non, non. Il exploite tout simplement la méthode d’appairage Bluetooth non sécurisée baptisée « Just Work« . C’est d’autant plus effrayant quand on considère le nombre d’enceintes ou de casques vulnérables qui traînent dans les zones résidentielles, les espaces de travail, les salles de réunion, les lieux publics, etc.

Pour sa démonstration, Tarlogic a utilisé un Raspberry Pi 4 sous Kali Linux, contrôlé par un smartphone. Notez que pour étendre la zone de couverture, il est également possible d’utiliser un adaptateur Bluetooth externe avec une antenne externe.

Mais alors, comment se protéger ? La clé de votre tranquilité et de votre sécurité réside dans la visibilité de votre appareil Bluetooth. Si votre enceinte ou casque est visible par d’autres appareils alors qu’il est déjà connecté à votre smartphone, il est vulnérable. Par contre, s’il n’est plus visible une fois appairé, vous êtes à l’abri.

Pour vérifier facilement si vos appareils audio Bluetooth sont vulnérables, vous pouvez utiliser l’application gratuite nRF Connect for Mobile sur un smartphone Android non rooté. Lancez un scan et si l’application détecte et permet de se connecter à votre appareil audio Bluetooth LE, c’est qu’il est probablement vulnérable. À l’inverse, si votre appareil n’apparaît pas dans les résultats du scan alors qu’il est allumé et connecté, vous pouvez souffler.

Malheureusement, si votre appareil autorise une telle connexion, il n’y a pas grand-chose à faire. Certains appareils émettent cependant une notification visuelle ou sonore lorsqu’un autre appareil se connecte, comme un bip, une vibration ou un changement de couleur des LED donc ouvrez l’œil et l’oreille ! Et surtout, éteignez vos appareils Bluetooth quand vous ne les utilisez pas.

Source


Imaginez que vous puissiez installer, exécuter et automatiser n’importe quelle application qui fait de la bonne grosse IA en un seul clic. Plus besoin d’ouvrir un terminal, de taper des commandes que j’aime tant comme git clone, conda install ou pip install. Fini la galère des environnements d’exécution puisque tout est automatisé, et aussi simple à utiliser qu’un navigateur web.

C’est exactement ce que propose Pinokio !

Grâce à Pinokio, n’importe quelle application en ligne de commande peut être portée pour s’exécuter directement dans le navigateur. Les scripts d’installation, les scripts Python, les commandes shell…etc, tout peut être automatisé notamment grâce à son propre langage de script JSON et une API JSON-RPC.

On y retrouve également un bonne grosse bibliothèques de scripts permettant d’installer outils d’IA comme SUPIR (pour faire de la restauration d’images), un chatbot Ollama ou encore des trucs autour de Stable Diffusion pour faire des images.

Pinokio supporte également les agents autonomes qui peuvent s’exécuter sans aucune intervention humaine. Imaginez par exemple un bot Discord qui s’auto-héberge, récupère automatiquement de nouvelles données, met à jour son modèle d’IA et répond aux utilisateurs, le tout sans supervision. Avec Pinokio, ce genre de truc est possible.

Ce que je veux que vous compreniez, c’est que Pinokio n’est pas juste un installeur d’outils IA. C’est vraiment un environnement complet pour coder vos propres scripts et automatiser l’IA sur votre macine. Je vous invite à creuser la documentation pour en savoir plus.

Pour vous montrer la partie émergé de l’iceberg de cet outil, je vous ai fait un modeste tutoriel vidéo, disponible sur mon Patreon. Si vous n’en faites pas encore partie, c’est le moment de me rejoindre sur https://patreon.com/korben. En plus d’accéder à des contenus en avant première, vous soutiendrez mon travail et m’aiderez à continuer de partager avec vous mes expérimentations et découvertes.