Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Important
Deze functie bevindt zich in de bètaversie. Accountbeheerders kunnen de toegang tot deze functie beheren via de pagina Previews van de accountconsole. Zie Previews op accountniveau beheren.
Gebruik deze voorbeelden om vaardigheidsbeheer te automatiseren. De API vertegenwoordigt elke vaardigheid als een Skill bron skills/{catalog}.{schema}.{skill}genaamd . Om een vaardigheid te schrijven en te publiceren met een agent, zie Create and share skills. Voor privileges en bestuur, zie Bestuursvaardigheden. Skills hebben geen Terraform- of Declarative Automation Bundles-bronnen.
Voorwaarden
Stel een beheerd schema op voor vaardigheden.
Installeer en authenticeer de client die je wilt gebruiken. De REST API heeft geen versievereiste; elke tool en SDK heeft een minimale versie:
- Databricks CLI: v1.20.0 en hoger
-
Python SDK:
databricks-sdk0.142.0 en hoger -
Ga SDK:
databricks-sdk-gov0.184.0 en hoger -
Kies voor Modular SDK:
github.com/databricks/sdk-go/aigatewayv0.1.0 en hoger -
Java SDK:
databricks-sdk-java0.157.0 en hoger -
JavaScript SDK:
@databricks/sdk-aigateway0.23.0 en hoger
SDK-fragmenten gaan uit van een geauthenticeerde workspace-client,
w; Modulaire SDK-fragmenten gaan uit van een geauthenticeerde Unity Gateway-client,czowel in Go alsclientin JavaScript.
API-bewerkingen
De Skills REST API biedt deze bewerkingen. Elk vereist USE CATALOG ook en USE SCHEMA op de ouder. Volg elke link voor de velden, permissies en reacties.
| Operation | Gebruiksituatie | Vereiste toestemmingen |
|---|---|---|
| Creëren | Maak een vaardigheid aan en stel de bundelopslag ervan in. |
CREATE VOLUME in het schema |
| Upload | Upload SKILL.md en eventuele ondersteunende bestanden via de Files API. |
WRITE VOLUME en READ VOLUME over de vaardigheid |
| Voltooien | Lees en valideer SKILL.md, en stel dan de bundelnaam en beschrijving van de vaardigheid in. |
READ VOLUME Over de vaardigheid |
| Lijst | Zoek vaardigheden die je kunt gebruiken in een schema. |
READ VOLUME, READ METADATA, of MANAGE op de vaardigheid |
| Downloaden | Lees de metadata van een vaardigheid en actuele etag. |
READ VOLUME, READ METADATA, of MANAGE op de vaardigheid |
| Update | Verander de opmerking van de vaardigheid. |
MANAGE Over de vaardigheid |
| Delete | Verwijder een vaardigheid en het bundel ervan. |
MANAGE Over de vaardigheid |
De eigenaar van de vaardigheid heeft al deze op de vaardigheid. Zie Toegang tot vaardigheden toekennen.
Een vaardigheid maken
Het creëren van een vaardigheid bestaat uit drie stappen: maak de vaardigheid aan, upload de bundel ervan, en maak deze dan af. Totdat je een vaardigheid definitief hebt afgerond, zijn de bundelnaam en beschrijving leeg.
Stap 1: Creëer de vaardigheid
Creëer de vaardigheid in een schema.
comment is het enige veld dat je kunt instellen. Azure Databricks leidt name, bundle_name, en descriptionaf.
Vervang main.default.my_skill en data-team door uw eigen waarden.
REST API
Stuur een POST naar /api/2.1/unity-catalog/skills, waarbij en skill_id als queryparameters worden doorgegevenparent:
databricks api post \
"/api/2.1/unity-catalog/skills?parent=schemas/main.default&skill_id=my_skill" \
--json '{"comment": "Team-shared math helper skill"}'
CLI
Geef het ouderschema en de vaardigheidsnaam door, en geef de opmerking met --json:
databricks ai-gateway create-skill schemas/main.default my_skill \
--json '{"comment": "Team-shared math helper skill"}'
Python SDK
Maak en beheer een vaardigheid met de Databricks SDK voor Python:
from databricks.sdk import WorkspaceClient
from databricks.sdk.service import catalog as c
w = WorkspaceClient()
skill = w.ai_gateway.create_skill(
parent="schemas/main.default",
skill_id="my_skill",
skill=c.Skill(comment="Team-shared math helper skill"),
)
Go Softwareontwikkelingskit
Maak en beheer een vaardigheid met de Databricks SDK voor Go:
skill, err := w.AiGateway.CreateSkill(ctx, catalog.CreateSkillRequest{
Parent: "schemas/main.default",
SkillId: "my_skill",
Skill: catalog.Skill{Comment: "Team-shared math helper skill"},
})
Go Modular SDK
Creëer en beheer een vaardigheid met de Go Modular SDK. Optionele velden zijn pointers, dus het voorbeeld gebruikt een eenregelige helper, func ptr[T any](v T) *T { return &v }.
skill, err := c.CreateSkill(ctx, aigateway.CreateSkillRequest{
Parent: ptr("schemas/main.default"),
SkillId: ptr("my_skill"),
Skill: &aigateway.Skill{Comment: ptr("Team-shared math helper skill")},
})
Java SDK
Maak een vaardigheid aan en beheer deze met de Databricks SDK voor Java:
Skill skill =
w.aiGateway()
.createSkill(
new CreateSkillRequest()
.setParent("schemas/main.default")
.setSkillId("my_skill")
.setSkill(new Skill().setComment("Team-shared math helper skill")));
JS Modular SDK
Maak en beheer een vaardigheid met de JavaScript SDK:
const created = await client.createSkill({
parent: 'schemas/main.default',
skillId: 'my_skill',
skill: { comment: 'Team-shared math helper skill' },
});
Stap 2: Upload de bundel
Upload SKILL.md, en eventuele ondersteunende bestanden, naar het opslagpad van de vaardigheid, /Skills/<catalog>/<schema>/<skill>/, via de Files API.
SKILL.mdmoet beginnen met YAML frontmatter dat en descriptionzetname. Sla dit voorbeeld op als SKILL.md:
---
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.
REST API
Stuur een PUT naar de Files API. Stel DATABRICKS_HOST in op je workspace-URL, zoals https://my-workspace.cloud.databricks.com, en DATABRICKS_TOKEN op een token. Dit voorbeeld geeft het token door aan curl standaard invoer zodat het niet in de proceslijst verschijnt:
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}\""
CLI
Maak de map van de vaardigheid aan en kopieer het bestand ernaar:
databricks fs mkdir dbfs:/Skills/main/default/my_skill
databricks fs cp SKILL.md dbfs:/Skills/main/default/my_skill/SKILL.md --overwrite
Python SDK
with open("SKILL.md", "rb") as f:
w.files.upload("/Skills/main/default/my_skill/SKILL.md", f, overwrite=True)
Go Softwareontwikkelingskit
f, err := os.Open("SKILL.md")
if err != nil {
return err
}
defer f.Close()
err = w.Files.Upload(ctx, files.UploadRequest{
FilePath: "/Skills/main/default/my_skill/SKILL.md",
Contents: f,
Overwrite: true,
})
Go Modular SDK
De Go Modular SDK bevat de Files API niet. Upload in plaats daarvan met de Files SDK voor Go :
fc, err := files.NewClient(ctx)
if err != nil {
return err
}
f, err := os.Open("SKILL.md")
if err != nil {
return err
}
defer f.Close()
_, err = fc.Upload(ctx, "/Skills/main/default/my_skill/SKILL.md", f, files.WithOverwrite(true))
Java SDK
try (InputStream contents = Files.newInputStream(Paths.get("SKILL.md"))) {
w.files()
.upload(
new UploadRequest()
.setFilePath("/Skills/main/default/my_skill/SKILL.md")
.setOverwrite(true)
.setContents(contents));
}
JS Modular SDK
De JavaScript Modular SDK bevat de Files API niet, dus dit voorbeeld roept direct het REST-eindpunt aan. Het leest de workspace-URL, zoals https://my-workspace.cloud.databricks.com, en een token uit de DATABRICKS_HOST en DATABRICKS_TOKEN omgevingsvariabelen:
import { readFile } from 'node:fs/promises';
const response = await fetch(
`${process.env.DATABRICKS_HOST}/api/2.0/fs/files/Skills/main/default/my_skill/SKILL.md?overwrite=true`,
{
method: 'PUT',
headers: {
'Content-Type': 'application/octet-stream',
Authorization: `Bearer ${process.env.DATABRICKS_TOKEN}`,
},
body: await readFile('SKILL.md'),
},
);
if (!response.ok) {
throw new Error(`Upload failed: ${response.status} ${response.statusText}`);
}
Stap 3: Voltooi de vaardigheid
Het afronden leest en valideert SKILL.md, en stelt vervolgens de vaardigheid bundle_name en description de voorste inhoud vast. Als je de bundel later verandert, maak het dan opnieuw af.
REST API
databricks api post "/api/2.1/unity-catalog/skills/main.default.my_skill/finalize" --json '{}'
CLI
databricks ai-gateway finalize-skill skills/main.default.my_skill
Python SDK
finalized = w.ai_gateway.finalize_skill(name="skills/main.default.my_skill")
print(finalized.bundle_name, finalized.description)
Go Softwareontwikkelingskit
finalized, err := w.AiGateway.FinalizeSkill(ctx, catalog.FinalizeSkillRequest{
Name: "skills/main.default.my_skill",
})
Go Modular SDK
finalized, err := c.FinalizeSkill(ctx, aigateway.FinalizeSkillRequest{
Name: ptr("skills/main.default.my_skill"),
})
Java SDK
Skill finalized =
w.aiGateway().finalizeSkill(new FinalizeSkillRequest().setName("skills/main.default.my_skill"));
JS Modular SDK
const finalized = await client.finalizeSkill({ name: 'skills/main.default.my_skill' });
Vind een vaardigheid
Noem de vaardigheden die je kunt gebruiken in een schema, en haal dan de metadata van een vaardigheid op basis van de resourcenaam.
REST API
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"
Wanneer de lijstrespons bevat next_page_token, geef het door zoals page_token in het volgende verzoek. Ga door tot next_page_token het afwezig of leeg is.
CLI
databricks ai-gateway list-skills schemas/main.default
databricks ai-gateway get-skill skills/main.default.my_skill
Python SDK
for skill in w.ai_gateway.list_skills(parent="schemas/main.default"):
print(skill.name)
skill = w.ai_gateway.get_skill(name="skills/main.default.my_skill")
De CLI- en Python-iterator regelen de paginering voor je.
Toegang verlenen
Deze voorbeelden geven READ VOLUME de vaardigheid, waarmee de directeur de vaardigheid kan lezen en de bundel downloadt. Voor de andere vaardigheidsprivileges, zie Verleen toegang tot vaardigheden.
REST API
databricks api patch \
"/api/2.1/unity-catalog/permissions/skill/main.default.my_skill" \
--json '{
"changes": [
{ "principal": "data-team", "add": ["READ_VOLUME"] }
]
}'
CLI
Grant READ VOLUME met de Databricks CLI:
databricks grants update skill main.default.my_skill \
--json '{"changes": [{"principal": "data-team", "add": ["READ_VOLUME"]}]}'
Python SDK
Toegang verlenen READ VOLUME met de Databricks SDK voor Python:
from databricks.sdk.service import catalog as c
w.grants.update(
securable_type="skill",
full_name="main.default.my_skill",
changes=[c.PermissionsChange(principal="data-team", add=[c.Privilege.READ_VOLUME])],
)
Go Softwareontwikkelingskit
Grant READ VOLUME met de Databricks SDK voor Go:
_, err := w.Grants.Update(ctx, catalog.UpdatePermissions{
SecurableType: "skill",
FullName: "main.default.my_skill",
Changes: []catalog.PermissionsChange{{
Principal: "data-team",
Add: []catalog.Privilege{catalog.PrivilegeReadVolume},
}},
})
Java SDK
Grant READ VOLUME met de Databricks SDK voor Java:
w.grants()
.update(
new UpdatePermissions()
.setSecurableType("skill")
.setFullName("main.default.my_skill")
.setChanges(
Arrays.asList(
new PermissionsChange()
.setPrincipal("data-team")
.setAdd(Arrays.asList(Privilege.READ_VOLUME)))));
Een vaardigheid bijwerken
Deze voorbeelden werken de opmerking van de vaardigheid bij, het enige veld dat je kunt wijzigen. De naam van de vaardigheid kan niet worden veranderd. Om de inhoud van een vaardigheid te wijzigen, upload je de nieuwe bundel en maak je de vaardigheid opnieuw af.
Voor een voorwaardelijke update haal eerst de vaardigheid en geef deze etag door met de update. De update slaagt alleen als de vaardigheid sinds die lezing niet is veranderd. URL-encoderen wanneer etag het wordt toegevoegd aan een REST-querystring.
REST API
databricks api patch \
"/api/2.1/unity-catalog/skills/main.default.my_skill?update_mask=comment" \
--json '{"comment": "Updated: team-shared math helper"}'
CLI
databricks ai-gateway update-skill skills/main.default.my_skill comment \
--json '{"comment": "Updated: team-shared math helper"}'
Python SDK
from databricks.sdk.service import catalog as c
from databricks.sdk.common.types.fieldmask import FieldMask
updated = w.ai_gateway.update_skill(
name="skills/main.default.my_skill",
update_mask=FieldMask(["comment"]),
skill=c.Skill(comment="Updated: team-shared math helper"),
)
Go Softwareontwikkelingskit
updated, err := w.AiGateway.UpdateSkill(ctx, catalog.UpdateSkillRequest{
Name: "skills/main.default.my_skill",
UpdateMask: *fieldmask.New([]string{"comment"}),
Skill: catalog.Skill{Comment: "Updated: team-shared math helper"},
})
Go Modular SDK
mask, err := types.NewFieldMask[aigateway.Skill]("comment")
updated, err := c.UpdateSkill(ctx, aigateway.UpdateSkillRequest{
Skill: &aigateway.Skill{
Name: ptr("skills/main.default.my_skill"),
Comment: ptr("Updated: team-shared math helper"),
},
UpdateMask: mask,
})
Java SDK
Skill updated =
w.aiGateway()
.updateSkill(
new UpdateSkillRequest()
.setName("skills/main.default.my_skill")
.setUpdateMask(FieldMask.newBuilder().addPaths("comment").build())
.setSkill(new Skill().setComment("Updated: team-shared math helper")));
JS Modular SDK
import { skillFieldMask } from '@databricks/sdk-aigateway/v1';
const updated = await client.updateSkill({
skill: {
name: 'skills/main.default.my_skill',
comment: 'Updated: team-shared math helper',
},
updateMask: skillFieldMask('comment'),
});
Een vaardigheid verwijderen
Het verwijderen van een vaardigheid verwijdert deze en het bundelpakket. Agenten kunnen het niet meer laden.
Je kunt ook de huidige etag vaardigheid doorgeven om verwijdering afhankelijk te maken van het feit dat deze sinds de laatste lezing niet is veranderd. URL-codeer de etag in REST-querystrings.
REST API
databricks api delete "/api/2.1/unity-catalog/skills/main.default.my_skill"
CLI
databricks ai-gateway delete-skill skills/main.default.my_skill
Python SDK
w.ai_gateway.delete_skill(name="skills/main.default.my_skill")
Go Softwareontwikkelingskit
err := w.AiGateway.DeleteSkill(ctx, catalog.DeleteSkillRequest{
Name: "skills/main.default.my_skill",
})
Go Modular SDK
err := c.DeleteSkill(ctx, aigateway.DeleteSkillRequest{
Name: ptr("skills/main.default.my_skill"),
})
Java SDK
w.aiGateway().deleteSkill(new DeleteSkillRequest().setName("skills/main.default.my_skill"));
JS Modular SDK
await client.deleteSkill({ name: 'skills/main.default.my_skill' });