veilletech.fr
23 août Feed du jour
#05 OUTILS Article

llm 0.33 : deux gabarits pour un appel

Un prompt qui ne connaît plus son modèle, c'est un prompt réutilisable.

llm 0.33 rend l'option --template répétable : un gabarit peut ne porter qu'une configuration de modèle, un autre qu'un prompt, et les deux se combinent à l'appel. La version change aussi de dépendance HTTP en suivant la bibliothèque OpenAI Python 3.x, ce qui mérite un test avant déploiement.

3 min de lecturevidéo 1:12
Partager
Sommaire6 sections
  1. Ce qui se passe
  2. Le changement qui compte : des gabarits composables
  3. Les clés d'embedding, par appel
  4. Le point de vigilance : la dépendance HTTP
  5. Comment s'y prendre
  6. À retenir

Ce qui se passe

llm, l'outil en ligne de commande de Simon Willison pour interroger des modèles, passe en 0.33. Trois changements méritent l'attention, dont un qui modifie une façon de travailler.

Le changement qui compte : des gabarits composables

Jusqu'ici, un gabarit (--template) était un bloc unique : il portait à la fois le prompt et la configuration — modèle, options, effort de raisonnement. Résultat prévisible : une bibliothèque de prompts finissait soudée à un modèle, et tester le même prompt ailleurs demandait de dupliquer le gabarit.

L'option -t/--template peut désormais être répétée, et les gabarits sont combinés dans l'ordre indiqué. La configuration et les options de l'un s'appliquent au prompt de l'autre :

Terminal
# un gabarit qui n'est qu'une configuration
llm -m gpt-5.6-luna -o reasoning_effort high --save lhigh

# un gabarit qui n'est qu'un prompt
llm "Generate an SVG of a pelican riding a bicycle" --save pelican

# on combine à l'appel
llm -t lhigh -t pelican

Le gain concret : une matrice au lieu d'une liste. Trois configurations et dix prompts donnent trente combinaisons sans dupliquer un seul fichier. Pour comparer un même prompt sur plusieurs modèles — l'exercice de base quand on choisit un modèle pour une tâche — c'est un changement de gabarit, plus une réécriture.

Les clés d'embedding, par appel

llm embed et llm embed-multi acceptent maintenant --key. Côté Python, EmbeddingModel.embed(), embed_multi(), Collection.embed() et Collection.embed_multi() acceptent un argument key=, qui transmet la clé résolue au plugin sans modifier l'état partagé du modèle.

La nuance a de l'importance dès qu'un même processus traite plusieurs comptes ou plusieurs clients : jusqu'ici, changer de clé revenait à muter un objet partagé, ce qui n'est pas ce qu'on veut dans un script qui boucle. Les plugins existants qui lisent self.key continuent de fonctionner via un repli de compatibilité — la migration n'est donc pas urgente. Les modèles d'embedding suivent désormais le même schéma de gestion des clés que les modèles de génération.

Le point de vigilance : la dépendance HTTP

La version passe à la bibliothèque OpenAI Python 3.x et remplace httpx par httpx2. Un correctif rapide (0.32.1) était sorti la veille pour parer au plus pressé ; la 0.33 est le traitement complet.

C'est le genre de changement invisible jusqu'au jour où il ne l'est pas : si llm est installé dans un environnement partagé avec d'autres outils Python, une contrainte de version sur httpx peut suffire à provoquer un conflit de résolution. Un environnement virtuel dédié, ou uv tool install, évitent la question.

Dernier ajout : les modèles compatibles Responses API dotés de raisonnement acceptent une option reasoning_summary avec les valeurs auto, concise et detailed, utilisable avec llm openai endpoint --responses. Utile surtout pour exercer les modèles tiers qui imitent cette API.

Comment s'y prendre

Source : Simon Willison — llm 0.33

Fiche de veille rédigée à partir de l'article original. Le contenu ci-dessus est une synthèse personnelle, pas une reproduction.