데이터에 대한 Azure OpenAI를 안전하게 사용

이 문서를 통해 Microsoft Entra ID 역할 기반 액세스 제어, 가상 네트워크 및 프라이빗 엔드포인트로 데이터와 리소스를 보호하여 Azure OpenAI On Your Data를 안전하게 사용하는 방법을 알아봅니다.

이 문서는 텍스트가 포함된 Azure OpenAI On Your Data를 사용하는 경우에만 적용됩니다. 이미지가 포함된 Azure OpenAI On Your Data에는 적용되지 않습니다.

데이터 수집 아키텍처

Azure OpenAI On Your Data를 사용하여 Azure Blob Storage, 로컬 파일 또는 URL의 데이터를 Azure AI 검색으로 수집하는 경우 다음 프로세스를 사용하여 데이터를 처리합니다.

데이터를 수집하는 프로세스를 보여 주는 다이어그램.

  • 1단계와 2단계는 파일 업로드에만 사용됩니다.
  • Blob Storage에 대한 URL 다운로드는 이 다이어그램에 나와 있지 않습니다. 웹 페이지를 인터넷에서 다운로드하고 Blob Storage에 업로드한 후 3단계 이후는 동일합니다.
  • 두 개의 인덱서, 두 개의 인덱스, 두 개의 데이터 원본 및 하나의 사용자 지정 기술이 Azure AI 검색 리소스에 만들어집니다.
  • 청크 컨테이너는 Blob Storage에 만들어집니다.
  • 예약된 새로 고침에 의해 수집이 트리거되면 수집 프로세스가 7단계부터 시작됩니다.
  • Azure OpenAI의 preprocessing-jobs API는 Azure AI 검색 고객 기술 웹 API 프로토콜을 구현하고 큐의 문서를 처리합니다.
  • Azure OpenAI:
    1. 내부적으로는 이전에 만들어진 첫 번째 인덱서를 사용하여 문서를 크랙합니다.
    2. 휴리스틱 기반 알고리즘을 사용하여 청크를 수행하고 청크 경계의 테이블 레이아웃과 기타 서식 지정 요소를 준수하여 최고의 청크 품질을 보장합니다.
    3. 벡터 검색을 사용하도록 설정하도록 선택한 경우 Azure OpenAI는 선택한 포함 배포를 사용하여 청크를 내부적으로 벡터화합니다.
  • 서비스가 모니터링하는 모든 데이터가 처리되면 Azure OpenAI는 두 번째 인덱서를 트리거합니다.
  • 인덱서는 처리된 데이터를 Azure AI 검색 서비스에 저장합니다.

서비스 호출에 사용되는 관리 ID의 경우 시스템 할당 관리 ID만 지원됩니다. 사용자 할당 관리 ID는 지원되지 않습니다.

유추 아키텍처

유추 API를 사용하는 프로세스를 보여 주는 다이어그램.

데이터에 대한 Azure OpenAI 모델과 채팅하기 위해 API 호출을 보내는 경우 서비스는 필드 매핑이 요청에 명시적으로 설정되지 않은 경우 자동으로 필드 매핑을 수행하기 위해 유추 중에 인덱스 필드를 검색해야 합니다. 따라서 유추 중에도 검색 서비스에 대한 Search Service Contributor 역할을 가지려면 서비스에서 Azure OpenAI ID가 필요합니다.

유추 요청에 포함 배포가 제공되는 경우 다시 작성된 쿼리는 Azure OpenAI에 의해 벡터화되고 쿼리와 벡터 모두 벡터 쿼리를 위해 Azure AI 검색으로 전송됩니다.

문서 수준 액세스 제어

참고 항목

문서 수준 액세스 제어는 Azure AI 검색에 대해서만 지원됩니다.

Azure OpenAI On Your Data를 사용하면 Azure AI Search 보안 필터를 사용하여 다른 사용자에 대한 응답에 사용할 수 있는 문서를 제한할 수 있습니다. 문서 수준 액세스를 사용하도록 설정하면 Azure AI Search에서 반환되고 응답을 생성하는 데 사용되는 검색 결과가 사용자 Microsoft Entra 그룹 멤버 자격에 따라 잘립니다. 기존 Azure AI Search 인덱스에서만 문서 수준 액세스를 사용하도록 설정할 수 있습니다. 문서 수준 액세스를 사용하도록 설정하려면 다음을 수행합니다.

  1. Azure AI Search 설명서의 단계에 따라 애플리케이션을 등록하고 사용자 및 그룹을 만듭니다.

  2. 허용된 그룹으로 문서를 인덱싱합니다. 새 보안 필드에 아래의 스키마가 있는지 확인합니다.

    {"name": "group_ids", "type": "Collection(Edm.String)", "filterable": true }
    

    group_ids는 기본 필드 이름입니다. my_group_ids 등의 다른 필드 이름을 사용하는 경우 인덱스 필드 매핑에서 필드를 매핑할 수 있습니다.

  3. 인덱스의 각 중요한 문서에 대해 이 보안 필드에 올바르게 설정된 값이 있는지 확인하여 문서의 허용된 그룹을 나타냅니다.

  4. Azure OpenAI Studio에서 데이터 원본을 추가합니다. 인덱스 필드 매핑 섹션에서 스키마가 호환되는 한, 허용된 그룹 필드에 0개 또는 1개의 값을 매핑할 수 있습니다. 허용된 그룹 필드가 매핑되지 않으면 문서 수준 액세스가 사용하도록 설정되지 않습니다.

Azure OpenAI Studio

Azure AI Search 인덱스가 연결되면 스튜디오의 응답은 로그인한 사용자의 Microsoft Entra 권한에 따라 문서 액세스 권한을 갖습니다.

웹 앱

게시된 웹앱을 사용하는 경우 최신 버전으로 업그레이드하려면 다시 배포해야 합니다. 최신 버전의 웹앱에는 로그인한 사용자의 Microsoft Entra 계정 그룹을 검색하고, 캐시하고, 각 API 요청에 그룹 ID를 포함하는 기능이 포함되어 있습니다.

API

API를 사용하는 경우 각 API 요청에 filter 매개 변수를 전달합니다. 예시:

{
    "messages": [
        {
            "role": "user",
            "content": "who is my manager?"
        }
    ],
    "dataSources": [
        {
            "type": "AzureCognitiveSearch",
            "parameters": {
                "endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
                "key": "'$AZURE_AI_SEARCH_API_KEY'",
                "indexName": "'$AZURE_AI_SEARCH_INDEX'",
                "filter": "my_group_ids/any(g:search.in(g, 'group_id1, group_id2'))"
            }
        }
    ]
}
  • my_group_ids필드 매핑 중에 허용된 그룹에 대해 선택한 필드 이름입니다.
  • group_id1, group_id2는 로그인한 사용자에서 기인한 그룹입니다. 클라이언트 애플리케이션은 사용자 그룹을 검색하고 캐시할 수 있습니다.

리소스 구성

다음 섹션을 사용하여 최적의 보안 사용을 위해 리소스를 구성합니다. 리소스의 일부만 보호하려는 경우에도 아래 단계를 모두 수행해야 합니다.

이 문서에서는 Azure OpenAI 리소스, Azure AI 검색 리소스 및 스토리지 계정에 대한 공용 네트워크를 사용하지 않도록 설정하는 데 관련된 네트워크 설정을 설명합니다. 서비스의 IP 주소가 동적이므로 선택한 네트워크를 IP 규칙과 함께 사용하는 것은 지원되지 않습니다.

GitHub에서 사용할 수 있는 bash 스크립트를 사용하여 설치 유효성을 검사하고, 여기에 나열된 모든 요구 사항이 충족되고 있는지 확인할 수 있습니다.

리소스 그룹 만들기

모든 관련 리소스를 구성할 수 있도록 리소스 그룹을 만듭니다. 리소스 그룹의 리소스에는 다음이 포함되지만 이에 국한되지는 않습니다.

  • 가상 네트워크 1개
  • 세 가지 주요 서비스: Azure OpenAI 1개, Azure AI 검색 1개, 스토리지 계정 1개
  • 3개의 프라이빗 엔드포인트, 각각 하나의 키 서비스에 연결됨
  • 3개의 네트워크 인터페이스(각각은 하나의 프라이빗 엔드포인트와 연결됨)
  • 온-프레미스 클라이언트 컴퓨터에서 액세스하기 위한 가상 네트워크 게이트웨이 1개
  • 가상 네트워크가 통합된 하나의 웹앱
  • 하나의 프라이빗 DNS 영역(웹앱이 Azure OpenAI의 IP를 찾을 수 있도록)

가상 네트워크 만들기

가상 네트워크에는 3개의 서브넷이 있습니다.

  1. 첫 번째 서브넷은 세 프라이빗 엔드포인트의 개인 IP에 사용됩니다.
  2. 두 번째 서브넷은 가상 네트워크 게이트웨이를 만들 때 자동으로 만들어집니다.
  3. 세 번째 서브넷은 비어 있으며 웹앱 아웃바운드 가상 네트워크 통합에 사용됩니다.

가상 네트워크 아키텍처를 보여 주는 다이어그램.

Microsoft 관리되는 가상 네트워크는 Microsoft에서 만들어졌으므로 볼 수 없습니다. Microsoft 관리되는 가상 네트워크는 Azure OpenAI에서 Azure AI 검색에 안전하게 액세스하는 데 사용됩니다.

Azure OpenAI 구성

사용자 지정 하위 도메인을 사용하도록 설정했습니다.

Azure Portal을 통해 Azure OpenAI를 만든 경우 사용자 지정 하위 도메인이 이미 만들어져 있어야 합니다. Microsoft Entra ID 기반 인증 및 프라이빗 DNS 영역에는 사용자 지정 하위 도메인이 필요합니다.

관리 ID 사용

Azure AI 검색 및 스토리지 계정이 Microsoft Entra ID 인증을 통해 Azure OpenAI 서비스를 인식할 수 있도록 하려면 Azure OpenAI 서비스에 대한 관리 ID를 할당해야 합니다. 가장 쉬운 방법은 Azure Portal에서 시스템이 할당한 관리 ID를 켜는 것입니다. Azure Portal에서 시스템 할당 관리 ID 옵션을 보여 주는 스크린샷.

관리 API를 통해 관리 ID를 설정하려면 관리 API 참조 설명서를 확인합니다.


"identity": {
  "principalId": "12345678-abcd-1234-5678-abc123def",
  "tenantId": "1234567-abcd-1234-1234-abcd1234",
  "type": "SystemAssigned, UserAssigned", 
  "userAssignedIdentities": {
    "/subscriptions/1234-5678-abcd-1234-1234abcd/resourceGroups/my-resource-group",
    "principalId": "12345678-abcd-1234-5678-abcdefg1234", 
    "clientId": "12345678-abcd-efgh-1234-12345678"
  }
}

신뢰할 수 있는 서비스 사용

Azure AI 검색이 Azure OpenAI preprocessing-jobs를 사용자 지정 기술 웹 API로 호출하도록 허용하려면 Azure OpenAI에는 공용 네트워크 액세스가 없지만 Azure AI 검색을 관리 ID 기반의 신뢰할 수 있는 서비스로 무시하도록 Azure OpenAI를 설정해야 합니다. Azure OpenAI는 JWT(JSON Web Token)의 클레임을 확인하여 Azure AI 검색의 트래픽을 식별합니다. Azure AI 검색은 사용자 지정 기술 웹 API를 호출하려면 시스템이 할당한 관리 ID 인증을 사용해야 합니다.

관리 API에서 networkAcls.bypassAzureServices로 설정합니다. 자세한 내용은 가상 네트워크 문서를 참조하세요.

Azure AI 검색 리소스에 대한 공유 프라이빗 링크가 있는 경우에만 이 단계를 건너뛸 수 있습니다.

공용 네트워크 액세스 사용 안 함

Azure Portal에서 Azure OpenAI 리소스의 공용 네트워크 액세스를 사용하지 않도록 설정할 수 있습니다.

Azure OpenAI Studio를 사용하는 것과 같이 클라이언트 컴퓨터에서 Azure OpenAI 서비스에 대한 액세스를 허용하려면 Azure OpenAI 리소스에 연결하는 프라이빗 엔드포인트 연결을 만들어야 합니다.

아래 구성에는 기본 가격 책정 계층 이상을 사용할 수 있습니다. 필수는 아니지만 S2 가격 책정 계층을 사용하는 경우 선택 가능한 추가 옵션이 표시됩니다.

관리 ID 사용

다른 리소스가 Microsoft Entra ID 인증을 사용하여 Azure AI 검색을 인식할 수 있도록 하려면 Azure AI 검색에 대한 관리 ID를 할당해야 합니다. 가장 쉬운 방법은 Azure Portal에서 시스템이 할당한 관리 ID를 켜는 것입니다.

Azure Portal에서 Azure AI 검색에 대한 관리 ID 설정을 보여 주는 스크린샷.

역할 기반 액세스 제어 사용

Azure OpenAI는 관리 ID를 사용하여 Azure AI 검색에 액세스하므로 Azure AI 검색에서 역할 기반 액세스 제어를 사용하도록 설정해야 합니다. Azure Portal에서 이 작업을 수행하려면 Azure Portal의 탭에서 모두를 선택합니다.

Azure Portal에서 Azure AI 검색에 대한 관리 ID 옵션을 보여 주는 스크린샷.

REST API를 통해 역할 기반 액세스 제어를 사용하도록 설정하려면 authOptionsaadOrApiKey로 설정합니다. 자세한 내용은 Azure AI 검색 RBAC 문서를 참조하세요.

"disableLocalAuth": false,
"authOptions": { 
    "aadOrApiKey": { 
        "aadAuthFailureMode": "http401WithBearerChallenge"
    }
}

Azure OpenAI Studio를 사용하려면 Azure AI 검색에 대한 API 키 기반 인증을 사용하지 않도록 설정할 수 없습니다. Azure OpenAI Studio는 API 키를 사용하여 브라우저에서 Azure AI 검색 API를 호출하기 때문입니다.

최상의 보안을 위해 프로덕션 준비가 되었고 더 이상 테스트를 위해 Azure OpenAI Studio를 사용할 필요가 없으면 API 키를 사용하지 않도록 설정하는 것이 좋습니다. 자세한 내용은 Azure AI 검색 RBAC 문서를 참조하세요.

공용 네트워크 액세스 사용 안 함

Azure Portal에서 Azure AI 검색 리소스의 공용 네트워크 액세스를 사용하지 않도록 설정할 수 있습니다.

Azure OpenAI Studio를 사용하는 것과 같이 클라이언트 컴퓨터에서 Azure AI 검색 리소스에 대한 액세스를 허용하려면 Azure AI 검색 리소스에 연결하는 프라이빗 엔드포인트 연결을 만들어야 합니다.

참고 항목

Azure OpenAI 리소스에서 Azure AI 검색 리소스에 대한 액세스를 허용하려면 애플리케이션 양식을 제출해야 합니다. 신청서는 영업일 기준 5일 이내에 검토되며 결과는 이메일을 통해 연락드립니다. 자격이 있는 경우 Microsoft 관리되는 가상 네트워크에서 프라이빗 엔드포인트를 프로비전하고 검색 서비스에 프라이빗 엔드포인트 연결 요청을 보내며, 사용자는 요청을 승인해야 합니다.

프라이빗 엔드포인트 승인 화면을 보여 주는 스크린샷.

프라이빗 엔드포인트 리소스는 연결된 리소스가 테넌트에 있는 동안 Microsoft 관리 테넌트에 프로비전됩니다. 네트워킹 페이지프라이빗 액세스 탭에서 프라이빗 엔드포인트 링크(파란색 글꼴)를 그냥 클릭하는 것으로는 프라이빗 엔드포인트 리소스에 액세스할 수 없습니다. 대신 행의 다른 곳을 클릭하면 위의 승인 단추를 클릭할 수 있습니다.

수동 승인 작업 흐름에 대해 자세히 알아봅니다.

기본 또는 표준 가격 책정 계층을 사용하거나 모든 리소스를 안전하게 설정하는 것이 처음인 경우 이 고급 항목을 건너뛰어야 합니다.

이 섹션은 기술 집합이 있는 인덱서에 대한 프라이빗 엔드포인트 지원이 필요하기 때문에 S2 가격 책정 계층 검색 리소스에만 적용됩니다.

Azure OpenAI 리소스에 연결하는 검색 리소스에서 공유 프라이빗 링크를 만들려면 검색 설명서를 참조하세요. 리소스 종류Microsoft.CognitiveServices/accounts그룹 IDopenai_account로 선택합니다.

공유 프라이빗 링크를 사용하면 데이터 수집 아키텍처 다이어그램의 8단계신뢰할 수 있는 서비스 우회에서 프라이빗 엔드포인트로 변경됩니다.

S2 검색 리소스를 사용하여 데이터를 수집하는 프로세스를 보여 주는 다이어그램.

만든 Azure AI 검색 공유 프라이빗 링크는 가상 네트워크가 아닌 Microsoft 관리형 가상 네트워크에도 있습니다. 앞서 만든 다른 관리형 프라이빗 엔드포인트와의 차이점은 Azure OpenAI에서 Azure Search까지의 관리형 프라이빗 엔드포인트[1]양식 애플리케이션을 통해 프로비전되는 반면, Azure Cognitive Search에서 Azure OpenAI로의 관리형 프라이빗 엔드포인트[2]는 Azure Portal 또는 Azure Cognitive Search의 REST API를 통해 프로비전된다는 점입니다.

S2 검색 리소스가 있는 가상 네트워크 아키텍처를 보여 주는 다이어그램.

스토리지 계정 구성

신뢰할 수 있는 서비스 사용

Azure OpenAI 및 Azure AI Search에서 스토리지 계정에 대한 액세스를 허용하려면 스토리지 계정에는 공용 네트워크 액세스가 없지만 Azure OpenAI 및 Azure AI Search를 관리 ID 기반의 신뢰할 수 있는 서비스로 우회하도록 스토리지 계정을 설정해야 합니다.

Azure Portal에서 스토리지 계정 네트워킹 탭으로 이동하여 "선택한 네트워크"를 선택한 다음 신뢰할 수 있는 서비스 목록의 Azure 서비스가 이 스토리지 계정에 액세스하도록 허용을 선택하고 저장을 클릭합니다.

참고 항목

신뢰할 수 있는 서비스 기능은 위에서 설명한 명령줄에서만 사용할 수 있으며 Azure Portal에서는 수행할 수 없습니다.

공용 네트워크 액세스 사용 안 함

Azure Portal에서 스토리지 계정의 공용 네트워크 액세스를 사용하지 않도록 설정할 수 있습니다.

Azure OpenAI Studio를 사용하는 것과 같이 클라이언트 컴퓨터에서 스토리지 계정에 대한 액세스를 허용하려면 Blob Storage에 연결하는 프라이빗 엔드포인트 연결을 만들어야 합니다.

역할 할당

지금까지는 이미 각 리소스 작업을 독립적으로 설정했습니다. 다음으로 서비스가 서로 권한 부여할 수 있도록 허용해야 합니다.

역할 담당자 리소스 설명
Search Index Data Reader Azure OpenAI Azure AI 검색 유추 서비스는 인덱스에서 데이터를 쿼리합니다.
Search Service Contributor Azure OpenAI Azure AI 검색 유추 서비스는 자동 필드 매핑을 위해 인덱스 스키마를 쿼리합니다. 데이터 수집 서비스는 인덱스, 데이터 원본, 기술 집합, 인덱서를 만들고 인덱서 상태를 쿼리합니다.
Storage Blob Data Contributor Azure OpenAI 스토리지 계정 입력 컨테이너에서 읽고 전처리 결과를 출력 컨테이너에 씁니다.
Cognitive Services OpenAI Contributor Azure AI 검색 Azure OpenAI 사용자 지정 기술
Storage Blob Data Contributor Azure AI 검색 스토리지 계정 BLOB을 읽고 지식 저장소를 씁니다.

위 표에서 Assignee는 해당 리소스의 시스템이 할당한 관리 ID를 의미합니다.

역할 할당을 추가하려면 관리자에게 이러한 리소스에 대한 Owner 역할이 있어야 합니다.

Azure Portal에서 이러한 역할을 설정하는 방법에 대한 지침은 Azure RBAC 설명서를 참조하세요. GitHub에서 사용 가능한 스크립트를 사용하여 프로그래밍 방식으로 역할 할당을 추가할 수 있습니다.

개발자가 이러한 리소스를 사용하여 애플리케이션을 빌드할 수 있도록 하려면 관리자는 다음 역할 할당을 사용하여 개발자의 ID를 리소스에 추가해야 합니다.

역할 리소스 설명
Cognitive Services OpenAI Contributor Azure OpenAI Azure OpenAI Studio에서 공용 수집 API를 호출합니다. Contributor 역할만으로는 충분하지 않습니다. 왜냐하면 Contributor 역할만 있으면 Microsoft Entra ID 인증을 통해 데이터 평면 API를 호출할 수 없고 이 문서에 설명된 보안 설정에는 Microsoft Entra ID 인증이 필요하기 때문입니다.
Cognitive Services User Azure OpenAI Azure OpenAI Studio의 API 키를 나열합니다.
Contributor Azure AI 검색 Azure OpenAI Studio의 인덱스를 나열하려면 API 키를 나열합니다.
Contributor 스토리지 계정 Azure OpenAI Studio에서 파일을 업로드하려면 계정 SAS를 나열합니다.
Contributor 개발자가 웹앱을 배포해야 하는 리소스 그룹 또는 Azure 구독 개발자의 Azure 구독에 웹앱을 배포합니다.

게이트웨이 및 클라이언트 구성

온-프레미스 클라이언트 컴퓨터에서 Azure OpenAI 서비스에 액세스하기 위한 방식 중 하나는 Azure VPN Gateway 및 Azure VPN Client를 구성하는 것입니다.

가상 네트워크용 가상 네트워크 게이트웨이를 만들려면 이 지침을 따릅니다.

지점 및 사이트 간 구성을 추가하고 Microsoft Entra ID 기반 인증을 사용하도록 설정하려면 이 지침을 따릅니다. Azure VPN Client 프로필 구성 패키지를 다운로드하고, 압축을 풀고, AzureVPN/azurevpnconfig.xml 파일을 Azure VPN Client로 가져옵니다.

Azure VPN 클라이언트 프로필을 가져올 위치를 보여 주는 스크린샷.

리소스 호스트 이름이 가상 네트워크의 개인 IP를 가리키도록 로컬 컴퓨터 hosts 파일을 구성합니다. hosts 파일은 Windows의 경우 C:\Windows\System32\drivers\etc에 있고 Linux의 경우 /etc/hosts에 있습니다. 예시:

10.0.0.5 contoso.openai.azure.com
10.0.0.6 contoso.search.windows.net
10.0.0.7 contoso.blob.core.windows.net

Azure OpenAI Studio

온-프레미스 클라이언트 컴퓨터에서 수집 및 유추를 포함한 모든 Azure OpenAI Studio 기능을 사용할 수 있어야 합니다.

웹 앱

웹앱은 Azure OpenAI 리소스와 통신합니다. Azure OpenAI 리소스에는 공용 네트워크가 사용하지 않도록 설정되어 있으므로 Azure OpenAI 리소스에 액세스하려면 가상 네트워크의 프라이빗 엔드포인트를 사용하도록 웹앱을 설정해야 합니다.

웹앱은 Azure OpenAI 호스트 이름을 Azure OpenAI용 프라이빗 엔드포인트의 개인 IP로 확인해야 합니다. 따라서 먼저 가상 네트워크에 대한 프라이빗 DNS 영역을 구성해야 합니다.

  1. 리소스 그룹에 프라이빗 DNS 영역을 만듭니다.
  2. DNS 레코드를 추가합니다. IP는 Azure OpenAI 리소스에 대한 프라이빗 엔드포인트의 개인 IP이며, Azure OpenAI에 대한 프라이빗 엔드포인트와 연결된 네트워크 인터페이스에서 IP 주소를 가져올 수 있습니다.
  3. 프라이빗 DNS 영역을 가상 네트워크에 연결하면 이 가상 네트워크에 통합된 웹앱이 이 프라이빗 DNS 영역을 사용할 수 있습니다.

Azure OpenAI Studio에서 웹앱을 배포할 때 가상 네트워크와 동일한 위치를 선택하고 적절한 SKU를 선택하면 가상 네트워크 통합 기능을 지원할 수 있습니다.

웹앱이 배포된 후 Azure Portal 네트워킹 탭에서 웹앱 아웃바운드 트래픽 가상 네트워크 통합을 구성하고 웹앱용으로 예약한 세 번째 서브넷을 선택합니다.

웹앱에 대한 아웃바운드 트래픽 구성을 보여 주는 스크린샷.

API 사용

로그인 자격 증명에 Azure OpenAI 리소스에 대한 Cognitive Services OpenAI Contributor 역할이 있는지 확인하고 먼저 az login을 실행합니다.

Azure Portal의 Cognitive Services OpenAI 기여자 역할을 보여 주는 스크린샷.

수집 API

수집 API에서 사용하는 요청 및 응답 개체에 대한 자세한 내용은 수집 API 참조 문서를 참조하세요.

추가 참고 사항:

  • API 경로의 JOB_NAME은 Azure AI 검색에서 인덱스 이름으로 사용됩니다.
  • api-key 대신 Authorization 헤더를 사용합니다.
  • storageEndpoint 헤더를 명시적으로 설정합니다.
  • storageConnectionString 헤더에 ResourceId= 형식을 사용하므로 Azure OpenAI 및 Azure AI 검색은 관리 ID를 사용하여 네트워크 제한을 무시하는 데 필요한 스토리지 계정을 인증합니다.
  • searchServiceAdminKey 헤더를 설정하지 마세요. Azure OpenAI 리소스의 시스템 할당 ID는 Azure AI 검색을 인증하는 데 사용됩니다.
  • embeddingEndpoint 또는 embeddingKey를 설정하지 마세요. 대신 embeddingDeploymentName 헤더를 사용하여 텍스트 벡터화를 사용하도록 설정합니다.

작업 제출 예

accessToken=$(az account get-access-token --resource https://cognitiveservices.azure.com/ --query "accessToken" --output tsv)
curl -i -X PUT https://my-resource.openai.azure.com/openai/extensions/on-your-data/ingestion-jobs/vpn1025a?api-version=2023-10-01-preview \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $accessToken" \
-H "storageEndpoint: https://mystorage.blob.core.windows.net/" \
-H "storageConnectionString: ResourceId=/subscriptions/1234567-abcd-1234-5678-1234abcd/resourceGroups/my-resource/providers/Microsoft.Storage/storageAccounts/mystorage" \
-H "storageContainer: my-container" \
-H "searchServiceEndpoint: https://mysearch.search.windows.net" \
-H "embeddingDeploymentName: ada" \
-d \
'
{
}
'

작업 상태 가져오기 예

accessToken=$(az account get-access-token --resource https://cognitiveservices.azure.com/ --query "accessToken" --output tsv)
curl -i -X GET https://my-resource.openai.azure.com/openai/extensions/on-your-data/ingestion-jobs/abc1234?api-version=2023-10-01-preview \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $accessToken"

유추 API

유추 API에서 사용하는 요청 및 응답 개체에 대한 자세한 내용은 유추 API 참조 문서를 참조하세요.