Dela via


Inbäddningsfärdighet för Azure OpenAI

Azure OpenAI-inbäddningsfärdigheten ansluter till en inbäddningsmodell som distribueras till din Azure OpenAI-resurs eller Azure AI Foundry-projekt för att generera inbäddningar under indexering. Dina data bearbetas i geo-området där din modell distribueras.

Guiden Importera data (ny) i Azure-portalen använder Azure OpenAI-inbäddningsfärdigheten för att vektorisera innehåll. Du kan köra guiden och granska den genererade kompetensuppsättningen för att se hur guiden skapar kunskaper för inbäddningsmodeller.

Note

Den här färdigheten är bunden till Azure OpenAI och debiteras till det befintliga Azure OpenAI Standard-priset.

Prerequisites

  • En Azure OpenAI i Azure AI Foundry Models-resurs eller Azure AI Foundry-projekt.

    • Din Azure OpenAI-resurs måste ha en anpassad underdomän, till exempel https://<resourcename>.openai.azure.com. Om du skapade resursen i Azure-portalen genererades den här underdomänen automatiskt under resurskonfigurationen.

    • Ditt Azure AI Foundry-projekt bör ha en Azure AI-tjänstslutpunkt med domänen cognitiveservices.azure.com . När du har distribuerat en Azure OpenAI-inbäddningsmodell till projektet måste du ändra slutpunkten så att den använder domänen openai.azure.com . Du kan till exempel ändra slutpunkten från https://<resourcename>.cognitiveservices.azure.com till https://<resourcename>.openai.azure.com. Du kan sedan använda den här uppdaterade slutpunkten för egenskapen i den här färdigheten resourceUri .

  • En Azure OpenAI-inbäddningsmodell som distribuerats till din resurs eller ditt projekt.

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

Databegränsningar

Den maximala storleken för en textinmatning ska vara 8 000 token. Om indata överskrider det högsta tillåtna antalet genererar modellen ett ogiltigt begärandefel. Mer information finns i nyckelkonceptet för token i Azure OpenAI-dokumentationen. Överväg att använda färdigheten Textdelning om du behöver segmentering av data.

Kompetensparametrar

Parametrar är skiftlägeskänsliga.

Inputs Description
resourceUri Obligatoriskt. URI:n för modellprovidern. Den här parametern stöder endast URL:er med domänen openai.azure.com , till exempel https://<resourcename>.openai.azure.com. Det här fältet krävs om din Azure OpenAI-resurs distribueras bakom en privat slutpunkt eller använder virtual network-integrering (VNet). Azure API Management-slutpunkter stöds med URL .https://<resourcename>.azure-api.net Delade privata länkar stöds inte för API Management-slutpunkter.
apiKey Den hemliga nyckel som används för att komma åt modellen. Om du anger en nyckel lämnar du authIdentity tom. Om du anger både apiKey och authIdentityapiKey används den för anslutningen.
deploymentId Obligatoriskt. Namnet på den distribuerade Inbäddningsmodellen för Azure OpenAI. Modellen ska vara en inbäddningsmodell, till exempel textinbäddning-ada-002. Se Listan över Azure OpenAI-modeller för modeller som stöds.
authIdentity En användarhanterad identitet som används av söktjänsten för att ansluta till Azure OpenAI. Du kan använda antingen en system- eller användarhanterad identitet. Lämna och apiKey tom om du vill använda en systemhanterad identitetauthIdentity. Den systemhanterade identiteten används automatiskt. En hanterad identitet måste ha Behörighet för Cognitive Services OpenAI-användare att skicka text till Azure OpenAI.
modelName Obligatoriskt. Ange den här egenskapen till distributionsnamnet för en Azure OpenAI-inbäddningsmodell som distribueras på den provider som anges via resourceUri och identifieras via deploymentId. För närvarande är text-embedding-ada-002de värden som stöds , text-embedding-3-largeoch text-embedding-3-small.
dimensions Valfritt. Dimensionerna för inbäddningar som du vill generera, förutsatt att modellen stöder ett antal dimensioner. Intervall som stöds visas nedan och gäller för närvarande endast för modellserien text-embedding-3. Standardvärdet är de maximala dimensionerna för varje modell. För kompetensuppsättningar som skapats med hjälp av tidigare REST API-versioner som går tillbaka till förhandsversionen 2023-10-01, fastställs dimensionerna till 1536. När du ställer in dimensionsegenskapen på en färdighet måste du ange dimensions egenskapen för vektorfältdefinitionen till samma värde.

Dimensioner som stöds av modelName

Vilka dimensioner som stöds för en Azure OpenAI-inbäddningsfärdighet beror på vilken modelName som är konfigurerad.

modelName Minsta mått Maximala dimensioner
text-embedding-ada-002 1536 1536
text-embedding-3-large 1 3072
text-embedding-3-small 1 1536

Kunskapsindata

Input Description
text Den indatatext som ska vektoriseras. Om du använder datasegmentering kan källan vara /document/pages/*.

Kunskapsutdata

Output Description
embedding Vektoriserad inbäddning för indatatexten.

Exempeldefinition

Överväg en post som har följande fält:

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

Då kan din kompetensdefinition se ut så här:

{
  "@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"
    }
  ]
}

Exempelresultat

För den angivna indatatexten skapas en vektoriserad inbäddningsutdata.

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

Utdata finns i minnet. Om du vill skicka utdata till ett fält i sökindexet måste du definiera en outputFieldMapping som mappar de vektoriserade inbäddningsutdata (som är en matris) till ett vektorfält. Förutsatt att kunskapsutdata finns i dokumentets inbäddningsnod och content_vector är fältet i sökindexet bör outputFieldMapping i indexeraren se ut så här:

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

Metodtips

Följande är några metodtips som du behöver tänka på när du använder den här färdigheten:

  • Om du når gränsen för Azure OpenAI TPM (token per minut) bör du överväga rekommendationen om kvotgränser så att du kan åtgärda detta. Mer information om azure OpenAI-instansprestanda finns i dokumentationen för Azure OpenAI-övervakning .

  • Den Azure OpenAI-inbäddningsmodelldistribution som du använder för den här färdigheten bör helst vara separat från distributionen som används för andra användningsfall, inklusive frågevektoriseraren. Detta hjälper varje distribution att skräddarsys efter sitt specifika användningsfall, vilket gör det enkelt att optimera prestanda och identifiera trafik från indexeraren och indexets inbäddningsanrop.

  • Din Azure OpenAI-instans bör finnas i samma region eller åtminstone geografiskt nära den region där din AI-tjänsten Search finns. Detta minskar svarstiden och förbättrar dataöverföringshastigheten mellan tjänsterna.

  • Om du har en större gräns än standardgränsen för Azure OpenAI TPM (token per minut) som publicerats i dokumentationen om kvoter och gränser öppnar du ett supportärende med Azure AI Search-teamet, så att detta kan justeras i enlighet med detta. Detta hjälper din indexeringsprocess att inte i onödan saktas ned av den dokumenterade TPM-standardgränsen om du har högre gränser.

  • Exempel och fungerande kodexempel som använder den här färdigheten finns i följande länkar:

Fel och varningar

Condition Result
Null eller ogiltig URI Error
Null eller ogiltigt deploymentID Error
Texten är tom Warning
Texten är större än 8 000 token Error

Se även