Megosztás a következőn keresztül:


Képlekérés többmodális beágyazások használatával (4.0-s verzió)

A multimodális beágyazások API-k lehetővé teszik a képek és szöveges lekérdezések vektorizálását . Többdimenziós vektortérben lévő koordinátákká alakítják a képeket. Ezután a bejövő szöveges lekérdezések vektorokká is konvertálhatók, és a képek szemantikai közelség alapján megfeleltethetők a szövegnek. Ez lehetővé teszi, hogy a felhasználó szöveg használatával keressen képeket anélkül, hogy képcímkéket vagy más metaadatokat kellene használnia. A szemantikai közelség gyakran jobb eredményeket eredményez a keresésben.

Az 2024-02-01 API egy többnyelvű modellt tartalmaz, amely 102 nyelven támogatja a szöveges keresést. Az eredeti csak angol nyelvű modell továbbra is elérhető, de nem kombinálható az új modellel ugyanabban a keresési indexben. Ha csak angol nyelvű modellel vektorizált szöveget és képeket, ezek a vektorok nem lesznek kompatibilisek a többnyelvű szöveg- és képvektorokkal.

Fontos

Ezek az API-k csak bizonyos földrajzi régiókban érhetők el. Lásd a régió rendelkezésre állását.

Előfeltételek

Multimodális beágyazások kipróbálása

A Vision Studióval gyorsan és egyszerűen kipróbálhatja a multimodális beágyazás funkciót a böngészőben.

Fontos

A Vision Studio felülete legfeljebb 500 képet tartalmaz. Nagyobb képkészlet használatához hozzon létre saját keresőalkalmazást az ebben az útmutatóban található API-k használatával.

A Vectorize Image API meghívása

Az retrieval:vectorizeImage API lehetővé teszi, hogy egy kép adatait vektorlá konvertálja. A meghíváshoz végezze el az alábbi módosításokat az alábbi cURL-parancson:

  1. Cserélje le <endpoint> az Azure AI Vision-végpontra.
  2. Cserélje le <subscription-key> az Azure AI Vision-kulcsra.
  3. A kérelem törzsében állítsa be "url" a használni kívánt távoli rendszerkép URL-címét.
  4. Igény szerint módosítsa a model-version paramétert egy régebbi verzióra. 2022-04-11 az örökölt modell, amely csak az angol szöveget támogatja. A bizonyos modellekkel vektorizált képek és szövegek nem kompatibilisek más modellekkel, ezért ügyeljen arra, hogy ugyanazt a modellt használja mindkettőhöz.
curl.exe -v -X POST "<endpoint>/computervision/retrieval:vectorizeImage?api-version=2024-02-01&model-version=2023-04-15" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription-key>" --data-ascii "
{
'url':'https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png'
}"

A helyi rendszerkép vektorizálásához a bináris adatokat a HTTP-kérelem törzsébe kell helyeznie.

Az API-hívás egy vektoros JSON-objektumot ad vissza, amely meghatározza a kép koordinátáit a nagy dimenziójú vektortérben.

{ 
  "modelVersion": "2022-04-11", 
  "vector": [ -0.09442752, -0.00067171326, -0.010985051, ... ] 
}

A Vectorize Text API meghívása

Az retrieval:vectorizeText API lehetővé teszi, hogy egy szöveges sztringet vektorsá alakítson. A meghíváshoz végezze el az alábbi módosításokat az alábbi cURL-parancson:

  1. Cserélje le <endpoint> az Azure AI Vision-végpontra.
  2. Cserélje le <subscription-key> az Azure AI Vision-kulcsra.
  3. A kérelem törzsében állítsa be "text" a használni kívánt példakeresési kifejezést.
  4. Igény szerint módosítsa a model-version paramétert egy régebbi verzióra. 2022-04-11 az örökölt modell, amely csak az angol szöveget támogatja. A bizonyos modellekkel vektorizált képek és szövegek nem kompatibilisek más modellekkel, ezért ügyeljen arra, hogy ugyanazt a modellt használja mindkettőhöz.
curl.exe -v -X POST "<endpoint>/computervision/retrieval:vectorizeText?api-version=2024-02-01&model-version=2023-04-15" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: <subscription-key>" --data-ascii "
{
'text':'cat jumping'
}"

Az API-hívás egy vektoros JSON-objektumot ad vissza, amely meghatározza a szöveges sztring koordinátáit a nagy dimenziójú vektortérben.

{ 
  "modelVersion": "2022-04-11", 
  "vector": [ -0.09442752, -0.00067171326, -0.010985051, ... ] 
}

Vektor hasonlóságának kiszámítása

A koszinusz-hasonlóság két vektor hasonlóságának mérésére szolgáló módszer. Egy képlekérési forgatókönyvben összehasonlítja a keresési lekérdezés vektorát az egyes képek vektoraival. A bizonyos hasonlósági küszöbértéket meghaladó képek ezután keresési eredményként is visszaadhatók.

Az alábbi példakód kiszámítja a két vektor koszinusz-hasonlóságát. Ön dönti el, hogy milyen hasonlósági küszöbértéket használjon a képek keresési eredményként való visszaadásához.

public static float GetCosineSimilarity(float[] vector1, float[] vector2)
{ 
    float dotProduct = 0; 
    int length = Math.Min(vector1.Length, vector2.Length); 
    for (int i = 0; i < length; i++) 
    { 
        dotProduct += vector1[i] * vector2[i]; 
    } 
    float magnitude1 = Math.Sqrt(vector1.Select(x => x * x).Sum());
    float magnitude2 = Math.Sqrt(vector2.Select(x => x * x).Sum());
    
    return dotProduct / (magnitude1 * magnitude2);
}

Következő lépés