Aller au contenu principal

Référence de l’API et du SDK Skills

info

Bêta

Cette fonctionnalité est en bêta. Les administrateurs de compte peuvent gérer l’accès à cette fonctionnalité depuis la page Aperçus de la console du compte. Consultez Gérer les aperçus au niveau du compte.

Utilisez ces exemples pour automatiser la gestion des compétences. L’API représente chaque compétence sous la forme d’une ressource Skill nommée skills/{catalog}.{schema}.{skill}. Pour créer et publier une compétence avec un agent, consultez Créer et partager des compétences. Pour les privilèges et la gouvernance, consultez Gérer les compétences. Les compétences ne disposent pas de ressources Terraform ni Declarative Automation Bundles.

Prérequis​

  • Configurez un schéma gouverné pour les compétences.

  • Disposez des autorisations requises pour votre opération.

  • Installez et authentifiez le client que vous prévoyez d’utiliser. L’API REST n’a aucune exigence de version ; chaque outil et SDK a une version minimale :

    • CLI de Databricks: v1.20.0 et versions ultérieures
    • SDK Python: databricks-sdk 0.142.0 et versions ultérieures
    • Go SDK: databricks-sdk-go v0.184.0 et versions ultérieures
    • Go Modular SDK: github.com/databricks/sdk-go/aigateway v0.1.0 et au-dessus
    • Java SDK: databricks-sdk-java 0.157.0 et versions ultérieures
    • SDK JavaScript: @databricks/sdk-aigateway 0.23.0 et versions ultérieures

    Les extraits de code du SDK supposent un client Workspace authentifié, w; les extraits de code du SDK modulaire supposent un client Unity Gateway authentifié, c en Go et client en JavaScript.

Opérations de l’API​

L’ API REST des compétences fournit les opérations suivantes. Chacun nécessite également USE CATALOG et USE SCHEMA sur l’élément parent. Suivez chaque Link pour connaître ses champs, ses autorisations et ses réponses.

Opérations

Cas d'usage

Autorisations requises

Créer

Créez une compétence et provisionnez son stockage de bundle.

CREATE VOLUME sur le schéma

Import

Upload SKILL.md ainsi que tous les fichiers associés via l’API Files.

WRITE VOLUME et READ VOLUME sur la compétence

Finaliser

Lisez et validez SKILL.md, puis définissez le nom et la description du bundle de la compétence.

READ VOLUME sur la compétence

Liste

Trouvez les compétences auxquelles vous pouvez accéder dans un schéma.

READ VOLUME, READ METADATA, ou MANAGE sur la compétence

Obtenir

Lisez les métadonnées et le etag actuel d’une compétence.

READ VOLUME, READ METADATA, ou MANAGE sur la compétence

Mettre à jour

Modifiez le commentaire de la compétence.

MANAGE sur la compétence

Supprimer

Supprimez une compétence et son bundle.

MANAGE sur la compétence

Opérations

Cas d'usage

Autorisations requises

Créer

Créez une compétence et provisionnez son stockage de bundle.

CREATE VOLUME sur le schéma

Import

Upload SKILL.md ainsi que tous les fichiers associés via l’API Files.

WRITE VOLUME et READ VOLUME sur la compétence

Finaliser

Lisez et validez SKILL.md, puis définissez le nom et la description du bundle de la compétence.

READ VOLUME sur la compétence

Liste

Trouvez les compétences auxquelles vous pouvez accéder dans un schéma.

READ VOLUME, READ METADATA, ou MANAGE sur la compétence

Obtenir

Lisez les métadonnées et le etag actuel d’une compétence.

READ VOLUME, READ METADATA, ou MANAGE sur la compétence

Mettre à jour

Modifiez le commentaire de la compétence.

MANAGE sur la compétence

Supprimer

Supprimez une compétence et son bundle.

MANAGE sur la compétence

Le propriétaire de la compétence détient tous ces éléments pour cette compétence. Consultez Accorder l’accès aux compétences.

Créer une compétence​

La création d’une compétence comporte trois étapes : créer la compétence, effectuer l’upload de son bundle, puis la finaliser. Jusqu’à ce que vous finalisiez une compétence, le nom et la description de son bundle sont vides.

Étape 1 : créer la compétence​

Créez la compétence dans un schéma. comment est le seul champ que vous pouvez définir. Databricks déduit name, bundle_name, et description.

Remplacez main.default.my_skill et data-team par vos propres valeurs.

Envoyez un POST à /api/2.1/unity-catalog/skills, en transmettant parent et skill_id comme parameters de query :

Bash
databricks api post \
"/api/2.1/unity-catalog/skills?parent=schemas/main.default&skill_id=my_skill" \
--json '{"comment": "Team-shared math helper skill"}'

Étape 2 : upload du bundle​

Upload SKILL.md, ainsi que tous les fichiers associés, vers le chemin de stockage de la compétence, /Skills/<catalog>/<schema>/<skill>/, via l’API Files. SKILL.md doit start par un frontmatter YAML qui définit name et description. Enregistrez cet exemple sous SKILL.md:

Markdown
---
name: my-skill
description: A team-shared skill that helps with basic math.
---

# My Skill

Step-by-step guidance the agent follows when this skill is loaded.

Envoyez un PUT à l’ API Files. Définissez DATABRICKS_HOST sur l’URL de votre workspace, par exemple https://my-workspace.cloud.databricks.com, et DATABRICKS_TOKEN sur un jeton. Cet exemple transmet le jeton à curl via l’entrée standard afin qu’il n’apparaisse pas dans la liste des processus :

Bash
curl --request PUT --config - --data-binary @SKILL.md \
--header "Content-Type: application/octet-stream" \
"${DATABRICKS_HOST}/api/2.0/fs/files/Skills/main/default/my_skill/SKILL.md?overwrite=true" \
<<< "header = \"Authorization: Bearer ${DATABRICKS_TOKEN}\""

Étape 3 : finaliser la compétence​

La finalisation lit et valide SKILL.md, puis définit bundle_name et description de la compétence à partir de son frontmatter. Si vous modifiez le bundle ultérieurement, finalisez-le à nouveau.

Bash
databricks api post "/api/2.1/unity-catalog/skills/main.default.my_skill/finalize" --json '{}'

Rechercher une compétence​

Répertoriez les compétences auxquelles vous pouvez accéder dans un schéma, puis récupérez les métadonnées d’une compétence à partir de son nom de ressource.

Bash
databricks api get "/api/2.1/unity-catalog/skills?parent=schemas/main.default"

databricks api get "/api/2.1/unity-catalog/skills/main.default.my_skill"

Lorsque la réponse de la liste inclut next_page_token, transmettez-le comme page_token dans la requête suivante. Continuez jusqu’à ce que next_page_token soit absent ou vide.

Le CLI et l’itérateur Python gèrent la pagination pour vous.

Accorder l’accès​

Ces exemples accordent READ VOLUME à la compétence, ce qui permet au principal de lire la compétence et d’effectuer le download de son bundle. Pour les autres privilèges liés aux compétences, consultez Accorder l’accès aux compétences.

Bash
databricks api patch \
"/api/2.1/unity-catalog/permissions/skill/main.default.my_skill" \
--json '{
"changes": [
{ "principal": "data-team", "add": ["READ_VOLUME"] }
]
}'

Mettre à jour une compétence​

Ces exemples mettent à jour le commentaire de la compétence, le seul champ que vous pouvez modifier. Le nom de la compétence ne peut pas être modifié. Pour modifier le contenu d’une compétence, upload le nouveau bundle et finalisez à nouveau la compétence.

Pour effectuer une mise à jour conditionnelle, commencez par récupérer la compétence et transmettez son etag avec la mise à jour. La mise à jour réussit uniquement si la compétence n’a pas changé depuis sa lecture. Encodez etag au format URL lorsque vous l’ajoutez à une chaîne de query REST.

Bash
databricks api patch \
"/api/2.1/unity-catalog/skills/main.default.my_skill?update_mask=comment" \
--json '{"comment": "Updated: team-shared math helper"}'

Supprimer une compétence​

La suppression d’une compétence supprime celle-ci ainsi que son bundle. Les agents ne peuvent plus la charger.

Vous pouvez également transmettre le etag actuel de la compétence afin que la suppression ne soit effectuée que s’il n’a pas changé depuis la dernière lecture. Encodez le etag au format URL dans les chaînes de query REST.

Bash
databricks api delete "/api/2.1/unity-catalog/skills/main.default.my_skill"

Ressources supplémentaires​