Azure Vaardigheid voor insluiten van OpenAI

Note

Azure AI Zoeken is beschikbaar via de Azure-portal, REST API's en Azure-SDK's. Het vormt ook een basis voor Foundry IQ, de beheerde kennislaag die bedrijfsinhoud transformeert in herbruikbare, machtigingsbewuste knowledge bases voor agents in de Microsoft Foundry-portal.

De Azure OpenAI Embedding vaardigheid is gekoppeld aan een embeddingmodel dat is geïmplementeerd op je Azure OpenAI in Foundry Models resource of Microsoft Foundry project om embeddings te genereren tijdens indexering. Uw gegevens worden verwerkt in de geografische locatie waar uw model wordt geïmplementeerd.

De DataImport data wizard in het Azure portaal gebruikt de OpenAI Embedding-vaardigheid Azure om content te vectoriseren. Je kunt de wizard draaien en de gegenereerde skillset bekijken om te zien hoe de wizard de vaardigheid voor het embedden van modellen opbouwt.

Note

Deze vaardigheid is verplicht om OpenAI te Azure en wordt gerekend tegen de Azure OpenAI Standard-prijs.

Vereiste voorwaarden

  • Een Azure OpenAI in Foundry Models-resource of Foundry-project.

    • Uw Azure OpenAI-resource moet een subdomein hebben, zoals https://<resource-name>.openai.azure.com. U kunt dit eindpunt vinden op de pagina Keys en Endpoint in de Azure-portal en deze gebruiken voor de eigenschap resourceUri in deze vaardigheid.

    • De bovenliggende resource van uw Foundry-project biedt toegang tot meerdere eindpunten, waaronder https://<resource-name>.openai.azure.com, https://<resource-name>.services.ai.azure.comen https://<resource-name>.cognitiveservices.azure.com. U kunt deze eindpunten vinden op de pagina Keys en Endpoint in de Azure-portal en deze gebruiken voor de eigenschap resourceUri in deze vaardigheid.

  • Een Azure OpenAI-insluitingsmodel dat is geïmplementeerd in uw resource of project. Voor ondersteunde modellen, zie de sectie Vaardigheidsparameters .

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

Gegevenslimieten

De maximale grootte van een tekstinvoer moet 8.000 tokens zijn. Als de invoer het maximaal toegestane maximum overschrijdt, geeft het model een ongeldige verzoekfout. Voor meer informatie, zie het sleutelconcept tokens in de Azure OpenAI-documentatie. Overweeg de Text Split-vaardigheid te gebruiken als je data-chunking nodig hebt.

Vaardigheidsparameters

Parameters zijn hoofdlettergevoelig.

Invoer Description
resourceUri (Vereist) De URI van de modelprovider. Ondersteunde domeinen zijn:

  • openai.azure.com
  • services.ai.azure.com
  • cognitiveservices.azure.com

Dit veld is vereist als je resource achter een privé-endpoint is gedeployeerd of gebruikmaakt van virtual network (VNet)-integratie. Azure API Management eindpunten worden ook ondersteund, met uitzondering van aangepaste API Management-domeinen. Zie Gebruik Azure API Management met Azure OpenAI-vaardigheden en vectorizers voor installatie, waaronder verificatie, RBAC en optionele privéconnectiviteit.

apiKey De geheime sleutel die wordt gebruikt voor toegang tot het model. Als u een sleutel opgeeft, laat u deze authIdentity leeg. Als u beide instelt apiKey en authIdentity, wordt deze apiKey gebruikt voor de verbinding.
deploymentId (Vereist) De id van het geïmplementeerde Azure OpenAI-insluitingsmodel. Dit is de implementatienaam die u hebt opgegeven bij het implementeren van het model.
authIdentity Een door de gebruiker beheerde identiteit die wordt gebruikt door de zoekservice voor de verbinding. U kunt een door het systeem of door de gebruiker beheerde identiteit gebruiken. Als u een door het systeem beheerde identiteit wilt gebruiken, laat u deze leeg en apiKey leegauthIdentity. De door het systeem beheerde identiteit wordt automatisch gebruikt. Een beheerde identiteit moet Cognitive Services OpenAI User machtigingen hebben om tekst te verzenden naar Azure OpenAI.
modelName (Vereist) De naam van het Azure OpenAI-model dat is geïmplementeerd op de opgegeven deploymentId. Ondersteunde waarden zijn:

  • text-embedding-ada-002
  • text-embedding-3-large
  • text-embedding-3-small
dimensions (Optioneel) De afmetingen van embeddings die je wilt genereren, ervan uitgaande dat het model een bereik van dimensies ondersteunt. De standaard is de maximale afmetingen voor elk model. Voor vaardighedensets die zijn gemaakt met REST API-versies vóór de preview van 2023-10-01, zijn de afmetingen vastgelegd op 1536. Als je de dimensions eigenschap in deze vaardigheid instelt, zet dan de dimensions eigenschap op de vectorvelddefinitie op dezelfde waarde.

Ondersteunde afmetingen door modelName

De ondersteunde afmetingen voor een Azure OpenAI Embedding-vaardigheid hangen af van de modelName die is geconfigureerd.

modelName Minimale afmetingen Maximale afmetingen
tekst-insluiten-ada-002 1536 1536
text-embedding-3-large 1 3072
tekst-insluiten-3-klein 1 1536

Invoer van vaardigheden

Invoer Description
text De invoertekst moet worden gevectoriseerd. Als je data-chunking gebruikt, kan de bron ./document/pages/*

Uitvoer van vaardigheden

Uitvoer Description
embedding Vectorized embedding voor de invoertekst.

Voorbeelddefinitie

Beschouw een record met de volgende velden:

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

Dan zou je vaardigheidsdefinitie er als volgt uit kunnen zien:

{
  "@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",
  "modelName": "text-embedding-ada-002",
  "dimensions": 1536,
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

Voorbeelduitvoer

Voor de gegeven invoertekst wordt een vectoriseerde embedding-uitvoer geproduceerd.

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

De output bevindt zich in het geheugen. Om deze output naar een veld in de zoekindex te sturen, moet je een outputFieldMapping definiëren die de vectoriseerde embedding-uitvoer (een array) mappt naar een vectorveld. Aangenomen dat de vaardigheidsoutput zich in de embedding-node van het document bevindt en content_vector het veld in de zoekindex is, zou de outputFieldMapping in de indexer er als volgt uit moeten zien:

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

Beste praktijken

Hieronder volgen enkele best practices die je moet overwegen bij het gebruik van deze vaardigheid:

  • Als u de limiet voor Azure OpenAI TPM (Tokens per minuut) bereikt, kunt u overwegen de limiet voor quotalimieten zodat u dienovereenkomstig kunt adresseren. Raadpleeg de documentatie Azure OpenAI-bewaking voor meer informatie over de prestaties van uw Azure OpenAI-exemplaar.

  • De Azure OpenAI-embeddingsmodel-implementatie die je voor deze vaardigheid gebruikt, zou idealiter gescheiden moeten zijn van de deployment die voor andere gebruiksgevallen wordt gebruikt, waaronder de queryvectorizer. Dit helpt elke implementatie te worden afgestemd op de specifieke use case, wat leidt tot geoptimaliseerde prestaties en het identificeren van verkeer van de indexeerfunctie en de insluitingsaanroepen van de index.

  • Uw Azure OpenAI-exemplaar moet zich in dezelfde regio bevinden of ten minste geografisch dicht bij de regio waar uw AI Search-service wordt gehost. Dit vermindert de latentie en verbetert de snelheid van gegevensoverdracht tussen de services.

  • Om te voorkomen dat er vaak 429-foutcodes optreden, kunt u overwegen taakverdeling via API Management te implementeren door een gateway te implementeren vóór meerdere Azure OpenAI insluitmodelimplementaties.

  • Als u een limiet hebt die groter is dan de standaardlimiet voor Azure OpenAI TPM (Tokens per minuut), zoals gepubliceerd in quota en limietendocumentatie, opent u een ondersteuningscase met het Azure AI Zoeken team, zodat dit dienovereenkomstig kan worden aangepast. Dit helpt uw indexeringsproces niet onnodig te vertragen door de gedocumenteerde standaard TPM-limiet, als u hogere limieten hebt.

  • Voor voorbeelden en werkende codevoorbeelden met deze vaardigheid, zie de volgende links:

Fouten en waarschuwingen

Condition Result
Null of ongeldige URI Fout
Null of ongeldige deploymentID Fout
De tekst is leeg Warning
De tekst is groter dan 8.000 tokens Fout

Beveiligingsoverwegingen voor verificatie van beheerde identiteiten

Wanneer de Azure OpenAI Embedding-vaardigheid gebruikmaakt van verificatie van beheerde identiteiten, verkrijgt Azure AI Zoeken een Microsoft Entra toegangstoken voor de doelgroep Foundry Tools (https://cognitiveservices.azure.com) en bevat deze in aanvragen die worden verzonden naar het eindpunt dat is opgegeven doorresourceUri. Verificatie van beheerde identiteit is van toepassing wanneer authIdentity deze is ingesteld of wanneer beide apiKey leeg zijn en authIdentity de service gebruikmaakt van de door het systeem toegewezen identiteit.

Het eindpunt waarnaar wordt resourceUri verwezen, is naar verwachting uw eigen Azure OpenAI- of Foundry Tools-resource. Ondersteunde domeinen zijn:

  • openai.azure.com
  • cognitiveservices.azure.com
  • services.ai.azure.com

Azure API Management (APIM)-eindpunten (*.azure-api.net) worden ook ondersteund. Omdat een APIM-hostnaam niet alleen kan worden geverifieerd op basis van de naam, valideert Azure AI Zoeken deze eindpunten met een live-connectiviteitscontrole tijdens de configuratie in plaats van door domeinkoppeling. U bent verantwoordelijk voor het configureren en onderhouden van de relatie tussen het APIM-eindpunt en de Azure OpenAI- of Foundry Tools-resource daarachter.

Een beheerde identiteitstoken dat is uitgegeven voor de Foundry Tools-doelgroep, is geldig voor alle Foundry Tools of Azure OpenAI-resource waarvoor de identiteit is geautoriseerd. Als u het naar een niet-vertrouwd eindpunt verzendt, kan het token beschikbaar worden gesteld.

Volg deze procedures om een veilige implementatie te onderhouden:

  • Alleen instellen resourceUri op eindpunten die u bezit en vertrouwt. Geef de voorkeur aan de domeinen Foundry Tools die eerder zijn vermeld. Als u een APIM-eindpunt gebruikt, bevestigt u dat deze uw eigen resource fronteert voordat u beheerde identiteit inschakelt. Een vertrouwde hostnaam is geen bewijs van eigendom.
  • Pas het principe van minimale bevoegdheden toe op de beheerde identiteit die wordt gebruikt door de zoekservice. De Azure OpenAI Embedding-vaardigheid vereist alleen de Gebruikersrol Cognitive Services OpenAI voor de doelresource. Vermijd het verlenen van bredere rollen.
  • Gebruik netwerkbeveiligingsperimeter (NSP) en privé-eindpunten of VNet-integratie om te beperken welke eindpunten de zoekservice kan bereiken en welke bronnen de doelresource aanvragen accepteert.
  • Als u een APIM-eindpunt gebruikt, moet u ervoor zorgen dat de gateway binnenkomende aanvragen valideert en deze alleen doorstuurt naar de beoogde back-end. Controleer ook regelmatig het toegangsbeleid.
  • Geef de voorkeur aan beheerde identiteit boven apiKey. Als u deze gebruikt apiKey, slaat u deze veilig op en draait u deze niet in broncodebeheer. De service weigert configuraties die beide apiKey en authIdentity.
  • Controleer regelmatig definities van vaardighedensets, toewijzingen van beheerde identiteiten en APIM-configuraties om te controleren of resourceUri waarden, toegangsbeheer en identiteitsmachtigingen actueel en geschikt blijven. Controleer configuratiewijzigingen via de bestaande processen voor wijzigingsbeheer en beveiligingsbeoordeling.
  • Bewaak Azure aanmeldingslogboeken van OpenAI en Foundry Tools, verificatiegebeurtenissen en toegangslogboeken voor onverwachte of niet-geautoriseerde activiteiten.
  • Verwijder ongebruikte vaardigheden, eindpunten, roltoewijzingen en API-sleutels die niet meer nodig zijn.

Toegang tot de configuratie van vaardighedensets beperken

Gebruikers die vaardighedensets kunnen maken, wijzigen of uitvoeren, beheren zowel het doeleindpunt (resourceUri) als de verificatieconfiguratie die door de vaardigheid wordt gebruikt. Omdat de vaardigheid een beheerde identiteitstoken verzendt voor de Foundry Tools-doelgroep naar dat eindpunt, beperkt u deze machtigingen tot vertrouwde beheerders en volgt u uw standaardprocessen voor wijzigingsbeheer en beveiligingsbeoordeling bij het configureren van vaardigheden met beheerde identiteiten.

Zie ook