Compétence d’incorporations Azure OpenAI

Important

Cette fonctionnalité est en préversion publique sous les conditions d’utilisation supplémentaires. L’API REST 2023-10-01-Préversion prend en charge cette fonctionnalité.

La compétence d’incorporation d’Azure OpenAI se connecte à un modèle d’incorporation déployé sur votre ressource Azure OpenAI pour générer des incorporations.

Les données d’importation et de vectorisation utilisent la compétence d’incorporation Azure OpenAI pour vectoriser le contenu. Vous pouvez exécuter l’Assistant et passer en revue l’ensemble de compétences généré pour voir comment l’Assistant le génère.

Remarque

Cette compétence est liée à Azure OpenAI et est facturée au prix du paiement à l’utilisation d’Azure OpenAI.

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

Limites de données

La taille maximale d’une entrée de texte doit être de 8 000 jetons. Si l’entrée dépasse le maximum autorisé, le modèle renvoie une erreur de requête non valide. Pour plus d’informations, consultez le concept clé de jetons dans la documentation Azure OpenAI. Envisagez d’utiliser la compétence Fractionnement de texte si vous avez besoin d’un segment de données.

Paramètres de la compétence

Les paramètres respectent la casse.

Entrées Description
resourceUri URI d’un fournisseur de modèles, tel qu’une ressource Azure OpenAI ou une URL OpenAI.
apiKey Clé secrète utilisée pour accéder au modèle. Si vous fournissez une clé, laissez authIdentity vide. Si vous définissez le apiKey et leauthIdentity, le apiKey est utilisé sur la connexion.
deploymentId Le nom du modèle d’incorporation Azure OpenAI déployé. Le modèle doit être un modèle d’incorporation, comme text-embedding-ada-002. Voir la Liste des modèles Azure OpenAI pour les modèles pris en charge.
authIdentity Une identité managée par l’utilisateur utilisée par le service de recherche pour la connexion à Azure OpenAI. Vous pouvez utiliser une identité managée par le système ou l’utilisateur. Pour utiliser une identité managée par le système, laissez apiKey et authIdentity vide. L’identité managée par le système est utilisée automatiquement. Une identité managée doit avoir les autorisations utilisateur OpenAI Cognitive Services pour envoyer du texte à Azure OpenAI.

Entrées de la compétence

Input Description
text Le texte d’entrée à vectoriser. Si vous utilisez la segmentation des données, la source peut être /document/pages/*.

Sorties de la compétence

Sortie Description
embedding Incorporation vectorisée pour le texte d’entrée.

Exemple de définition

Prenons l’exemple d’un enregistrement qui contient les champs suivants :

{
    "content": "Microsoft released Windows 10."
}

Votre définition de compétence peut se présenter comme suit :

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
  "deploymentId": "my-text-embedding-ada-002-model",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

Exemple de sortie

Pour le texte d’entrée donné, une sortie d’incorporation vectorisée est produite.

{
  "embedding": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

La sortie réside dans la mémoire. Pour envoyer cette sortie à un champ dans l’index de recherche, vous devez définir un outputFieldMapping qui mappe la sortie d’incorporation vectorisée (qui est un tableau) à un champ vectoriel. En supposant que la sortie de compétence réside dans le nœud d’incorporation du document et que content_vector est le champ de l’index de recherche, le outputFieldMapping dans l’indexeur doit ressembler à ceci :

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/embedding/*",
      "targetFieldName": "content_vector"
    }
  ]

Bonnes pratiques

Voici quelques bonnes pratiques à prendre en compte lors de l’utilisation de cette compétence :

  • Si vous atteignez votre limite azure OpenAI TPM (Jetons par minute), tenez compte des limites de quota afin de pouvoir répondre en conséquence. Pour plus d’informations sur les performances de votre instance Azure OpenAI, consultez la documentation de supervision Azure OpenAI.
  • Le déploiement du modèle d’incorporation Azure OpenAI que vous utilisez pour cette compétence doit être idéalement distinct du déploiement utilisé pour d’autres cas d’usage, y compris le vectoriseur de requête. Cela permet à chaque déploiement d’être adapté à son cas d’usage spécifique, ce qui entraîne des performances optimisées et l’identification du trafic à partir de l’indexeur et des appels d’incorporation d’index facilement.
  • Votre instance Azure OpenAI doit se trouver dans la même région ou au moins géographiquement proche de la région où votre service Search IA est hébergée. Cela réduit la latence et améliore la vitesse de transfert de données entre les services.
  • Si vous avez une limite de TPM Azure OpenAI (Jetons par minute) supérieure à la valeur par défaut, telle que publiée dans la documentation sur les quotas et les limites , ouvrez un cas de support auprès de l’équipe Recherche d’IA Azure, ce qui peut être ajusté en conséquence. Cela permet à votre processus d’indexation de ne pas être inutilement ralenti par la limite de module de plateforme sécurisée par défaut documentée, si vous avez des limites plus élevées.

Erreurs et avertissements

Condition Résultat
URI nul ou non valide Erreur
DeploymentID nul ou non valide Erreur
Le texte est vide Avertissement
Le texte est supérieur à 8 000 jetons Erreur

Voir aussi