Alkalmazások fejlesztése Szemantikus kernel és Microsoft Foundryvel (klasszikus)

Csak a következőkre vonatkozik:Öntödei (klasszikus) portál. Ez a cikk nem érhető el az új Foundry portálon. További információ az új portálról.

Megjegyzés

A cikkben szereplő hivatkozások megnyithatják a tartalmat az új Microsoft Foundry-dokumentációban a most megtekintett Foundry (klasszikus) dokumentáció helyett.

Ebből a cikkből megtudhatja, hogyan használhatja a Szemantikus kernel-t a Microsoft Foundry portál Öntödei modellkatalógusából üzembe helyezett modellekkel.

Fontos

Azure AI Inference béta SDK 2026. augusztus 26-án megszűnt. Váltson az általánosan elérhető OpenAI/v1 API-ra stabil OpenAI SDK-val. A migrálási útmutatót követve váltson OpenAI/v1 verzióra az előnyben részesített programozási nyelv SDK-jával.

Előfeltételek

A környezet konfigurálása

Az Foundry portálon üzembe helyezett nyelvi modellek használatához a végpontra és a hitelesítő adatokra van szüksége a projekthez való csatlakozáshoz. Kövesse az alábbi lépéseket a modellből szükséges információk lekéréséhez:

Tipp

Mivel a bal oldali ablaktáblát testre szabhatja a Microsoft Foundry portálon, az alábbi lépéseknél eltérő elemeket láthat. Ha nem látja, hogy mit keres, válassza a ... Továbbiak a bal oldali panel alján.

  1. Jelentkezzen be Microsoft Foundry.

  2. Nyissa meg azt a projektet, amelyben a modell telepítve van, ha még nincs megnyitva.

  3. Lépjen a Modellek + végpontok elemre, és válassza ki az előfeltételekben megadott modellt.

  4. Másolja ki a végpont URL-címét és a kulcsot.

    Tipp

    Ha Microsoft Entra ID támogatással telepítette a modellt, nincs szüksége kulcsra.

Ez a példa környezeti változókat használ mind a végpont URL-címéhez, mind a kulcshoz:

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

A végpont és a kulcs konfigurálása után hozzon létre egy ügyfelet a végponthoz való csatlakozáshoz:

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion

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

Tipp

A kliens automatikusan felolvassa a környezeti változókat AZURE_AI_INFERENCE_ENDPOINT és AZURE_AI_INFERENCE_API_KEY a modellhez való csatlakozáshoz. Ehelyett közvetlenül az ügyfélnek adhatja át a végpontot és a kulcsot a endpoint konstruktoron lévő paraméterek és api_key paraméterek használatával.

Amennyiben a végpont támogatja a Microsoft Entra ID-t, az alábbi kóddal hozhatja létre a klienst:

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

Megjegyzés

Ha Microsoft Entra ID használ, győződjön meg arról, hogy a végpont ezzel a hitelesítési módszerrel lett üzembe helyezve, és rendelkezik a meghívásához szükséges engedélyekkel.

Azure OpenAI-modellek

Ha Azure OpenAI-modellt használ, az ügyfél létrehozásához használja a következő kódot:

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"],
    ),
)

Következtetési paraméterek

A AzureAIInferenceChatPromptExecutionSettings osztály használatával konfigurálhatja, hogyan hajtsák végre a következtetést.

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
)

A szolgáltatás meghívása

Először hívja meg a csevegés-befejező szolgáltatást egy egyszerű csevegési előzményekkel:

Tipp

Szemantikus kernel aszinkron kódtár, ezért a kód futtatásához az asyncio kódtárat kell használnia.

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)

Másik lehetőségként streamelheti a választ a szolgáltatásból:

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])

Hosszú ideig futó beszélgetés létrehozása

Létrehozhat egy hosszú ideig tartó beszélgetést egy ciklus használatával:

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:> "))

Ha streameli a választ, a következő kódot használhatja:

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:> "))

Beágyazási modellek használata

Konfigurálja a környezetet az előző lépésekhez hasonlóan, de használja az osztályt AzureAIInferenceEmbeddings :

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceTextEmbedding

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

Az alábbi kód bemutatja, hogyan kérhet le beágyazást a szolgáltatásból:

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

for embedding in embeddings:
    print(embedding)