빠른 시작: AI 채팅에서 이미지 사용
Azure OpenAI Service를 통해 이미지와 함께 GPT-4 Turbo 사용을 시작합니다.
참고 항목
모델 선택
최신 비전 지원 모델은 다음과 같습니다 gpt-4o
gpt-4o mini
. 이러한 모델은 공개 미리 보기로 제공됩니다. 사용 가능한 최신 GA 모델은 버전turbo-2024-04-09
입니다gpt-4
.
Important
비전 기능이 있는 채팅 완성 모델을 사용할 때 추가 사용 요금이 적용될 수 있습니다.
이 문서를 사용하여 Azure AI Foundry를 사용하여 이미지 이해로 채팅 완성 모델을 배포하고 테스트할 수 있습니다.
필수 구성 요소
- Azure 구독 체험 계정 만들기
- Azure 구독이 있으면 Azure OpenAI 리소스를 만듭니다. 리소스 생성에 대한 자세한 내용은 리소스 배포 가이드를 참조하세요.
- Azure OpenAI 리소스가 연결로 추가된 Azure AI Foundry 허브.
미디어 준비
이 빠른 시작을 완료하려면 이미지가 필요합니다. 이 샘플 이미지 또는 사용 가능한 다른 이미지를 사용할 수 있습니다.
Azure AI Foundry로 이동
- Azure AI Foundry로 이동하여 Azure OpenAI 리소스와 연결된 자격 증명으로 로그인합니다. 로그인 워크플로 도중 또는 이후에 적절한 디렉터리, Azure 구독 및 Azure OpenAI 리소스를 선택합니다.
- 작업하려는 허브를 선택합니다.
- 왼쪽 탐색 메뉴에서 모델 + 엔드포인트를 선택하고 + 모델 배포를 선택합니다.
- 모델 이름(gpt-4o 또는 gpt-4o-mini)을 선택하여 이미지 지원 배포를 선택합니다. 표시되는 창에서 이름 및 배포 유형을 선택합니다. Azure OpenAI 리소스가 연결되어 있는지 확인합니다. 모델 배포에 대한 자세한 내용은 리소스 배포 가이드를 참조하세요.
- 배포를 선택합니다.
- 다음으로, 새 모델을 선택하고 놀이터에서 열기를 선택합니다. 채팅 플레이그라운드에서 만든 배포는 배포 드롭다운에서 선택해야 합니다.
플레이그라운드
이 채팅 세션에서는 입력한 이미지를 이해하는 데 도움이 되도록 도우미에게 지시합니다.
도우미 설정, 채팅 세션, 설정 및 패널에 대한 일반적인 도움말은 채팅 빠른 시작을 참조하세요.
채팅 세션을 시작하여 이미지 분석
이 채팅 세션에서는 입력한 이미지를 이해하는 데 도움을 주도록 도우미에게 지시합니다.
시작하려면 배포 드롭다운에서 이미지 지원 배포가 선택되어 있는지 확인합니다.
설치 패널의 상황에 맞는 텍스트 상자에서 도우미
"You're an AI assistant that helps people find information."
를 안내하는 이 프롬프트를 제공합니다. 또는 이미지 또는 시나리오에 맞게 프롬프트를 조정할 수 있습니다.참고 항목
모델에서 도움이 되지 않는 응답을 방지하기 위해 시스템 메시지를 작업에 맞게 업데이트하는 것이 좋습니다.
변경 내용 적용을 선택하여 변경 내용을 저장합니다.
채팅 세션 창에서 첨부 파일 단추를 선택한 다음 이미지를 업로드합니다. 이미지를 선택합니다.
채팅 필드에
Describe this image
다음 프롬프트를 추가한 다음 보내기 아이콘을 선택하여 제출합니다.보내기 아이콘이 중지 단추로 바뀝니다. 이 옵션을 선택하면 도우미가 요청 처리를 중지합니다. 이 빠른 시작에서는 도우미가 회신을 완료하도록 합니다.
도우미는 이미지에 대한 설명과 함께 회신합니다.
이미지 분석과 관련된 후속 질문을 합니다.
"What should I highlight about this image to my insurance company?"
라고 입력할 수 있습니다.여기에 표시된 내용과 유사한 관련 응답을 받아야 합니다.
When reporting the incident to your insurance company, you should highlight the following key points from the image: 1. **Location of Damage**: Clearly state that the front end of the car, particularly the driver's side, is damaged. Mention the crumpled hood, broken front bumper, and the damaged left headlight. 2. **Point of Impact**: Indicate that the car has collided with a guardrail, which may suggest that no other vehicles were involved in the accident. 3. **Condition of the Car**: Note that the damage seems to be concentrated on the front end, and there is no visible damage to the windshield or rear of the car from this perspective. 4. **License Plate Visibility**: Mention that the license plate is intact and can be used for identification purposes. 5. **Environment**: Report that the accident occurred near a roadside with a guardrail, possibly in a rural or semi-rural area, which might help in establishing the accident location and context. 6. **Other Observations**: If there were any other circumstances or details not visible in the image that may have contributed to the accident, such as weather conditions, road conditions, or any other relevant information, be sure to include those as well. Remember to be factual and descriptive, avoiding speculation about the cause of the accident, as the insurance company will conduct its own investigation.
코드 보기 및 내보내기
채팅 세션의 어느 지점에서든 채팅 창 맨 위에 있는 원시 JSON 표시 스위치를 활성화하여 JSON으로 형식이 지정된 대화를 볼 수 있습니다. 빠른 시작 채팅 세션의 시작 부분에서의 모습은 다음과 같습니다.
[
{
"role": "system",
"content": [
"You are an AI assistant that helps people find information."
]
},
]
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
이 문서를 통해 Azure OpenAI REST API를 사용하여 GPT-4 Turbo with Vision 모델을 배포하고 사용하기 시작합니다.
필수 구성 요소
- Azure 구독 체험 계정 만들기
- Python 3.8 이상 버전
- 다음 Python 라이브러리:
requests
,json
- GPT-4 Turbo with Vision 모델이 배포된 Azure OpenAI Service 리소스. 사용 가능한 지역은 GPT-4 및 GPT-4 Turbo Preview 모델 가용성을 참조하세요. 리소스 생성에 대한 자세한 내용은 리소스 배포 가이드를 참조하세요.
참고 항목
현재 GPT-4 Turbo with Vision 모델에 대한 콘텐츠 필터링을 끄는 것은 지원되지 않습니다.
키 및 엔드포인트 검색
Azure OpenAI API를 성공적으로 호출하려면 Azure OpenAI 리소스에 대한 다음 정보가 필요합니다.
변수 | 속성 | 값 |
---|---|---|
엔드포인트 | api_base |
엔드포인트 값은 Azure Portal에서 리소스에 대한 키 및 엔드포인트 아래에 있습니다. Azure AI Foundry 포털의 배포 페이지를 통해 엔드포인트를 찾을 수도 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
Key | api_key |
키 값도 Azure Portal에서 리소스에 대한 키 및 엔드포인트 아래에 있습니다. Azure는 리소스에 대해 두 개의 키를 생성합니다. 둘 중 하나의 값을 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다. 탐색 창의 리소스 관리 아래에서 키 및 엔드포인트를 선택합니다. 엔드포인트 값과 액세스 키 값을 복사합니다. 키 1 또는 키 2 값을 사용할 수 있습니다. 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 순환하고 다시 생성할 수 있습니다.
새 Python 애플리케이션 만들기
quickstart.py라는 새 Python 파일을 만듭니다. 선호하는 편집기 또는 IDE에서 새 파일을 엽니다.
quickstart.py의 내용을 다음 코드로 바꿉니다.
# Packages required: import requests import json api_base = '<your_azure_openai_endpoint>' deployment_name = '<your_deployment_name>' API_KEY = '<your_azure_openai_key>' base_url = f"{api_base}openai/deployments/{deployment_name}" headers = { "Content-Type": "application/json", "api-key": API_KEY } # Prepare endpoint, headers, and request body endpoint = f"{base_url}/chat/completions?api-version=2023-12-01-preview" data = { "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": [ { "type": "text", "text": "Describe this picture:" }, { "type": "image_url", "image_url": { "url": "<image URL>" } } ] } ], "max_tokens": 2000 } # Make the API call response = requests.post(endpoint, headers=headers, data=json.dumps(data)) print(f"Status Code: {response.status_code}") print(response.text)
다음과 같이 변경합니다.
- 해당 필드에 엔드포인트 URL 및 키를 입력합니다.
- 적절한 필드에 GPT-4 Turbo with Vision 배포 이름을 입력합니다.
-
"image"
필드의 값을 이미지의 URL로 변경합니다.팁
URL 대신 Base 64로 인코딩된 이미지 데이터를 사용할 수도 있습니다. 자세한 내용은 GPT-4 Turbo with Vision 방법 가이드를 참조하세요.
python
명령을 사용하여 애플리케이션을 실행합니다.python quickstart.py
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
이 문서를 통해 Azure OpenAI Python SDK를 사용하여 GPT-4 Turbo with Vision 모델을 배포하고 사용하기 시작합니다.
라이브러리 소스 코드 | 패키지(PyPi) |
필수 구성 요소
- Azure 구독 체험 계정 만들기
- Python 3.8 이상 버전
- 다음 Python 라이브러리:
os
- GPT-4 Turbo with Vision 모델이 배포된 Azure OpenAI Service 리소스. 사용 가능한 지역은 GPT-4 및 GPT-4 Turbo Preview 모델 가용성을 참조하세요. 리소스 생성에 대한 자세한 내용은 리소스 배포 가이드를 참조하세요.
설정
다음을 사용하여 OpenAI Python 클라이언트 라이브러리를 설치합니다.
pip install openai
참고 항목
이 라이브러리는 OpenAI에서 유지 관리합니다. 라이브러리의 최신 업데이트를 추적하려면 릴리스 기록을 참조하세요.
키 및 엔드포인트 검색
Azure OpenAI에 대해 성공적으로 호출하려면 엔드포인트와 키가 필요합니다.
변수 이름 | 값 |
---|---|
ENDPOINT |
서비스 엔드포인트는 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. 또는 Azure AI Foundry 포털의 배포 페이지를 통해 엔드포인트를 찾을 수 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
API-KEY |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다.
KEY1 또는 KEY2 를 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다.
키 및 엔드포인트 섹션은 리소스 관리 섹션에서 찾을 수 있습니다. 엔드포인트 및 액세스 키를 복사합니다. API 호출을 인증하는 데 모두 필요합니다.
KEY1
또는 KEY2
를 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
환경 변수
키 및 엔드포인트에 대한 영구 환경 변수를 만들고 할당합니다.
Important
클라우드에서 실행되는 애플리케이션에 자격 증명을 저장하지 않으려면 Microsoft Entra ID 인증과 함께 Azure 리소스에 대한 관리 ID를 사용하는 것이 좋습니다.
주의해서 API 키를 사용합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요. API 키를 사용하는 경우 Azure Key Vault에 안전하게 저장하고, 정기적으로 키를 회전하고, 역할 기반 액세스 제어 및 네트워크 액세스 제한을 사용하여 Azure Key Vault에 대한 액세스를 제한합니다. 앱에서 API 키를 안전하게 사용하는 방법에 대한 자세한 내용은 Azure Key Vault를 사용하여 API 키를 참조하세요.
AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
새 Python 애플리케이션 만들기
quickstart.py라는 새 Python 파일을 만듭니다. 선호하는 편집기 또는 IDE에서 새 파일을 엽니다.
quickstart.py의 내용을 다음 코드로 바꿉니다.
from openai import AzureOpenAI api_base = os.getenv("AZURE_OPENAI_ENDPOINT") api_key= os.getenv("AZURE_OPENAI_API_KEY") deployment_name = '<your_deployment_name>' api_version = '2023-12-01-preview' # this might change in the future client = AzureOpenAI( api_key=api_key, api_version=api_version, base_url=f"{api_base}/openai/deployments/{deployment_name}" ) response = client.chat.completions.create( model=deployment_name, messages=[ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": [ { "type": "text", "text": "Describe this picture:" }, { "type": "image_url", "image_url": { "url": "<image URL>" } } ] } ], max_tokens=2000 ) print(response)
다음과 같이 변경합니다.
- 적절한 필드에 GPT-4 Turbo with Vision 배포 이름을 입력합니다.
-
"url"
필드의 값을 이미지의 URL로 변경합니다.팁
URL 대신 Base 64로 인코딩된 이미지 데이터를 사용할 수도 있습니다. 자세한 내용은 GPT-4 Turbo with Vision 방법 가이드를 참조하세요.
python
명령을 사용하여 애플리케이션을 실행합니다.python quickstart.py
Important
주의해서 API 키를 사용합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요. API 키를 사용하는 경우 Azure Key Vault에 안전하게 저장합니다. 앱에서 API 키를 안전하게 사용하는 방법에 대한 자세한 내용은 Azure Key Vault를 사용하여 API 키를 참조하세요.
AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
이 문서를 통해 OpenAI JavaScript SDK를 사용하여 GPT-4 Turbo with Vision을 배포하고 사용하는 방법을 알아봅니다.
이 SDK는 Azure에서 제공하는 Azure 특정 형식과 함께 OpenAI에서 제공합니다.
참조 설명서 | 라이브러리 소스 코드 | 패키지(npm) | 샘플
필수 조건
- Azure 구독 - 체험 구독 만들기
- Node.js의 LTS 버전
- 로컬 개발 환경에서 암호 없는 인증에 사용되는 Azure CLI는 Azure CLI로 로그인하여 필요한 컨텍스트를 만듭니다.
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
참고 항목
이 라이브러리는 OpenAI에서 유지 관리합니다. 라이브러리의 최신 업데이트를 추적하려면 릴리스 기록을 참조하세요.
Microsoft Entra ID 필수 구성 요소
Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.
- Microsoft Entra ID를 사용하여 키 없는 인증에 사용되는 Azure CLI 를 설치합니다.
- 사용자 계정에
Cognitive Services User
역할을 할당합니다. Azure Portal의 액세스 제어(IAM)> 역할 할당 추가에서 역할을 할당할 수 있습니다.
리소스 정보 검색
Azure OpenAI 리소스를 사용하여 애플리케이션을 인증하려면 다음 정보를 검색해야 합니다.
변수 이름 | 값 |
---|---|
AZURE_OPENAI_ENDPOINT |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. |
AZURE_OPENAI_DEPLOYMENT_NAME |
이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>모델 배포에서 찾을 수 있습니다. |
OPENAI_API_VERSION |
API 버전에 대해 자세히 알아봅니다. |
주의
SDK에서 권장되는 키 없는 인증을 사용하려면 환경 변수가 AZURE_OPENAI_API_KEY
설정되지 않았는지 확인합니다.
노드 애플리케이션 만들기
콘솔 창(예: cmd, PowerShell 또는 Bash)에서 앱에 대한 새 디렉터리를 만들고 이 디렉터리로 이동합니다. 그런 다음 npm init
명령을 실행하여 package.json 파일이 있는 노드 애플리케이션을 만듭니다.
npm init
클라이언트 라이브러리 설치
다음을 사용하여 클라이언트 라이브러리 설치:
npm install openai @azure/identity
종속성이 있는 앱의 package.json 파일이 업데이트됩니다.
이미지 프롬프트에 대한 새로운 JavaScript 애플리케이션 만들기
azure-samples/cognitive-services-sample-data-files에서 이미지를 선택하고 환경 변수에 이미지의 URL을 설정합니다.
quickstart.js의 콘텐츠를 다음 코드로 바꿉니다.
const AzureOpenAI = require('openai').AzureOpenAI; const { DefaultAzureCredential, getBearerTokenProvider } = require('@azure/identity'); // You will need to set these environment variables or edit the following values const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>"; const imageUrl = process.env["IMAGE_URL"] || "<image url>"; // Required Azure OpenAI deployment name and API version const apiVersion = "2024-07-01-preview"; const deploymentName = "gpt-4-with-turbo"; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment: deploymentName, }); } function createMessages() { return { messages: [ { role: "system", content: "You are a helpful assistant." }, { role: "user", content: [ { type: "text", text: "Describe this picture:", }, { type: "image_url", image_url: { url: imageUrl, }, }, ], }, ], model: "", max_tokens: 2000, }; } async function printChoices(completion) { for (const choice of completion.choices) { console.log(choice.message); } } export async function main() { console.log("== Get GPT-4 Turbo with vision Sample =="); const client = getClient(); const messages = createMessages(); const completion = await client.chat.completions.create(messages); await printChoices(completion); } main().catch((err) => { console.error("Error occurred:", err); });
다음과 같이 변경합니다.
- 적절한 필드에 GPT-4 Turbo with Vision 배포 이름을 입력합니다.
-
"url"
필드의 값을 이미지의 URL로 변경합니다.팁
URL 대신 Base 64로 인코딩된 이미지 데이터를 사용할 수도 있습니다. 자세한 내용은 GPT-4 Turbo with Vision 방법 가이드를 참조하세요.
다음 명령을 사용하여 애플리케이션을 실행합니다.
node quickstart.js
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
이 문서를 통해 OpenAI JavaScript SDK를 사용하여 GPT-4 Turbo with Vision을 배포하고 사용하는 방법을 알아봅니다.
이 SDK는 Azure에서 제공하는 Azure 특정 형식과 함께 OpenAI에서 제공합니다.
참조 설명서 | 라이브러리 소스 코드 | 패키지(npm) | 샘플
필수 조건
- Azure 구독 - 체험 구독 만들기
- Node.js의 LTS 버전
- TypeScript
- 로컬 개발 환경에서 암호 없는 인증에 사용되는 Azure CLI는 Azure CLI로 로그인하여 필요한 컨텍스트를 만듭니다.
- 지원되는 지역에서 만든 Azure OpenAI 리소스(지역 가용성 참조)입니다. 자세한 내용은 Azure OpenAI를 사용하여 리소스 만들기 및 모델 배포를 참조하세요.
참고 항목
이 라이브러리는 OpenAI에서 유지 관리합니다. 라이브러리의 최신 업데이트를 추적하려면 릴리스 기록을 참조하세요.
Microsoft Entra ID 필수 구성 요소
Microsoft Entra ID를 사용하는 권장 키 없는 인증의 경우 다음을 수행해야 합니다.
- Microsoft Entra ID를 사용하여 키 없는 인증에 사용되는 Azure CLI 를 설치합니다.
- 사용자 계정에
Cognitive Services User
역할을 할당합니다. Azure Portal의 액세스 제어(IAM)> 역할 할당 추가에서 역할을 할당할 수 있습니다.
리소스 정보 검색
Azure OpenAI 리소스를 사용하여 애플리케이션을 인증하려면 다음 정보를 검색해야 합니다.
변수 이름 | 값 |
---|---|
AZURE_OPENAI_ENDPOINT |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. |
AZURE_OPENAI_DEPLOYMENT_NAME |
이 값은 모델을 배포할 때 배포에 대해 선택한 사용자 지정 이름에 해당합니다. 이 값은 Azure Portal의 리소스 관리>모델 배포에서 찾을 수 있습니다. |
OPENAI_API_VERSION |
API 버전에 대해 자세히 알아봅니다. |
주의
SDK에서 권장되는 키 없는 인증을 사용하려면 환경 변수가 AZURE_OPENAI_API_KEY
설정되지 않았는지 확인합니다.
노드 애플리케이션 만들기
콘솔 창(예: cmd, PowerShell 또는 Bash)에서 앱에 대한 새 디렉터리를 만들고 이 디렉터리로 이동합니다. 그런 다음 npm init
명령을 실행하여 package.json 파일이 있는 노드 애플리케이션을 만듭니다.
npm init
클라이언트 라이브러리 설치
다음을 사용하여 클라이언트 라이브러리 설치:
npm install openai @azure/identity
종속성이 있는 앱의 package.json 파일이 업데이트됩니다.
이미지 프롬프트에 대한 새로운 JavaScript 애플리케이션 만들기
azure-samples/cognitive-services-sample-data-files에서 이미지를 선택하고 환경 변수에 이미지의 URL을 설정합니다.
quickstart.ts를 만들고 다음 코드를 붙여넣습니다.
import { AzureOpenAI } from "openai"; import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; import type { ChatCompletion, ChatCompletionCreateParamsNonStreaming, } from "openai/resources/index"; // You will need to set these environment variables or edit the following values const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>"; const imageUrl = process.env["IMAGE_URL"] || "<image url>"; // Required Azure OpenAI deployment name and API version const apiVersion = "2024-07-01-preview"; const deploymentName = "gpt-4-with-turbo"; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment: deploymentName, }); } function createMessages(): ChatCompletionCreateParamsNonStreaming { return { messages: [ { role: "system", content: "You are a helpful assistant." }, { role: "user", content: [ { type: "text", text: "Describe this picture:", }, { type: "image_url", image_url: { url: imageUrl, }, }, ], }, ], model: "", max_tokens: 2000, }; } async function printChoices(completion: ChatCompletion): Promise<void> { for (const choice of completion.choices) { console.log(choice.message); } } export async function main() { console.log("== Get GPT-4 Turbo with vision Sample =="); const client = getClient(); const messages = createMessages(); const completion = await client.chat.completions.create(messages); await printChoices(completion); } main().catch((err) => { console.error("Error occurred:", err); });
다음과 같이 변경합니다.
- 적절한 필드에 GPT-4 Turbo with Vision 배포 이름을 입력합니다.
-
"url"
필드의 값을 이미지의 URL로 변경합니다.팁
URL 대신 Base 64로 인코딩된 이미지 데이터를 사용할 수도 있습니다. 자세한 내용은 GPT-4 Turbo with Vision 방법 가이드를 참조하세요.
다음 명령을 사용하여 애플리케이션 빌드:
tsc
다음 명령을 사용하여 애플리케이션을 실행합니다.
node quickstart.js
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.
이 문서를 사용하여 Azure OpenAI .NET SDK를 사용하여 비전 모델에서 GPT-4 Turbo를 배포하고 사용하기 시작합니다.
필수 구성 요소
- Azure 구독 무료로 하나를 만들 수 있습니다.
- The .NET 8.0 SDK
- GPT-4 Turbo with Vision 모델이 배포된 Azure OpenAI Service 리소스. 사용 가능한 지역은 GPT-4 및 GPT-4 Turbo Preview 모델 가용성을 참조하세요. 리소스 생성에 대한 자세한 내용은 리소스 배포 가이드를 참조하세요.
설정
키 및 엔드포인트 검색
Azure OpenAI에 대해 성공적으로 호출하려면 엔드포인트와 키가 필요합니다.
변수 이름 | 값 |
---|---|
AZURE_OPENAI_ENDPOINT |
서비스 엔드포인트는 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다. 또는 Azure AI Foundry 포털의 배포 페이지를 통해 엔드포인트를 찾을 수 있습니다. 예제 엔드포인트는 https://docs-test-001.openai.azure.com/ 입니다. |
AZURE_OPENAI_API_KEY |
이 값은 Azure Portal에서 리소스를 검사할 때 키 및 엔드포인트 섹션에서 찾을 수 있습니다.
KEY1 또는 KEY2 를 사용할 수 있습니다. |
Azure Portal에서 해당 리소스로 이동합니다.
엔드포인트 및 키는 리소스 관리 섹션에서 찾을 수 있습니다. API 호출을 인증하는 데 모두 필요하므로 엔드포인트 및 액세스 키를 복사합니다.
KEY1
또는 KEY2
를 사용할 수 있습니다. 항상 두 개의 키를 사용하면 서비스 중단 없이 키를 안전하게 회전하고 다시 생성할 수 있습니다.
.NET 앱 만들기
다음 명령을 사용하여 .NET 앱을 만듭니다
dotnet new
.dotnet new console -n OpenAISpeech
새 앱의 디렉터리로 변경합니다.
cd OpenAISpeech
클라이언트 라이브러리 설치
클라이언트 라이브러리를 Azure.OpenAI
설치합니다.
dotnet add package Azure.AI.OpenAI
암호 없는 인증이 권장됨
암호 없는 인증은 키 기반 대안보다 더 안전하며 Azure 서비스에 연결하는 데 권장되는 방법입니다. 암호 없는 인증을 사용하도록 선택하는 경우 다음을 완료해야 합니다.
Azure.Identity
패키지를 추가합니다.dotnet add package Azure.Identity
사용자 계정에
Cognitive Services User
역할을 할당합니다. 이 작업은 액세스 제어(IAM)> 역할 할당 추가 아래의 OpenAI 리소스에 있는 Azure Portal에서 수행할 수 있습니다.Visual Studio 또는 Azure CLI를 통해
az login
Azure에 로그인합니다.
앱 코드 업데이트
내용을
program.cs
다음 코드로 바꾸고 자리 표시자 값을 사용자 고유의 값으로 업데이트합니다.using Azure; using Azure.AI.OpenAI; using Azure.Identity; using OpenAI.Chat; // Required for Passwordless auth var endpoint = new Uri("YOUR_AZURE_OPENAI_ENDPOINT"); var credentials = new AzureKeyCredential("YOUR_AZURE_OPENAI_KEY"); // var credentials = new DefaultAzureCredential(); // Use this line for Passwordless auth var deploymentName = "gpt-4"; // Default name, update with your own if needed var openAIClient = new AzureOpenAIClient(endpoint, credentials); var chatClient = openAIClient.GetChatClient(deploymentName); var imageUri = "YOUR_IMAGE_URL"; List<ChatMessage> messages = [ new UserChatMessage( ChatMessageContentPart.CreateTextMessageContentPart("Please describe the following image:"), ChatMessageContentPart.CreateImageMessageContentPart(new Uri(imageUri), "image/png")) ]; ChatCompletion chatCompletion = await chatClient.CompleteChatAsync(messages); Console.WriteLine($"[ASSISTANT]:"); Console.WriteLine($"{chatCompletion.Content[0].Text}");
Important
클라우드에서 실행되는 애플리케이션에 자격 증명을 저장하지 않으려면 Microsoft Entra ID 인증과 함께 Azure 리소스에 대한 관리 ID를 사용하는 것이 좋습니다.
주의해서 API 키를 사용합니다. API 키를 코드에 직접 포함하지 말고, 공개적으로 게시하지 마세요. API 키를 사용하는 경우 Azure Key Vault에 안전하게 저장하고, 정기적으로 키를 회전하고, 역할 기반 액세스 제어 및 네트워크 액세스 제한을 사용하여 Azure Key Vault에 대한 액세스를 제한합니다. 앱에서 API 키를 안전하게 사용하는 방법에 대한 자세한 내용은 Azure Key Vault를 사용하여 API 키를 참조하세요.
AI 서비스 보안에 대한 자세한 내용은 Azure AI 서비스에 대한 요청 인증을 참조하세요.
Visual Studio 맨 위에 있는
dotnet run
명령 또는 실행 단추를 사용하여 애플리케이션을 실행합니다.dotnet run
앱은 변수에 대해 지정한 speechFilePath
위치에 오디오 파일을 생성합니다. 디바이스에서 파일을 재생하여 생성된 오디오를 듣습니다.
리소스 정리
Azure OpenAI 리소스를 정리하고 제거하려면 리소스 또는 리소스 그룹을 삭제하면 됩니다. 리소스 그룹을 삭제하면 해당 리소스 그룹에 연결된 다른 모든 리소스가 함께 삭제됩니다.