다음을 통해 공유


.NET Aspire Azure OpenAI 통합

이 문서에서는 .NET AspireAzureOpenAIclient사용하는 방법을 알아봅니다. DI(종속성 주입) 컨테이너에 AzureOpenAI 또는 OpenAI 기능을 사용하기 위해 OpenAIClient을 등록하는 데 Aspire.Azure.AI.OpenAI 라이브러리가 사용됩니다. 해당 로깅 및 원격 분석을 사용하도록 설정합니다.

OpenAIClient사용에 대한 자세한 내용은 의 빠른 시작 가이드를 참조하십시오. 그런 다음 AzureOpenAI 서비스를 사용하여 텍스트 생성을 시작하십시오.

시작

.NET Aspire Azure OpenAI 통합을 시작하려면 📦Aspire설치합니다.Azure. AI. client-consuming 프로젝트, 즉 AzureOpenAIclient사용하는 애플리케이션의 프로젝트에서 NuGet 패키지를OpenAI.

dotnet add package Aspire.Azure.AI.OpenAI

자세한 내용은 dotnet add package 또는 응용 프로그램에서 패키지 종속성을 관리하기 .NET를 참조하십시오.

사용 예시

client사용 중인 프로젝트의 Program.cs 파일에서 확장 메서드를 호출하여 종속성 주입 컨테이너를 통해 사용할 OpenAIClient 등록합니다. 메서드는 연결 이름 매개 변수를 사용합니다.

builder.AddAzureOpenAIClient("openAiConnectionName");

앞의 코드에서 AddAzureOpenAIClient 메서드는 DI 컨테이너에 OpenAIClient 추가합니다. openAiConnectionName 매개 변수는 구성에서 연결 문자열의 이름입니다. 그런 다음 종속성 주입을 사용하여 OpenAIClient 인스턴스를 검색할 수 있습니다. 예를 들어 예제 서비스에서 연결을 검색하려면 다음을 수행합니다.

public class ExampleService(OpenAIClient client)
{
    // Use client...
}

앱 호스트 사용

IDistributedApplicationBuilder에 Azure 호스팅 지원을 추가하려면, 앱 호스트 프로젝트에서 📦Aspire.Hosting.Azure.CognitiveServices NuGet 패키지를 설치합니다.

dotnet add package Aspire.Hosting.Azure.CognitiveServices

앱 호스트 프로젝트에서 AddAzureOpenAI같은 다음 메서드를 사용하여 AzureOpenAI 리소스를 등록합니다.

var builder = DistributedApplication.CreateBuilder(args);

var openai = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureOpenAI("openAiConnectionName")
    : builder.AddConnectionString("openAiConnectionName");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(openai);

AddAzureAIOpenAI 메서드는 ConnectionStrings:openAiConnectionName 구성 키 아래의 앱 호스트 구성(예: "사용자 비밀")에서 연결 정보를 읽습니다. WithReference 메서드는 해당 연결 정보를 ExampleProject 프로젝트의 openAiConnectionName 연결 문자열에 전달합니다. ExampleProject의 Program.cs 파일에서 다음을 사용하여 연결을 사용할 수 있게 됩니다.

builder.AddAzureAIOpenAI("openAiConnectionName");

구성

.NET Aspire Azure OpenAI 통합은 프로젝트의 요구 사항 및 규칙에 따라 연결을 구성하는 여러 옵션을 제공합니다.

연결 문자열 사용

ConnectionStrings 구성 섹션에서 연결 문자열을 사용하는 경우 builder.AddAzureAIOpenAI호출할 때 연결 문자열의 이름을 제공할 수 있습니다.

builder.AddAzureAIOpenAI("openAiConnectionName");

연결 문자열은 ConnectionStrings 구성 섹션에서 검색되며, 기본 Azure 자격 증명과 함께 사용되는 계정 엔드포인트 또는 계정 키가 있는 연결 문자열과 함께 사용되는 두 가지 형식이 지원됩니다.

계정 엔드포인트

권장되는 방법은 AzureOpenAISettings.Credential 속성과 함께 작동하는 엔드포인트사용하여 연결을 설정하는 것입니다. 자격 증명이 구성되지 않은 경우 DefaultAzureCredential 사용됩니다.

{
  "ConnectionStrings": {
    "openAiConnectionName": "https://{account_name}.openai.azure.com/"
  }
}

자세한 내용은 키없는 사용 참조하세요.

연결 문자열

또는 사용자 지정 연결 문자열을 사용할 수 있습니다.

{
  "ConnectionStrings": {
    "openAiConnectionName": "Endpoint=https://{account_name}.openai.azure.com/;Key={account_key};"
  }
}

비AzureOpenAI 서비스에 연결하려면 Endpoint 속성을 삭제하고 키 속성만 설정하여 API 키설정합니다.

구성 공급자 사용

.NET Aspire Azure OpenAI 통합은 Microsoft.Extensions.Configuration지원합니다. 구성에서 Aspire:Azure:AI:OpenAI 키를 사용해 AzureOpenAISettings을 로드합니다. 몇 가지 옵션을 구성하는 예제 appsettings.json:

{
  "Aspire": {
    "Azure": {
      "AI": {
        "OpenAI": {
          "DisableTracing": false,
        }
      }
    }
  }
}

인라인 대리자를 사용하세요

또한 Action<AzureOpenAISettings> configureSettings 대리자를 전달하여 일부 또는 모든 옵션을 인라인으로 설정할 수 있으며, 예를 들어 코드에서 추적을 비활성화할 수 있습니다.

builder.AddAzureAIOpenAI(
    "openAiConnectionName",
    static settings => settings.DisableTracing = true);

AddAzureAIOpenAI 메서드의 선택적 Action<IAzureClientBuilder<OpenAIClient, OpenAIClientOptions>> configureClientBuilder 매개 변수를 사용하여 OpenAIClientOptions를 설정할 수도 있습니다. 예를 들어, 이 client의 client ID를 설정하려면 다음 단계를 따르세요.

builder.AddAzureAIOpenAI(
    "openAiConnectionName",
    configureClientBuilder: builder => builder.ConfigureOptions(
        options => options.Diagnostics.ApplicationId = "CLIENT_ID"));

관찰 가능성 및 원격 분석

통합은 로깅, 추적 및 메트릭 구성을 자동으로 설정하며, 이를 관찰성핵심 요소라고도 . 통합 관찰 가능성 및 원격 분석에 대한 자세한 내용은 .NET.NET Aspire 통합 개요참조하세요. 지원 서비스에 따라 일부 통합은 이러한 기능 중 일부만 지원할 수 있습니다. 예를 들어 일부 통합은 로깅 및 추적을 지원하지만 메트릭은 지원하지 않습니다. 구성 섹션에 제시된 기술을 사용하여 원격 분석 기능을 사용하지 않도록 설정할 수도 있습니다.

로깅

.NET Aspire Azure OpenAI 통합은 다음 로그 범주를 사용합니다.

  • Azure
  • Azure.Core
  • Azure.Identity

참고 자료