다음을 통해 공유


Semantic Kernel 및 Microsoft Foundry(클래식)를 사용하여 애플리케이션 개발

에만 적용됩니다: Foundry(클래식) 포털. 이 문서는 새 Foundry 포털에서 사용할 수 없습니다. 새 포털에 대해 자세히 알아봅니다.

비고

이 문서의 일부 링크는 현재 보고 있는 Foundry(클래식) 설명서 대신 새 Microsoft Foundry 설명서의 콘텐츠를 열 수 있습니다.

이 문서에서는 Microsoft Foundry 포털의 Foundry 모델 카탈로그에서 배포된 모델에서 Semantic Kernel를 사용하는 방법에 대해 알아봅니다.

중요합니다

Azure AI 유추 베타 SDK는 더 이상 사용되지 않으며 2026년 5월 30일에 사용 중지됩니다. 안정적인 OpenAI SDK를 사용하여 일반적으로 사용 가능한 OpenAI/v1 API 로 전환합니다. 기본 프로그래밍 언어로 SDK를 사용하여 마이그레이션 가이드 에 따라 OpenAI/v1로 전환합니다.

필수 조건

환경 구성

Foundry 포털에 배포된 언어 모델을 사용하려면 프로젝트에 연결하려면 엔드포인트 및 자격 증명이 필요합니다. 모델에서 필요한 정보를 얻으려면 다음 단계를 수행합니다.

팁 (조언)

Microsoft Foundry 포털에서 왼쪽 창을 사용자 지정할 수 있으므로 이러한 단계에 표시된 것과 다른 항목이 표시될 수 있습니다. 원하는 항목이 표시되지 않으면 왼쪽 창 아래쪽에 있는 ... 더 보기를 선택하십시오.

  1. Microsoft Foundry에 로그인합니다.

  2. 모델이 배포된 프로젝트가 아직 열려 있지 않으면 해당 프로젝트를 엽니다.

  3. 모델 + 엔드포인트로 이동하여 필수 구성 요소에 표시된 대로 배포한 모델을 선택합니다.

  4. 엔드포인트 URL과 키를 복사합니다.

    팁 (조언)

    Microsoft Entra ID 지원으로 모델을 배포한 경우 키가 필요하지 않습니다.

이 예제에서는 엔드포인트 URL과 키 모두에 환경 변수를 사용합니다.

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

엔드포인트 및 키를 구성한 후 엔드포인트에 연결할 클라이언트를 만듭니다.

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceChatCompletion

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

팁 (조언)

클라이언트는 환경 변수 AZURE_AI_INFERENCE_ENDPOINTAZURE_AI_INFERENCE_API_KEY를 자동으로 읽고 모델에 연결합니다. 생성자의 endpoint 엔드포인트 및 api_key 키 매개 변수를 사용하여 이들을 클라이언트에 직접 전달할 수 있습니다.

또는 엔드포인트에서 Microsoft Entra ID 지원하는 경우 다음 코드를 사용하여 클라이언트를 만들 수 있습니다.

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

비고

Microsoft Entra ID 사용하는 경우 엔드포인트가 해당 인증 방법으로 배포되었고 호출에 필요한 권한이 있는지 확인합니다.

Azure의 OpenAI 모델

Azure OpenAI 모델을 사용하는 경우 다음 코드를 사용하여 클라이언트를 만듭니다.

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

유추 매개 변수

클래스를 사용하여 유추를 수행하는 방법을 구성할 수 있습니다.AzureAIInferenceChatPromptExecutionSettings

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
)

서비스 호출

먼저 간단한 채팅 기록을 사용하여 채팅 완료 서비스를 호출합니다.

팁 (조언)

Semantic Kernel 비동기 라이브러리이므로 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)

또는 서비스에서 응답을 스트리밍할 수 있습니다.

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

장기 실행 대화 만들기

루프를 사용하여 장기 실행 대화를 만들 수 있습니다.

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

응답을 스트리밍하는 경우 다음 코드를 사용할 수 있습니다.

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

포함 모델 사용

이전 단계와 유사하게 환경을 구성하지만 AzureAIInferenceEmbeddings 클래스를 사용합니다.

from semantic_kernel.connectors.ai.azure_ai_inference import AzureAIInferenceTextEmbedding

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

다음 코드는 서비스에서 포함을 가져오는 방법을 보여 줍니다.

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

for embedding in embeddings:
    print(embedding)