Sdílet prostřednictvím


Povolení sémantické mezipaměti pro rozhraní API LLM ve službě Azure API Management

PLATÍ PRO: Všechny úrovně služby API Management

Povolte sémantické ukládání odpovědí na požadavky rozhraní LLM API, aby se snížila šířka pásma a požadavky na zpracování uložené na back-endových rozhraních API a snížila latence vnímaná příjemci rozhraní API. Při použití sémantického ukládání do mezipaměti můžete vrátit odpovědi uložené v mezipaměti pro stejné a významově podobné výzvy, přestože text není identický. Základní informace najdete v kurzu: Použití Azure Managed Redis jako sémantické mezipaměti.

Poznámka:

Kroky konfigurace v tomto článku ukazují, jak povolit sémantické ukládání do mezipaměti pro rozhraní API přidaná do služby API Management z Azure OpenAI v modelech Microsoft Foundry. Podobným postupem můžete 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 nebo s modely kompatibilními s OpenAI, které obsluhují poskytovatelé odvozování třetích stran.

Požadavky

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řte backend pro API embeddingů

Vytvořte backend prostředek pro nasazení API embeddingu s následujícím nastavením:

  • Název – název podle vašeho výběru, například embeddings-backend. Tento název použijete k odkazu na backend v zásadách.

  • Typ – vyberte vlastní adresu URL.

  • Adresa URL kódu za běhu – URL nasazení rozhraní API pro vkládání v Azure OpenAI, podobně jako: (bez parametrů dotazu).

  • Přihlašovací údaje pro autorizaci – Přejděte na kartu Spravovaná identita .

    • Identita klienta – Vyberte identitu přiřazenou systémem nebo zadejte ID klienta spravované identity přiřazené uživatelem.
    • ID prostředku – Zadejte https://cognitiveservices.azure.com/ pro Azure OpenAI.

Testování back-endu vkládání

Pokud chcete otestovat embedding backend, vytvořte operaci rozhraní API pro Azure OpenAI API.

  1. Na kartě Návrh rozhraní API vyberte + Přidat operaci.
  2. Zadejte zobrazovaný název, například Embeddings, a volitelně název operace.
  3. V části Front-end v adrese URL vyberte POST a zadejte cestu /.
  4. Na kartě Záhlaví přidejte požadované záhlaví s názvem Content-Type a hodnotou application/json.
  5. Vyberte Uložit.

V části Příchozí zpracování operace rozhraní API nakonfigurujte následující zásady. V zásadě set-backend-service nahraďte název backendu, 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 dotazu api-version 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. Příklad odpovědi:

{
    "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

Pokud chcete povolit sémantické ukládání do mezipaměti pro rozhraní API Azure OpenAI ve službě Azure API Management, použijte následující zásady: jednu pro kontrolu mezipaměti před odesláním požadavků (vyhledávání) a další pro ukládání odpovědí pro budoucí opakované použití (úložiště):

  • V části Příchozí zpracování pro rozhraní API přidejte politiku azure-openai-semantic-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.15"
        embeddings-backend-id="embeddings-backend"
        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>
    <rate-limit calls="10" renewal-period="60" />
    

    Poznámka:

    Po vyhledávání cache přidejte politiku omezení rychlosti (nebo politiku omezení podle klíčů ), která pomůže omezit počet hovorů a zabrání přetížení backendové služby v případě, že cache není dostupná.

  • V části Odchozí zpracování rozhraní API přidejte zásadu azure-openai-semantic-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 llm-semantic-cache-store.

    Příklad:

    <azure-openai-semantic-cache-store duration="60" />
    

Potvrdit 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žívá 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.

score-threshold Upravte atribut v zásadách vyhledávání a určete, jak přesně příchozí výzva musí odpovídat výzvě uložené v mezipaměti, aby se vrátila uložená odpověď. Nižší prahová hodnota skóre znamená, že dotazy musí mít vyšší sémantickou podobnost, aby se vrátily odpovědi uložené v mezipaměti. Výzvy s skóre nad prahovou hodnotou nepoužívají odpověď uloženou v mezipaměti.

Pokud se například mezipaměť použije, oddíl Výstup obsahuje položky podobné následujícímu snímku obrazovky:

Snímek obrazovky s trasováním žádostí v Azure portálu.