Povolení sémantické mezipaměti pro rozhraní API Azure OpenAI ve službě Azure API Management
PLATÍ PRO: Basic v2 | Standard v2
Povolte sémantické ukládání odpovědí do požadavků rozhraní API Azure OpenAI, aby se snížily požadavky na šířku pásma a zpracování uložené na back-endových rozhraních API a nižší latenci, které uživatelé rozhraní API vnímali. Sémantické ukládání do mezipaměti můžete vrátit odpovědi uložené v mezipaměti pro stejné výzvy a také pro výzvy, které jsou podobné významu, i když text není stejný. Základní informace najdete v kurzu : Použití služby Azure Cache for Redis jako sémantické mezipaměti.
Poznámka:
Kroky konfigurace v tomto článku umožňují sémantické ukládání do mezipaměti pro rozhraní API Azure OpenAI. Tyto kroky je možné zobecnit, aby bylo možné povolit sémantické ukládání do mezipaměti pro odpovídající velká rozhraní API pro jazykový model (LLM), která jsou k dispozici prostřednictvím rozhraní API pro odvozování modelů Azure AI.
Požadavky
- Do instance služby API Management je potřeba přidat jedno nebo více rozhraní API služby Azure OpenAI. Další informace najdete v tématu Přidání rozhraní API služby Azure OpenAI do služby Azure API Management.
- Služba Azure OpenAI musí mít nasazení pro následující:
- Rozhraní API pro dokončování chatu (nebo rozhraní API pro dokončování) – Nasazení používané pro volání příjemců rozhraní API
- Rozhraní API pro vkládání – Nasazení používané pro sémantické ukládání do mezipaměti
- Instance služby API Management musí být nakonfigurovaná tak, aby používala ověřování spravované identity pro rozhraní API Azure OpenAI. Další informace najdete v tématu Ověřování a autorizace přístupu k rozhraním API Azure OpenAI pomocí služby Azure API Management .
- Azure Cache for Redis Enterprise Modul RediSearch musí být povolený v mezipaměti Redis Enterprise.
Poznámka:
Modul RediSearch můžete povolit pouze při vytváření nové mezipaměti Redis Enterprise. Do existující mezipaměti nemůžete přidat modul. Další informace
- Externí mezipaměť nakonfigurovaná v instanci služby Azure API Management Postup najdete v tématu Použití externí služby Azure Cache for Redis ve službě Azure API Management.
Testování nasazení rozhraní API chatu
Nejprve otestujte nasazení Azure OpenAI a ujistěte se, že rozhraní API pro dokončování chatu nebo rozhraní API chatu funguje podle očekávání. Postup najdete v tématu Import rozhraní API Azure OpenAI do služby Azure API Management.
Otestujte například rozhraní API chatu Azure OpenAI odesláním požadavku POST do koncového bodu rozhraní API s výzvou v textu požadavku. Odpověď by měla obsahovat dokončení výzvy. Příklad požadavku:
POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01
s textem požadavku:
{"messages":[{"role":"user","content":"Hello"}]}
Když požadavek proběhne úspěšně, odpověď zahrnuje dokončení zprávy chatu.
Vytvoření back-endu pro rozhraní API pro vkládání
Nakonfigurujte back-endový prostředek pro nasazení rozhraní API pro vkládání pomocí následujících nastavení:
- Název – název podle vašeho výběru, například
embeddings-backend
. Tento název použijete k odkazu na back-end v zásadách. - Typ – vyberte vlastní adresu URL.
- Adresa URL modulu runtime – adresa URL nasazení rozhraní API pro vkládání ve službě Azure OpenAI, podobně jako:
https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings
Testování back-endu
Pokud chcete otestovat back-end, vytvořte operaci rozhraní API pro rozhraní API služby Azure OpenAI:
- Na kartě Návrh rozhraní API vyberte + Přidat operaci.
- Zadejte zobrazovaný název a volitelně název operace.
- V části Front-end v adrese URL vyberte POST a zadejte cestu
/
. - Na kartě Záhlaví přidejte požadované záhlaví s názvem
Content-Type
a hodnotouapplication/json
. - Zvolte Uložit.
V části Příchozí zpracování operace rozhraní API nakonfigurujte následující zásady. V zásadách služby set-back-end nahraďte název back-endu, který jste vytvořili.
<policies>
<inbound>
<set-backend-service backend-id="embeddings-backend" />
<authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
[...]
</inbound>
[...]
</policies>
Na kartě Test otestujte operaci přidáním parametru api-version
dotazu s hodnotou, například 2024-02-01
. Zadejte platný text požadavku. Příklad:
{"input":"Hello"}
Pokud je požadavek úspěšný, odpověď obsahuje vektorovou reprezentaci vstupního textu:
{
"object": "list",
"data": [{
"object": "embedding",
"index": 0,
"embedding": [
-0.021829502,
-0.007157768,
-0.028619017,
[...]
]
}]
}
Konfigurace sémantických zásad ukládání do mezipaměti
Nakonfigurujte následující zásady, které umožňují sémantické ukládání do mezipaměti pro rozhraní API Azure OpenAI ve službě Azure API Management:
V části Příchozí zpracování pro rozhraní API přidejte zásadu vyhledávání azure-openai-smantic-cache-lookup. V atributu
embeddings-backend-id
zadejte back-end rozhraní API embeddings, který jste vytvořili.Poznámka:
Pokud povolíte sémantické ukládání do mezipaměti pro jiná rozhraní API pro velký jazykový model, použijte místo toho zásadu llm-sémantic-cache-lookup .
Příklad:
<azure-openai-semantic-cache-lookup score-threshold="0.8" embeddings-backend-id="embeddings-deployment" embeddings-backend-auth="system-assigned" ignore-system-messages="true" max-message-count="10"> <vary-by>@(context.Subscription.Id)</vary-by> </azure-openai-semantic-cache-lookup>
V části Odchozí zpracování rozhraní API přidejte zásadu úložiště azure-openai-smantic-cache-store.
Poznámka:
Pokud povolíte sémantické ukládání do mezipaměti pro jiná rozhraní API pro velké jazykové modely, použijte místo toho zásadu úložiště llm-sémantic-cache-store .
Příklad:
<azure-openai-semantic-cache-store duration="60" />
Potvrzení ukládání do mezipaměti
Pokud chcete ověřit, že sémantické ukládání do mezipaměti funguje podle očekávání, sledujte operaci dokončení testu nebo dokončení chatu pomocí testovací konzoly na portálu. Zkontrolujte, jestli se mezipaměť použila při následných pokusech. Přečtěte si další informace o trasování volání rozhraní API ve službě Azure API Management.
Pokud se například použila mezipaměť, oddíl Výstup obsahuje položky podobné položkám na následujícím snímku obrazovky: