Vývoj aplikací pomocí Sémantické jádro a Microsoft Foundry (classic)

Platí jenom pro:Portál Foundry (Classic). Tento článek není k dispozici pro nový portál Foundry. Přečtěte si další informace o novém portálu.

Poznámka

Odkazy v tomto článku můžou otevírat obsah v nové dokumentaci Microsoft Foundry místo dokumentace Foundry (classic), kterou si právě prohlížíte.

V tomto článku se dozvíte, jak používat Sémantické jádro s modely nasazenými z katalogu modelů Foundry na portálu Microsoft Foundry.

Důležité

Beta verze sady Azure AI Inference SDK byla ukončena dne 26. srpna 2026. Přepněte na obecně dostupné rozhraní API OpenAI/v1 se stabilní sadou OpenAI SDK. Podle průvodce migrací přepněte na OpenAI/v1 pomocí sady SDK pro váš preferovaný programovací jazyk.

Požadavky

  • Účet Azure s aktivním předplatným. Pokud ho nemáte, vytvořte si účet free Azure, který zahrnuje bezplatné zkušební předplatné.

  • Projekt Foundry, jak je vysvětleno v tématu Vytvoření projektu na portálu Foundry.

  • Nasazený model, který podporuje rozhraní API pro odvozování modelů AI Azure Tento článek používá Mistral-Large provozní prostředí. Můžete použít libovolný model. Pokud chcete použít možnosti vkládání v llamaIndex, potřebujete model vložení, jako je cohere-embed-v3-multilingual.

  • Nainstalovaný Python 3.10 nebo novější, včetně pipu.

  • Sémantické jádro nainstalován. Můžete použít následující příkaz:

    pip install semantic-kernel
    
  • Tento článek používá rozhraní API pro inferenci modelů, proto nainstalujte relevantní Azure závislosti. Můžete použít následující příkaz:

    pip install semantic-kernel[azure]
    

Konfigurace prostředí

Pokud chcete používat jazykové modely nasazené na portálu Foundry, potřebujete koncový bod a přihlašovací údaje pro připojení k projektu. Pokud chcete získat potřebné informace z modelu, postupujte takto:

Tip

Vzhledem k tomu, že na portálu Microsoft Foundry můžete usouložit levé podokno, může se zobrazit jiné položky, než je znázorněno v tomto postupu. Pokud nevidíte, co hledáte, vyberte ... Další v dolní části levého podokna.

  1. Přihlaste se k Microsoft Foundry.

  2. Otevřete projekt, ve kterém je model nasazený, pokud ještě není otevřený.

  3. Přejděte na Modely + koncové body a vyberte model, který jste nasadili, jak je uvedeno v předpokladech.

  4. Zkopírujte adresu URL koncového bodu a klíč.

    Tip

    Pokud jste model nasadili s podporou Microsoft Entra ID, nepotřebujete klíč.

Tento příklad používá proměnné prostředí pro adresu URL koncového bodu i klíč:

export AZURE_AI_INFERENCE_ENDPOINT="<your-model-endpoint-goes-here>"
export AZURE_AI_INFERENCE_API_KEY="<your-key-goes-here>"

Po nakonfigurování koncového bodu a klíče vytvořte klienta pro připojení ke koncovému bodu:

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion

chat_completion_service = AzureAIInferenceChatCompletion(ai_model_id="<deployment-name>")

Tip

Klient automaticky přečte proměnné prostředí AZURE_AI_INFERENCE_ENDPOINT a AZURE_AI_INFERENCE_API_KEY a poté se připojí k modelu. Místo toho můžete předat koncový bod a klíč přímo klientovi pomocí parametrů endpoint a api_key na konstruktoru.

Pokud váš koncový bod podporuje Microsoft Entra ID, můžete k vytvoření klienta použít následující kód:

export AZURE_AI_INFERENCE_ENDPOINT="<your-model-endpoint-goes-here>"
from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion

chat_completion_service = AzureAIInferenceChatCompletion(ai_model_id="<deployment-name>")

Poznámka

Pokud používáte Microsoft Entra ID, ujistěte se, že se koncový bod nasadil s danou metodou ověřování a že máte požadovaná oprávnění k jeho vyvolání.

modely Azure OpenAI

Pokud používáte model Azure OpenAI, vytvořte klienta pomocí následujícího kódu:

from azure.ai.inference.aio import ChatCompletionsClient
from azure.identity.aio import DefaultAzureCredential

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion

chat_completion_service = AzureAIInferenceChatCompletion(
    ai_model_id="<deployment-name>",
    client=ChatCompletionsClient(
        endpoint=f"{str(<your-azure-open-ai-endpoint>).strip('/')}/openai/deployments/{<deployment_name>}",
        credential=DefaultAzureCredential(),
        credential_scopes=["https://cognitiveservices.azure.com/.default"],
    ),
)

Parametry odvození

Způsob odvozování můžete nakonfigurovat pomocí AzureAIInferenceChatPromptExecutionSettings třídy:

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatPromptExecutionSettings

execution_settings = AzureAIInferenceChatPromptExecutionSettings(
    max_tokens=100,
    temperature=0.5,
    top_p=0.9,
    # extra_parameters={...},    # model-specific parameters
)

Volání služby

Nejprve zavolejte službu dokončování chatu s jednoduchou historií chatu:

Tip

Sémantické jádro je asynchronní knihovna, takže ke spuštění kódu je potřeba použít knihovnu asyncio.

import asyncio

async def main():
    ...

if __name__ == "__main__":
    asyncio.run(main())
from semantic_kernel.contents.chat_history import ChatHistory

chat_history = ChatHistory()
chat_history.add_user_message("Hello, how are you?")

response = await chat_completion_service.get_chat_message_content(
    chat_history=chat_history,
    settings=execution_settings,
)
print(response)

Alternativně můžete streamovat odpověď ze služby:

chat_history = ChatHistory()
chat_history.add_user_message("Hello, how are you?")

response = chat_completion_service.get_streaming_chat_message_content(
    chat_history=chat_history,
    settings=execution_settings,
)

chunks = []
async for chunk in response:
    chunks.append(chunk)
    print(chunk, end="")

full_response = sum(chunks[1:], chunks[0])

Vytvoření dlouhotrvající konverzace

Dlouhou konverzaci můžete vytvořit pomocí smyčky:

while True:
    response = await chat_completion_service.get_chat_message_content(
        chat_history=chat_history,
        settings=execution_settings,
    )
    print(response)
    chat_history.add_message(response)
    chat_history.add_user_message(user_input = input("User:> "))

Pokud streamujete odpověď, můžete použít následující kód:

while True:
    response = chat_completion_service.get_streaming_chat_message_content(
        chat_history=chat_history,
        settings=execution_settings,
    )

    chunks = []
    async for chunk in response:
        chunks.append(chunk)
        print(chunk, end="")

    full_response = sum(chunks[1:], chunks[0])
    chat_history.add_message(full_response)
    chat_history.add_user_message(user_input = input("User:> "))

Použití modelů vkládání

Nakonfigurujte prostředí podobně jako v předchozích krocích, ale použijte třídu AzureAIInferenceEmbeddings :

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceTextEmbedding

embedding_generation_service = AzureAIInferenceTextEmbedding(ai_model_id="<deployment-name>")

Následující kód ukazuje, jak získat embeddingy ze služby:

embeddings = await embedding_generation_service.generate_embeddings(
    texts=["My favorite color is blue.", "I love to eat pizza."],
)

for embedding in embeddings:
    print(embedding)