Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.
Azure AI Vyhledávač nehostuje vložené modely, takže zodpovídáte za vytváření vektorů pro vstupy a výstupy dotazů. Zvolte jeden z následujících přístupů:
| Přístup | Popis |
|---|---|
| Integrovaná vektorizace | Použijte integrované dělení dat na bloky a vektorizaci ve službě Azure AI Vyhledávač. Tento přístup využívá závislost na indexerech, sadách dovedností a integrovaných nebo vlastních dovednostech, které odkazují na externí vložené modely, jako jsou například ty v Microsoft Foundry. |
| Ruční vektorizace | Spravujte sami rozdělení dat na části a jejich vektorizaci. Při indexování nasdílíte prevectorizované dokumenty do vektorových polí v indexu vyhledávání. Pro dotazování zadáte do vyhledávacího webu předpočítané vektory . Ukázky tohoto přístupu najdete v úložišti GitHubu azure-search-vector-samples . |
Pro většinu scénářů doporučujeme integrovanou vektorizaci. I když můžete použít libovolný podporovaný model vkládání, tento článek používá modely Azure OpenAI pro ilustraci.
Způsob použití vložených modelů v vektorových dotazech
Vložené modely generují vektory pro vstupy dotazů i výstupy dotazu. Mezi vstupy dotazů patří:
Text nebo obrázky, které se během zpracování dotazů převedou na vektory. V rámci integrované vektorizace provádí vektorizátor tuto úlohu.
Předpočítané vektory. Tyto vektory můžete vygenerovat předáním vstupu dotazu do modelu vkládání podle vašeho výběru. Abyste se vyhnuli omezování rychlosti, implementujte ve své úloze logiku opakování. Naše ukázka v Pythonu používá tenacity.
Na základě vstupu dotazu načte vyhledávací web odpovídající dokumenty z indexu vyhledávání. Tyto dokumenty jsou výstupy dotazu.
Váš vyhledávací index již musí obsahovat dokumenty, které obsahují jedno či více vektorových polí s embeddingy. Tyto vkládání můžete vytvořit prostřednictvím integrované nebo ruční vektorizace. Pokud chcete zajistit přesné výsledky, použijte stejný model vkládání pro indexování a dotazování.
Tipy k integraci embeddingového modelu
Identifikujte případy použití. Vyhodnoťte konkrétní případy použití, kdy integrace modelu vkládání pro funkce vektorového vyhledávání přidává do řešení hledání hodnotu. Mezi příklady patří vícemodální vyhledávání nebo porovnávání obsahu obrázků s textovým obsahem, vícejazyčným vyhledáváním a vyhledáváním podobnosti.
Navrhněte strategii dělení na bloky Modely vkládání mají omezení počtu tokenů, které přijímají, takže pro velké soubory je potřeba vytváření bloků dat .
Optimalizace nákladů a výkonu Vektorové vyhledávání je náročné na prostředky a podléhá maximálním limitům, takže vektorizujte pouze pole, která obsahují sémantický význam. Zmenšením velikosti vektoru uložíte více vektorů za stejnou cenu.
Zvolte správný model vkládání. Vyberte model pro váš případ použití, například vkládání slov pro vyhledávání textu nebo vkládání obrázků pro vizuální vyhledávání. Zvažte předem natrénované modely, jako je například vkládání textu ada-002 z OpenAI nebo rozhraní REST API pro načítání obrázků z Azure Vision in Foundry Tools.
Normalizuje délku vektoru. Pokud chcete zvýšit přesnost a výkon vyhledávání podobnosti, normalizujete délky vektorů před jejich uložením do indexu vyhledávání. Většina předem natrénovaných modelů je již normalizována.
Dolaďte model. V případě potřeby vylaďte model v datech specifických pro vaši doménu, abyste zlepšili jeho výkon a relevanci pro vaši vyhledávací aplikaci.
Otestujte a iterujte. Průběžně testujte a upřesněte integraci modelu vkládání, abyste dosáhli požadovaného výkonu vyhledávání a spokojenosti uživatelů.
Vytvořte prostředky ve stejné oblasti
I když integrovaná vektorizace s vloženými modely Azure OpenAI nevyžaduje, aby prostředky byly ve stejné oblasti, může použití stejné oblasti zlepšit výkon a snížit latenci.
Chcete-li pro své prostředky použít stejnou oblast:
Zkontrolujte regionální dostupnost modelů vkládání textu.
Zkontrolujte regionální dostupnost služby Azure AI Vyhledávač.
Ve stejné oblasti vytvořte prostředek Azure OpenAI a službu Azure AI Vyhledávač.
Tip
Chcete použít sémantické řazení pro hybridní dotazy nebo model strojového učení ve vlastní dovednosti pro rozšiřování AI? Zvolte oblast Azure AI Vyhledávač, která tyto funkce poskytuje.
Volba modelu vkládání v Foundry
Když na portálu Foundry přidáte znalosti do pracovního postupu agenta, máte možnost vytvořit index vyhledávání. Průvodce vás provede jednotlivými kroky.
Jedním krokem je výběr modelu vložení, který bude vektorizovat obsah prostého textu. Podporují se následující modely:
- textové zapouzdření-3-malé
- vložení-textu-3-velké
- text-embedding-ada-002
- Cohere-embed-v3-english
- Cohere-embed-v3-multilingual
Váš model už musí být nasazený a musíte mít oprávnění k jeho přístupu. Další informace najdete v tématu Přehled nasazení pro modely Foundry.
Vygenerovat vektorové vložení pro ad hoc dotaz
Pokud nechcete používat integrované vektorizace, můžete ho ručně vygenerovat a vložit do vectorQueries.vector vlastnosti vektorového dotazu. Další informace najdete v tématu Vytvoření vektorového dotazu ve službě Azure AI Vyhledávač.
Následující příklady vycházejí z modelu text-embedding-ada-002. Nahraďte YOUR-API-KEY a YOUR-OPENAI-RESOURCE údaji o svém prostředku Azure OpenAI.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static async Task Main(string[] args)
{
var apiKey = "YOUR-API-KEY";
var apiBase = "https://YOUR-OPENAI-RESOURCE.openai.azure.com";
var apiVersion = "2024-02-01";
var engine = "text-embedding-ada-002";
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var requestBody = new
{
input = "How do I use C# in VS Code?"
};
var response = await client.PostAsync(
$"{apiBase}/openai/deployments/{engine}/embeddings?api-version={apiVersion}",
new StringContent(JsonConvert.SerializeObject(requestBody), Encoding.UTF8, "application/json")
);
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
Výstup je vektorové pole s 1 536 dimenzemi.