다음을 통해 공유


The Azure AI Foundry SDK

Azure AI Foundry SDK는 Azure에서 AI 애플리케이션 개발을 간소화하도록 설계된 포괄적인 도구 체인입니다. 개발자는 다음을 수행할 수 있습니다.

  • 단일 인터페이스를 통해 다양한 모델 공급자에서 인기 있는 모델에 액세스
  • 모델, 데이터 및 AI 서비스를 쉽게 결합하여 AI 기반 애플리케이션을 빌드합니다.
  • 개발, 테스트 및 프로덕션 환경에서 애플리케이션 품질 및 안전성 평가, 디버그 및 개선

Azure AI Foundry SDK는 함께 작동하도록 설계된 패키지 및 서비스 집합입니다. Azure AI Projects 클라이언트 라이브러리사용하여 단일 프로젝트 클라이언트 및 연결 문자열 통해 여러 서비스를 쉽게 사용할 수 있습니다. 서비스 및 SDK를 자체으로 사용하고 서비스에 직접 연결할 수도 있습니다.

바로 이동하여 앱 빌드를 시작하려면 다음을 확인하세요.

프로젝트 시작

Azure AI Foundry SDK 사용을 시작하는 가장 좋은 방법은 프로젝트를 사용하는 것입니다. AI 프로젝트는 AI 애플리케이션을 빌드하는 데 필요한 다양한 데이터, 자산 및 서비스를 함께 연결합니다. AI 프로젝트 클라이언트를 사용하면 단일 연결 문자열 사용하여 코드에서 이러한 프로젝트 구성 요소에 쉽게 액세스할 수 있습니다.

아직 없는 경우 먼저 단계에 따라 AI 프로젝트를 만듭니다.

AI 프로젝트에 액세스하는 데 사용하는 것과 동일한 계정을 사용하여 Azure CLI로 로그인합니다.

az login

Azure AI 프로젝트 클라이언트 라이브러리를 설치합니다.

pip install azure-ai-projects azure-identity

코드에서 프로젝트 클라이언트를 만듭니다.

from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient

project_connection_string="your_connection_string"

project = AIProjectClient.from_connection_string(
  conn_str=project_connection_string,
  credential=DefaultAzureCredential())
dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity

using 문을 추가합니다.

using Azure.Identity;
using Azure.AI.Projects;

코드에서 프로젝트 클라이언트를 만듭니다.

var connectionString = "<your_connection_string>";
var projectClient = new AIProjectClient(connectionString, new DefaultAzureCredential());

프로젝트의 개요 페이지에서 프로젝트 연결 문자열 복사하고 위의 연결 문자열 값을 업데이트합니다.

프로젝트 클라이언트를 만든 후에는 다음 섹션의 기능에 클라이언트를 사용할 수 있습니다.

참조샘플을 확인해야 합니다.

참조샘플을 확인해야 합니다.

Azure OpenAI Service

Azure OpenAI 서비스는 Azure의 데이터 상주, 확장성, 안전성, 보안 및 엔터프라이즈 기능을 사용하여 GPT-4o, GPT-4o mini, GPT-4, GPT-4 Turbo with Vision, DALLE-3, Whisper 및 Embeddings 모델 시리즈를 포함한 OpenAI의 모델에 대한 액세스를 제공합니다.

OpenAI SDK를 사용하는 코드가 있는 경우 Azure OpenAI 서비스를 사용하도록 코드를 쉽게 대상으로 지정할 수 있습니다. 먼저 OpenAI SDK를 설치합니다.

pip install openai

OpenAI SDK를 사용하는 기존 코드가 있는 경우 프로젝트 클라이언트를 사용하여 프로젝트의 Azure OpenAI 연결을 사용하는 클라이언트를 만들 AzureOpenAI 수 있습니다.

openai = project.inference.get_azure_openai_client(api_version="2024-06-01")
response = openai.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful writing assistant"},
        {"role": "user", "content": "Write me a poem about flowers"},
    ]
)

print(response.choices[0].message.content)
dotnet add package Azure.AI.OpenAI

using 문을 추가합니다.

using OpenAI.Chat;
using Azure.AI.OpenAI;

OpenAI SDK를 사용하는 기존 코드가 있는 경우 프로젝트 클라이언트를 사용하여 프로젝트의 Azure OpenAI 연결을 사용하는 클라이언트를 만들 AzureOpenAI 수 있습니다.

var connections = projectClient.GetConnectionsClient();
ConnectionResponse connection = connections.GetDefaultConnection(ConnectionType.AzureOpenAI, withCredential: true);
var properties = connection.Properties as ConnectionPropertiesApiKeyAuth;

if (properties == null) {
    throw new Exception("Invalid auth type, expected API key auth");
}

// Create and use an Azure OpenAI client
AzureOpenAIClient azureOpenAIClient = new(
    new Uri(properties.Target),
    new AzureKeyCredential(properties.Credentials.Key));

// This must match the custom deployment name you chose for your model
ChatClient chatClient = azureOpenAIClient.GetChatClient("gpt-4o-mini");

ChatCompletion completion = chatClient.CompleteChat(
    [
        new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
        new UserChatMessage("Does Azure OpenAI support customer managed keys?"),
        new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"),
        new UserChatMessage("Do other Azure AI services support this too?")
    ]);

Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");

Azure OpenAI 서비스에 대해 Azure OpenAI SDK를 직접 사용하고 있는 경우 이 프로젝트는 나머지 Azure AI Foundry 기능과 함께 Azure OpenAI 서비스 기능을 사용하는 편리한 방법을 제공합니다.

Azure AI 모델 유추 서비스

Azure AI 모델 유추 서비스는 OpenAI, Microsoft, Meta 등과 같은 주요 공급자의 강력한 모델에 대한 액세스를 제공합니다. 이러한 모델은 콘텐츠 생성, 요약 및 코드 생성과 같은 작업을 지원합니다.

모델 유추 서비스를 사용하려면 먼저 프로젝트에 AI Services 연결이 있는지 확인합니다(관리 센터).

클라이언트 라이브러리를 azure-ai-inference 설치합니다.

pip install azure-ai-inference

프로젝트 클라이언트를 사용하여 구성 및 인증 ChatCompletionsClient 을 받거나 EmbeddingsClient다음을 수행할 수 있습니다.

# get an chat inferencing client using the project's default model inferencing endpoint
chat = project.inference.get_chat_completions_client()

# run a chat completion using the inferencing client
response = chat.complete(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful writing assistant"},
        {"role": "user", "content": "Write me a poem about flowers"},
    ]
)

print(response.choices[0].message.content)
dotnet add package Azure.AI.Inference

using 문을 추가합니다.

using Azure.AI.Inference;

프로젝트 클라이언트를 사용하여 구성 및 인증 ChatCompletionsClient 을 받거나 EmbeddingsClient다음을 수행할 수 있습니다.

var connectionString = Environment.GetEnvironmentVariable("AIPROJECT_CONNECTION_STRING");
var projectClient = new AIProjectClient(connectionString, new DefaultAzureCredential());

ChatCompletionsClient chatClient = projectClient.GetChatCompletionsClient();

var requestOptions = new ChatCompletionsOptions()
{
    Messages =
        {
            new ChatRequestSystemMessage("You are a helpful assistant."),
            new ChatRequestUserMessage("How many feet are in a mile?"),
        },
    Model = "gpt-4o-mini"
};

Response<ChatCompletions> response = chatClient.Complete(requestOptions);
Console.WriteLine(response.Value.Content);

모델 이름을 유추 서비스 또는 Azure OpenAI 서비스에 배포한 모든 모델로 변경할 수 있습니다.

Azure AI 추론 클라이언트를 사용하는 방법에 대한 자세한 내용은 Azure AI 모델 추론 참조를 확인하세요.

프롬프트 템플릿

추론 클라이언트는 템플릿에서 프롬프트 메시지를 만들 수 있습니다. 템플릿을 사용하면 런타임에 사용할 수 있는 입력을 사용하여 프롬프트를 동적으로 생성할 수 있습니다.

프롬프트 템플릿을 사용하려면 패키지를 설치합니다 azure-ai-inference .

pip install azure-ai-inference

인라인 문자열에서 프롬프트 템플릿을 렌더링할 수 있습니다.

from azure.ai.inference.prompts import PromptTemplate

# create a prompt template from an inline string (using mustache syntax)
prompt_template = PromptTemplate.from_string(prompt_template="""
    system:
    You are a helpful writing assistant.
    The user's first name is {{first_name}} and their last name is {{last_name}}.

    user:
    Write me a poem about flowers
    """)

# generate system message from the template, passing in the context as variables
messages = prompt_template.create_messages(first_name="Jane", last_name="Doe")
print(messages)

참고 항목

선행 공백은 입력 문자열에서 자동으로 잘립니다.

이 코드는 채팅 완료 호출에 전달할 수 있는 메시지를 출력합니다.

[
  {'role': 'system', 'content': "You are a helpful writing assistant.\nThe user's first name is Jane and their last name is Doe."}
  {'role': 'user', 'content': 'Write me a poem about flowers'}
]

파일에서 프롬프트를 로드하여 파일에서 Prompty .prompty 모델 이름 및 매개 변수를 로드할 수도 있습니다.

from azure.ai.inference.prompts import PromptTemplate

prompt_template = PromptTemplate.from_prompty("myprompt.prompty")
messages = prompt_template.create_messages(first_name="Jane", last_name="Doe")

response = chat.complete(
    messages=messages,
    model=prompt_template.model_name,
    **prompt_template.parameters,
)

프로젝트에 연결된 Azure AI Search 리소스가 있는 경우 프로젝트 클라이언트를 사용하여 프로젝트 연결을 사용하여 Azure AI Search 클라이언트를 만들 수도 있습니다.

Azure AI Search 클라이언트 라이브러리를 설치합니다.

pip install azure-search-documents

검색 및/또는 검색 인덱스 클라이언트를 원하는 대로 인스턴스화합니다.

from azure.core.credentials import AzureKeyCredential
from azure.ai.projects.models import ConnectionType
from azure.search.documents import SearchClient
from azure.search.documents.indexes import SearchIndexClient

# use the project client to get the default search connection
search_connection = project.connections.get_default(
    connection_type=ConnectionType.AZURE_AI_SEARCH,
    with_credentials=True)

# Create a client to create and manage search indexes
index_client = SearchIndexClient(
    endpoint=search_connection.endpoint_url,
    credential=AzureKeyCredential(key=search_connection.key)
)

# Create a client to run search queries
search_client = SearchClient(
    index_name="your_index_name",
    endpoint=search_connection.endpoint_url,
    credential=AzureKeyCredential(key=search_connection.key)
)
dotnet add package Azure.Search.Documents

using 문을 추가합니다.

using Azure.Search.Documents;
using Azure.Search.Documents.Models;

검색 및/또는 검색 인덱스 클라이언트를 원하는 대로 인스턴스화합니다.

var connections = projectClient.GetConnectionsClient();
var connection = connections.GetDefaultConnection(ConnectionType.AzureAISearch, withCredential: true).Value;

var properties = connection.Properties as ConnectionPropertiesApiKeyAuth;
if (properties == null) {
    throw new Exception("Invalid auth type, expected API key auth");
}

SearchClient searchClient = new SearchClient(
    new Uri(properties.Target),
    "products",
    new AzureKeyCredential(properties.Credentials.Key));

Azure AI Search 사용에 대한 자세한 내용은 Azure AI Search 설명서를 확인 하세요.

Azure AI 에이전트 서비스

Azure AI 에이전트 서비스는 개발자가 고품질의 확장 가능한 AI 에이전트를 안전하게 빌드, 배포 및 확장할 수 있도록 설계된 완전 관리형 서비스입니다. OpenAI, Microsoft 및 타사 공급자의 광범위한 모델, 도구 및 기능 에코시스템을 사용하여 Azure AI 에이전트 서비스를 사용하면 광범위한 생성 AI 사용 사례에 대한 에이전트를 빌드할 수 있습니다.

에이전트 에 액세스하려면 미리 보기에 등록합니다.

평가

프로젝트 클라이언트를 사용하여 Azure AI 평가 서비스와 평가자를 실행하는 데 필요한 모델에 쉽게 연결할 수 있습니다.

pip install azure-ai-evaluation

매개 변수를 project.scope 사용하여 다음을 인스턴스화할 수 있습니다.ViolenceEvaluator

from azure.ai.evaluation import ViolenceEvaluator
from azure.identity import DefaultAzureCredential

# Initializing Violence Evaluator with project information
violence_eval = ViolenceEvaluator(
    azure_ai_project=project.scope,
    credential=DefaultAzureCredential())

# Running Violence Evaluator on single input row
violence_score = violence_eval(query="what's the capital of france", response="Paris")
print(violence_score)

참고: 폭력 평가자를 실행하려면 프로젝트가 미국 동부 2, 스웨덴 중부, 미국 중북부, 프랑스 중부에 있어야 합니다.

자세한 내용은 SDK를 사용하여 평가를 확인하세요.

Azure AI 평가 패키지는 C#에 아직 사용할 수 없습니다. 평가에 프롬프트 및 의미 체계 커널을 사용하는 방법에 대한 샘플은 contoso-chat-csharp-prompty 샘플을 참조하세요.

추적

추적을 사용하도록 설정하려면 먼저 프로젝트에 Application Insights 리소스가 연결되어 있는지 확인합니다. 프로젝트의 추적 페이지로 이동하여 지침에 따라 Application Insights를 만들거나 연결합니다.

Azure Monitor OpenTelemetry 패키지를 설치합니다.

pip install azure-monitor-opentelemetry

다음 코드를 사용하여 Azure AI 유추 SDK의 계측 및 AI 프로젝트에 대한 로깅을 사용하도록 설정합니다.

from azure.monitor.opentelemetry import configure_azure_monitor

# Enable instrumentation of AI packages (inference, agents, openai, langchain)
project.telemetry.enable()

# Log traces to the project's application insights resource
application_insights_connection_string = project.telemetry.get_connection_string()
if application_insights_connection_string:
    configure_azure_monitor(connection_string=application_insights_connection_string)

추적은 아직 프로젝트 패키지에 통합되지 않았습니다. Azure AI 추론 패키지에서 추적을 계측하고 기록하는 방법에 대한 지침은 azure-sdk-for-dotnet을 참조 하세요.

다음은 Azure AI Foundry SDK에서 사용할 수 있는 다른 서비스 및 프레임워크에 대한 몇 가지 유용한 링크입니다.

Azure AI 서비스

클라이언트 라이브러리:

관리 라이브러리:

프레임워크

Azure Machine Learning

프롬프트 흐름

의미 체계 커널