Versions et aliases"→"Versions et alias
Les prompts et les skills évoluent au fil du temps : un expert métier réécrit des instructions ; un skill reçoit un nouveau template. Les versions conservent chaque modification, et les alias permettent à votre code de suivre la version que vous choisissez. Vous pouvez ainsi tester une modification en staging, puis la faire passer en production sans déployer de nouvelle version de code.
Versions
Chaque modification du contenu d'un prompt ou d'un skill crée une nouvelle version numérotée : la version 1 à la création, puis 2, 3 et ainsi de suite. Une version ne change plus après sa création. Chaque version peut comporter des notes qui expliquent ce qui a changé.
- Dans Studio, l'enregistrement d'une modification du contenu crée une version. Consultez Créer un prompt dans Studio et Créer un skill dans Studio.
- Via l'API,
create_versions'en charge. Si le contenu est identique à celui d'une version existante, aucune nouvelle version n'est créée, et la réponse définitdeduplicatedàtrue.
Modifier le titre, la description ou les paramètres de partage ne crée pas de version.
version = client.beta.prompts.create_version(
prompt_id=prompt_id,
definition={"content": "Summarize in three bullet points: {{text}}"},
notes="Bullet points instead of a paragraph",
)
print(version.version)
for v in client.beta.prompts.list_versions(prompt_id=prompt_id).data:
print(v.version, v.notes, v.aliases)Alias
Un alias est un nom qui pointe vers une version donnée, comme staging ou production. Votre code récupère l'alias, pas un numéro de version. Pour modifier ce qu'utilise votre application, faites pointer l'alias vers une autre version : la récupération suivante renvoie cette version.
Un schéma courant :
- Faites pointer
stagingvers une nouvelle version et testez-la. - Une fois les tests réussis, faites pointer
productionvers la même version. - Pour revenir en arrière, refaites pointer
productionvers la version précédente.
Vous pouvez attribuer des alias lors de la création d'un prompt ou d'une version, ou plus tard sur une version existante. Définir les alias d'une version remplace la liste existante : passez une liste vide pour tous les supprimer.
client.beta.prompts.update_version_metadata(
prompt_id=prompt_id,
version=3,
aliases={"values": ["staging"]},
)Récupérer une version
Sans version ni alias, la récupération renvoie la version la plus récente. En production, récupérez via un alias ou une version fixe, pour que le comportement de votre application ne change que lorsque vous le décidez.
latest = client.beta.prompts.get(prompt_id=prompt_id)
pinned = client.beta.prompts.get(prompt_id=prompt_id, version=3)
production = client.beta.prompts.get(prompt_id=prompt_id, alias="production")Skills
Les skills fonctionnent de la même manière, avec client.beta.skills et skill_id. Une version de skill contient sa description, ses instructions et ses fichiers.
| Prompts | Skills | |
|---|---|---|
| Créer une version | POST /v2/prompts/{prompt_id}/versions | POST /v2/skills/{skill_id}/versions |
| Lister les versions | GET /v2/prompts/{prompt_id}/versions | GET /v2/skills/{skill_id}/versions |
| Récupérer par version ou par alias | GET /v2/prompts/{prompt_id}?version= ou ?alias= | GET /v2/skills/{skill_id}?version= ou ?alias= |
| Définir les alias et les notes | PATCH /v2/prompts/{prompt_id}/versions/{version} | PATCH /v2/skills/{skill_id}/versions/{version} |