다음을 통해 공유


데이터 원본 - Azure Machine Learning 인덱스(미리 보기)

Azure OpenAI On Your Data를 사용하는 경우 Azure Machine Learning 인덱스의 구성 가능한 옵션입니다. 이 데이터 원본은 API 버전 2024-02-15-preview에서 지원됩니다.

속성 Type 필수 설명
parameters 매개 변수 True Azure Machine Learning 인덱스 구성 시 사용할 매개 변수입니다.
type string True azure_ml_index이어야 합니다.

매개 변수

이름 Type 필수 설명
project_resource_id string True Azure Machine Learning 프로젝트의 리소스 ID입니다.
name string True Azure Machine Learning 인덱스 이름.
version string True Azure Machine Learning 인덱스의 버전.
authentication AccessTokenAuthenticationOptions, SystemAssignedManagedIdentityAuthenticationOptions, UserAssignedManagedIdentityAuthenticationOptions 중 하나입니다. True 정의된 데이터 원본에 액세스할 때 사용할 인증 방법입니다.
in_scope 부울 값 False 쿼리를 인덱싱된 데이터 사용으로 제한해야 하는지 여부입니다. 기본값은 True입니다.
role_information string False 응답을 생성할 때 참조해야 하는 컨텍스트와 작동 방식에 대한 지침을 모델에 제공합니다. 도우미의 성격을 설명하고 응답 형식을 지정하는 방법을 알려줄 수 있습니다.
strictness 정수 False 검색 관련성 필터링의 구성된 엄격성입니다. 엄격성이 높을수록 정밀도가 높지만 대답의 재현율이 낮습니다. 기본값은 3입니다.
top_n_documents 정수 False 구성된 쿼리에 대해 기능할 구성된 상위 문서 수입니다. 기본값은 5입니다.
filter string False 검색 필터입니다. Azure Machine Learning 인덱스가 Azure Search 형식인 경우에만 지원됩니다.

액세스 토큰 인증 옵션

액세스 토큰을 사용하는 경우 Azure OpenAI On Your Data에 대한 인증 옵션입니다.

속성 Type 필수 설명
access_token string True 인증에 사용할 액세스 토큰입니다.
type string True access_token이어야 합니다.

시스템 할당 관리 ID 인증 옵션

시스템 할당 관리 ID를 사용하는 경우 Azure OpenAI On Your Data에 대한 인증 옵션입니다.

속성 Type 필수 설명
type string True system_assigned_managed_identity이어야 합니다.

사용자 할당 관리 ID 인증 옵션

사용자 할당 관리 ID를 사용하는 경우 Azure OpenAI On Your Data에 대한 인증 옵션입니다.

속성 Type 필수 설명
managed_identity_resource_id string True 인증 시 이용할 사용자가 할당한 관리 ID의 리소스 ID입니다.
type string True user_assigned_managed_identity이어야 합니다.

예제

필수 조건:

  • Azure OpenAI 시스템이 할당된 관리 ID에서 Azure Machine Learning 작업 영역 리소스로 역할 할당을 구성합니다. 필요한 역할: AzureML Data Scientist.
  • 사용자에서 Azure OpenAI 리소스로 역할 할당을 구성합니다. 필요한 역할: Cognitive Services OpenAI User.
  • Az CLI를 설치하고 az login을 실행합니다.
  • AzureOpenAIEndpoint, ChatCompletionsDeploymentName, ProjectResourceId, IndexName, IndexVersion과 같은 환경 변수를 정의합니다.
  • MINGW를 사용하는 경우 export MSYS_NO_PATHCONV=1을 실행합니다.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export ProjectResourceId='/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearningServices/workspaces/{workspace-id}'
export IndexName=testamlindex
export IndexVersion=2

최신 pip 패키지 openai, azure-identity를 설치합니다.

import os
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = os.environ.get("AzureOpenAIEndpoint")
deployment = os.environ.get("ChatCompletionsDeploymentName")
project_resource_id = os.environ.get("ProjectResourceId")
index_name = os.environ.get("IndexName")
index_version = os.environ.get("IndexVersion")

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")

client = AzureOpenAI(
    azure_endpoint=endpoint,
    azure_ad_token_provider=token_provider,
    api_version="2024-02-15-preview",
)

completion = client.chat.completions.create(
    model=deployment,
    messages=[
        {
            "role": "user",
            "content": "Who is DRI?",
        },
    ],
    extra_body={
        "data_sources": [
            {
                "type": "azure_ml_index",
                "parameters": {
                    "project_resource_id": project_resource_id,
                    "name": index_name,
                    "version": index_version,
                    "authentication": {
                        "type": "system_assigned_managed_identity"
                    },
                }
            }
        ]
    }
)

print(completion.model_dump_json(indent=2))