다음을 통해 공유


Azure Functions용 Azure OpenAI 확장

중요합니다

Azure Functions용 Azure OpenAI 확장은 현재 미리 보기 상태입니다.

Azure Functions용 Azure OpenAI 확장은 Azure OpenAI Service의 기능과 동작을 함수 코드 실행에 쉽게 통합할 수 있는 트리거 및 바인딩 집합을 구현합니다.

Azure Functions는 다른 Azure 서비스와 쉽게 연결할 수 있도록 일련의 트리거 및 바인딩을 제공하는 이벤트 기반 컴퓨팅 서비스입니다.

Azure OpenAI와 Functions 간의 통합을 통해 다음을 수행할 수 있는 함수를 빌드할 수 있습니다.

작업 트리거/바인딩 형식
콘텐츠 완성을 위해 표준 텍스트 프롬프트 사용 Azure OpenAI 텍스트 완성 입력 바인딩
도우미 요청에 응답하여 함수 호출 Azure OpenAI 도우미 트리거
도우미 만들기 Azure OpenAI 도우미가 출력 바인딩 만들기
도우미에게 메시지 보내기 Azure OpenAI 도우미 사후 입력 바인딩
도우미 기록 가져오기 Azure OpenAI 도우미 쿼리 입력 바인딩
텍스트 embedding 읽기 Azure OpenAI embedding 입력 바인딩
벡터 데이터베이스에 쓰기 Azure OpenAI embedding 출력 저장 바인딩
벡터 데이터베이스에서 읽기 Azure OpenAI 의미 체계 검색 입력 바인딩

확장 설치

설치하는 확장 NuGet 패키지는 함수 앱에서 사용 중인 C# 모드 진행 중 또는 격리된 작업자 프로세스에 따라 달라집니다.

.NET CLI를 사용하여 수행할 수 있는 Microsoft.Azure.Functions.Worker.Extensions.OpenAI NuGet 패키지를 설치하여 프로젝트에 Azure OpenAI 확장을 추가합니다.

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.OpenAI  --prerelease

콘텐츠를 저장하기 위해 벡터 데이터베이스를 사용하는 경우 다음 NuGet 패키지 중 하나 이상을 설치해야 합니다.

번들 설치

파일에서 host.json 다음 코드를 추가하거나 바꿔 미리 보기 확장을 추가할 수 있습니다. 이 코드는 특히 OpenAI 확장이 포함된 4.x 번들의 미리 보기 버전을 대상으로 합니다.

{
  "version": "2.0",
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
    "version": "[4.*, 5.0.0)"
  }
}

OpenAI에 연결

Azure OpenAI 바인딩 확장을 사용하려면 OpenAI에 대한 연결을 지정해야 합니다. 이 연결은 애플리케이션 설정 및 AIConnectionName 트리거 또는 바인딩의 속성을 사용하여 정의됩니다. 환경 변수를 사용하여 키 기반 연결을 정의할 수도 있습니다.

관리 ID 기반 연결 및 AIConnectionName 속성을 사용하는 것이 좋습니다.

OpenAI 바인딩에는 AIConnectionName Azure OpenAI에 대한 연결을 정의하는 이 앱 설정 그룹을 지정 <ConnectionNamePrefix> 하는 데 사용할 수 있는 속성이 있습니다.

설정 이름 설명
<CONNECTION_NAME_PREFIX>__endpoint Azure OpenAI 서비스의 URI 엔드포인트를 설정합니다. 이 설정은 항상 필요합니다.
<CONNECTION_NAME_PREFIX>__clientId 액세스 토큰을 가져올 때 사용할 특정 사용자 할당 ID를 설정합니다. 으로 설정해야 <CONNECTION_NAME_PREFIX>__credential 합니다 managedidentity. 속성은 애플리케이션에 할당된 사용자가 할당한 ID에 해당하는 클라이언트 ID를 허용합니다. 리소스 ID와 클라이언트 ID를 모두 지정하는 것은 유효하지 않습니다. 지정하지 않으면 시스템 할당 ID가 사용됩니다. 이 속성은 이 설정되지 않아야 하는 로컬 개발 시나리오credential에서 다르게 사용됩니다.
<CONNECTION_NAME_PREFIX>__credential 연결에 대한 액세스 토큰을 가져오는 방법을 정의합니다. 관리 ID 인증에 사용합니다 managedidentity . 이 값은 호스팅 환경에서 관리 ID를 사용할 수 있는 경우에만 유효합니다.
<CONNECTION_NAME_PREFIX>__managedIdentityResourceId credentialmanagedidentity로 설정된 경우 이 속성은 토큰을 가져올 때 사용할 리소스 식별자를 지정하도록 설정할 수 있습니다. 속성은 사용자 정의 관리 ID의 리소스 ID에 해당하는 리소스 식별자를 허용합니다. 리소스 ID와 클라이언트 ID를 모두 지정하는 것은 유효하지 않습니다. 둘 다 지정하지 않으면 시스템 할당 ID가 사용됩니다. 이 속성은 이 설정되지 않아야 하는 로컬 개발 시나리오credential에서 다르게 사용됩니다.
<CONNECTION_NAME_PREFIX>__key 키 기반 인증을 사용하여 Azure OpenAI 서비스의 엔드포인트에 액세스하는 데 필요한 공유 비밀 키를 설정합니다. 보안 모범 사례로, 인증을 위해 관리 ID와 함께 Microsoft Entra ID를 항상 사용해야 합니다.

속성이 다음으로 설정된 경우 AIConnectionName 이러한 관리 ID 연결 설정을 고려합니다 myAzureOpenAI.

  • myAzureOpenAI__endpoint=https://contoso.openai.azure.com/
  • myAzureOpenAI__credential=managedidentity
  • myAzureOpenAI__clientId=aaaaaaaa-bbbb-cccc-1111-222222222222

런타임 시 이러한 설정은 호스트에서 다음과 같은 단일 myAzureOpenAI 설정으로 통역됩니다.

"myAzureOpenAI":
{
    "endpoint": "https://contoso.openai.azure.com/",
    "credential": "managedidentity",
    "clientId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
}

관리 ID를 사용하는 경우 Cognitive Services OpenAI 사용자 역할에 ID를 추가해야 합니다.

로컬로 실행하는 경우 이러한 설정을local.settings.json 프로젝트 파일에 추가해야 합니다. 자세한 내용은 ID 기반 연결을 사용한 로컬 개발을 참조하세요.

자세한 내용은 애플리케이션 설정 작업을 참조하세요.