Rozhraní API pro odvozování modelů Azure AI | Azure AI Studio

Důležité

Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Odvozování modelů Azure AI je rozhraní API, které zpřístupňuje společnou sadu funkcí pro základní modely a které můžou vývojáři používat k využívání predikcí z různorodé sady modelů jednotným a konzistentním způsobem. Vývojáři můžou mluvit s různými modely nasazenými v Azure AI Studiu beze změny základního kódu, který používají.

Zaměstnanecké výhody

Základní modely, jako jsou jazykové modely, skutečně v posledních letech učinily pozoruhodné kroky. Tyto pokroky způsobily revoluci v různých oblastech, včetně zpracování přirozeného jazyka a počítačového zpracování obrazu, a povolily aplikace, jako jsou chatovací roboti, virtuální asistenti a služby překladu jazyků.

I když základní modely excelují v konkrétních doménách, nemají jednotnou sadu funkcí. Některé modely jsou lepší v určitém úkolu a dokonce i ve stejném úkolu, některé modely můžou k problému přistupovat jedním způsobem, zatímco jiné v jiném. Vývojáři můžou tuto rozmanitost využít pomocí správného modelu pro správnou úlohu , která jim umožní:

  • Zvýšení výkonu v konkrétní podřízené úloze
  • Efektivnější modely používejte pro jednodušší úlohy.
  • Používejte menší modely, které můžou běžet rychleji u konkrétních úloh.
  • Vytvořte několik modelů pro vývoj inteligentních prostředí.

Jednotné využívání základních modelů umožňuje vývojářům realizovat všechny tyto výhody bez obětování přenositelnosti nebo změny základního kódu.

Dostupnost

Rozhraní API pro odvozování modelů Azure AI je k dispozici v následujících modelech:

Modely nasazené do koncových bodů rozhraní API bez serveru:

Modely nasazené do spravovaného odvozování:

Rozhraní API je kompatibilní s nasazeními modelu Azure OpenAI.

Poznámka:

Rozhraní API pro odvozování modelů Azure AI je dostupné ve spravovaném odvozování (spravované online koncové body) pro modely nasazené po 24. červnu 2024. Pokud chcete přejít k rozhraní API, nasaďte koncový bod znovu, pokud byl model nasazen před tímto datem.

Možnosti

Následující část popisuje některé možnosti, které rozhraní API zveřejňuje. Úplnou specifikaci rozhraní API najdete v referenční části.

Modality

Rozhraní API označuje, jak můžou vývojáři využívat předpovědi pro následující způsoby:

Podpora sady SDK pro odvození

Pomocí zjednodušených klientů odvozování v jazyce podle vašeho výběru můžete využívat předpovědi z modelů, na kterých běží rozhraní API pro odvozování modelů Azure AI.

Nainstalujte balíček azure-ai-inference pomocí správce balíčků, například pip:

pip install azure-ai-inference

Pak můžete balíček použít k využívání modelu. Následující příklad ukazuje, jak vytvořit klienta pro zpracování dokončení chatu:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential

model = ChatCompletionsClient(
    endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
    credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)

Pokud používáte koncový bod s podporou id Entra, můžete vytvořit klienta následujícím způsobem:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import AzureDefaultCredential

model = ChatCompletionsClient(
    endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
    credential=AzureDefaultCredential(),
)

Projděte si naše ukázky a přečtěte si referenční dokumentaci k rozhraní API, abyste mohli začít.

Rozšiřitelnost

Rozhraní API pro odvozování modelů Azure AI určuje sadu způsobů a parametrů, které se modely můžou přihlásit k odběru. Některé modely ale můžou mít další možnosti, které rozhraní API označuje. V těchto případech rozhraní API umožňuje vývojáři předat je jako další parametry v datové části.

Když nastavíte hlavičku extra-parameters: pass-through, rozhraní API se pokusí předat jakýkoli neznámý parametr přímo do základního modelu. Pokud model dokáže tento parametr zpracovat, požadavek se dokončí.

Následující příklad ukazuje požadavek, který předává parametr safe_prompt podporovaný nástrojem Mistral-Large, který není zadaný v rozhraní API pro odvozování modelů Azure AI.

from azure.ai.inference.models import SystemMessage, UserMessage

response = model.complete(
    messages=[
        SystemMessage(content="You are a helpful assistant."),
        UserMessage(content="How many languages are in the world?"),
    ],
    model_extras={
        "safe_mode": True
    }
)

print(response.choices[0].message.content)

Tip

Pokud používáte sadu Azure AI Inference SDK, nakonfigurujete model_extras požadavek extra-parameters: pass-through automaticky za vás.

Poznámka:

Výchozí hodnota extra-parameters je error , která vrátí chybu, pokud je v datové části uveden dodatečný parametr. Případně můžete nastavit extra-parameters: drop , aby v požadavku vyhodil jakýkoli neznámý parametr. Tuto funkci použijte v případě, že odesíláte požadavky s dodatečnými parametry, které znáte, ale chcete, aby se požadavek přesto dokončil. Typickým příkladem tohoto parametru je indikující seed parametr.

Modely s různorodou sadou funkcí

Rozhraní API pro odvozování modelů Azure AI označuje obecnou sadu funkcí, ale každý z těchto modelů se může rozhodnout je implementovat nebo ne. V těchto případech se vrátí konkrétní chyba, kdy model nemůže podporovat konkrétní parametr.

Následující příklad ukazuje odpověď na žádost o dokončení chatu označující parametr reponse_format a žádost o odpověď ve JSON formátu. V tomto příkladu se uživateli vrátí chyba 422, protože model takovou schopnost nepodporuje.

import json
from azure.ai.inference.models import SystemMessage, UserMessage, ChatCompletionsResponseFormatJSON
from azure.core.exceptions import HttpResponseError

try:
    response = model.complete(
        messages=[
            SystemMessage(content="You are a helpful assistant."),
            UserMessage(content="How many languages are in the world?"),
        ],
        response_format=ChatCompletionsResponseFormatJSON()
    )
except HttpResponseError as ex:
    if ex.status_code == 422:
        response = json.loads(ex.response._content.decode('utf-8'))
        if isinstance(response, dict) and "detail" in response:
            for offending in response["detail"]:
                param = ".".join(offending["loc"])
                value = offending["input"]
                print(
                    f"Looks like the model doesn't support the parameter '{param}' with value '{value}'"
                )
    else:
        raise ex

Tip

Vlastnost můžete zkontrolovat details.loc , abyste porozuměli umístění parametru pro přesměrování a details.input zobrazili hodnotu, která byla předána v požadavku.

Bezpečnost obsahu

Rozhraní API pro odvozování modelů Azure AI podporuje zabezpečení obsahu Azure AI. Při použití nasazení s bezpečností obsahu Azure AI se vstupy a výstupy procházejí sadou klasifikačních modelů zaměřených na detekci a zabránění výstupu škodlivého obsahu. Systém filtrování obsahu (Preview) detekuje a provádí akce s konkrétními kategoriemi potenciálně škodlivého obsahu ve vstupních výzev i dokončení výstupu.

Následující příklad ukazuje odpověď na žádost o dokončení chatu, která aktivovala bezpečnost obsahu.

from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage
from azure.core.exceptions import HttpResponseError

try:
    response = model.complete(
        messages=[
            SystemMessage(content="You are an AI assistant that helps people find information."),
            UserMessage(content="Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."),
        ]
    )

    print(response.choices[0].message.content)

except HttpResponseError as ex:
    if ex.status_code == 400:
        response = json.loads(ex.response._content.decode('utf-8'))
        if isinstance(response, dict) and "error" in response:
            print(f"Your request triggered an {response['error']['code']} error:\n\t {response['error']['message']}")
        else:
            raise ex
    else:
        raise ex

Začínáme

Rozhraní API pro odvozování modelů Azure AI se v současné době podporuje v určitých modelech nasazených jako koncové body bezserverového rozhraní API a spravovaných online koncových bodů. Nasaďte některý z podporovaných modelů a použijte stejný kód k využívání jejich předpovědí.

Klientská knihovna azure-ai-inference odvozuje modely AI nasazené nástrojem Azure AI Studio a Azure Machine Learning Studio, včetně dokončování chatu. Podporuje koncové body bezserverového rozhraní API a spravované výpočetní koncové body (dříve označované jako spravované online koncové body).

Projděte si naše ukázky a přečtěte si referenční dokumentaci k rozhraní API, abyste mohli začít.