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
- Azure-előfizetés – Ingyenes létrehozás
- Miután megkapta az Azure-előfizetését, hozzon létre egy Computer Vision-erőforrást az Azure Portalon a kulcs és a végpont lekéréséhez. Mindenképpen hozza létre az egyik támogatott földrajzi régióban: lásd a régió rendelkezésre állását.
- Az üzembe helyezés után válassza az Ugrás az erőforrásra lehetőséget. Másolja a kulcsot és a végpontot egy ideiglenes helyre, amelyet később használni szeretne.
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:
- Cserélje le
<endpoint>
az Azure AI Vision-végpontra. - Cserélje le
<subscription-key>
az Azure AI Vision-kulcsra. - A kérelem törzsében állítsa be
"url"
a használni kívánt távoli rendszerkép URL-címét. - 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:
- Cserélje le
<endpoint>
az Azure AI Vision-végpontra. - Cserélje le
<subscription-key>
az Azure AI Vision-kulcsra. - A kérelem törzsében állítsa be
"text"
a használni kívánt példakeresési kifejezést. - 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);
}