Partager via


Créer vos propres plug-ins personnalisés

Importante

Certaines informations contenues dans cet article concernent le produit en préversion, qui peut être considérablement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, explicite ou implicite, concernant les informations fournies ici.

Conseil

Si vous avez besoin d’aide pour les plug-ins non-Microsoft, reportez-vous à leur documentation et au support technique.

Création de nouveaux plug-ins

Selon la façon dont vos administrateurs configurent Copilot pour la sécurité, vous pouvez créer des plug-ins en suivant les étapes suivantes :

  1. Créez un plug-in à partir de la liste des plug-ins pris en charge.

  2. Créez un fichier manifeste de plug-in YAML ou JSON, qui décrit les métadonnées relatives au plug-in et comment l’appeler.

  3. Publiez le manifeste du plug-in sur Copilot pour la sécurité.

Conditions requises pour les plug-ins

Chaque plug-in Copilot pour la sécurité nécessite un fichier manifeste au format YAML ou JSON (par exemple plugin.yaml ou plugin.json) qui décrit les métadonnées relatives aux compétences et à la façon d’appeler les compétences.

Un manifeste se compose de deux clés de niveau supérieur requises, Descriptor et SkillGroups, chacune avec des paires sous-clé ou valeur, et des champs obligatoires/facultatifs en fonction du format de compétence.

Pour plus d’informations sur les plug-ins OpenAI, consultez Prise en main.

Résumé du champ de descripteur

Champ Type Description Obligatoire
Name string Nom interne du plug-in. Ne permet pas / \ ? # @. Oui
DisplayName string Nom lisible par l'homme du plug-in. Recommandé
Description string Description lisible par l'homme du plug-in. Oui
DescriptionDisplay string Description alternative lisible par l'homme du plug-in si Description n'est pas spécifié. Non
Category string Note : Cette valeur est actuellement forcée pendant le processus de téléchargement du plug-in Plugin personnalisé. Non
Prerequisites string Non
Icon string URL utilisée pour récupérer l'icône principale de l'ensemble de compétences. Recommandé

Résumé du champ SkillGroups

Il s'agit d'une liste de groupes de compétences comprenant Format, Settings, et Skills.

Champ Type Description Obligatoire
Format chaîne Consultez la section Format pour connaître les options disponibles. Oui
Settings objet Consultez la section Paramètres pour connaître la structure de l'objet. Oui, pour les formats API: DOTNET, CONTAINER
Skills objet Consulter la section Compétences pour la structure de l'objet. Oui, pour les formats GPT: DOTNET, KQL, ,LogicApp

Format (champ SkillGroups)

Options pour le Format champ :

API
GPT
KQL

Paramètres (champ SkillGroups)

Structure d'objet pour le Settings champ.

Champ Type Description Obligatoire
OpenApiSpecUrl chaîne URL de la spécification OpenAPI publique. Oui
EndpointUrl string URL du point d'accès public. Non

Compétences (champ SkillGroups)

Structure d'objet pour le Skills champ.

Champ Type Description Obligatoire
Description chaîne Description lisible par l'homme de cette compétence. Recommandé
DescriptionForModel string Description détaillée de la compétence utilisée pour la sélection des compétences Non
Inputs objet Liste des objets Name,Description ,Required , etDefaultValue (facultatif) à saisir par l'utilisateur dans la compétence.
Settings objet Paramètres personnalisés basés sur le format de compétence.

Différences entre les manifestes OpenAI et Copilot pour la sécurité

Les plug-ins OpenAI créés en suivant la documentation du plug-in ChatGPT utilisent généralement un format de manifeste différent du format de manifeste Copilot pour la sécurité. Copilot pour la sécurité prend en charge les deux formats.

Lorsqu’il est chargé, le manifeste du plug-in OpenAI est traduit en manifeste Copilot pour la sécurité.

Remarque

Les détails de la cartographie, notamment en ce qui concerne les restrictions dans les notes, peuvent changer à l'avenir. Actuellement, la plateforme ne prend en charge que les plug-ins des versions 3.0 ou 3.0.1 de l' OpenAPI.

Cartographie des champs du plug-in

Champ du plug-in Type Champ du descripteur Obligatoire Remarques
schema_version string Non Il s'agit de la version du schéma du manifeste de l' OpenAI, par exemple « v1 ». Actuellement non utilisé.
name_for_model string Nom Oui Limité à 100 caractères. Nom interne de l'ensemble de compétences. Ne permet pas / \ ? #.
name_for_human string DisplayName Oui Nom lisible par l'homme du plug-in. Limité à 40 caractères.
description_for_model string Description Oui Limité à 16 000 caractères. Description interne à utiliser avec LLM.
description_for_human chaîne DescriptionAffichage Oui Description lisible par l'homme du plug-in. Limité à 200 caractères.
logo_url string Icône Recommandé URL utilisée pour récupérer l'icône principale du plug-in
contact_email string Non Contact e-mail pour le plug-in. Actuellement non utilisé.
legal_info_url string Non Lien pour des informations sur le plug-in. Actuellement non utilisé.
api objet Voir la section API du plug-in pour la structure de l'objet Oui
auth objet Oui authorization_type est limité àbearer. Détails à suivre sur le support des différentes authentifications type comme none, oauth, api_key, aad, aad_delegated.

Plug-in (champ API)

Structure de l'objet pour le api champ

Champ Type Description Obligatoire
type chaîne Le seul type pris en charge actuellement est openapi. Oui
url string Lien vers le document de spécification OpenAPI de l'API. Oui

Conseils pour la création de plug-ins

Il existe de nombreuses considérations relatives à la création de plug-ins. Ce document est destiné à lister certaines des recommandations et meilleures pratiques pour l’écriture de plug-ins pour Copilot pour la sécurité.

Remarque

Une « collision de compétences » se produit quand Copilot pour la sécurité ne fait pas la distinction entre deux compétences différentes.

  • Au lieu d’avoir plusieurs compétences qui retournent le même type de réponse, mais qui diffèrent uniquement en fonction des entrées ; définissez les compétences, qui prennent plusieurs entrées, puis déterminez en interne comment obtenir les données.

    • Par exemple, avoir une seule compétence GetDevices qui accepte l’identifiant d’appareil, l’identifiant utilisateur ou le nom d’utilisateur au lieu de GetDeviceById, GetDeviceByUserIdet GetDeviceByUserName distincts.
  • Copilot pour la sécurité prend en charge les champs Description et DescriptionForModel. Description est utilisé dans l’expérience utilisateur (et pour la sélection des compétences si DescriptionForModel n’est pas défini) et DescriptionForModel est utilisé uniquement pour la sélection de compétences.

    • Par exemple, supposons que nous ayons une compétence GetSslCertsByHostname, dont la description est « Renvoie les certificats SSL associés à un nom d'hôte ». Une description détaillée deForModel pourrait être « Récupère » les certificats SSL (également connus sous le nom de certificats TLS) pour un nom d'hôte DNS ou un nom de domaine. Renvoie une liste de certificats SSL avec les détails du certificat tels que l'émetteur, le sujet, le numéro de série, sha1, et les dates ».
  • Les descriptions de compétences doivent être verbeuses et formulées pour quelqu'un qui a des connaissances raisonnables, mais qui n'est pas nécessairement un expert dans votre domaine de problèmes. Elle doit décrire non seulement ce que fait la compétence, mais aussi pourquoi quelqu'un voudrait l'utiliser.

    • Par exemple, une bonne description est la suivante : « Obtient des informations sur la réputation d'une adresse IP. Permet aux utilisateurs de déterminer si une adresse IP est risquée ».  

Voir aussi