Szybki start: używanie obrazów w czatach sztucznej inteligencji
Rozpocznij korzystanie z biblioteki GPT-4 Turbo z obrazami w usłudze Azure OpenAI Service.
Uwaga
Wybór modelu
Najnowsze modele obsługujące wizję to gpt-4o
i gpt-4o mini
. Te modele są dostępne w publicznej wersji zapoznawczej. Najnowszy dostępny model ogólnie dostępny to gpt-4
wersja turbo-2024-04-09
.
Ważne
Dodatkowe opłaty za użycie mogą mieć zastosowanie podczas korzystania z modeli uzupełniania czatu z funkcją przetwarzania obrazów.
Skorzystaj z tego artykułu, aby rozpocząć korzystanie z usługi Azure AI Foundry w celu wdrożenia i przetestowania modelu uzupełniania czatu przy użyciu zrozumienia obrazu.
Wymagania wstępne
- Subskrypcja platformy Azure. Utwórz je bezpłatnie.
- Po utworzeniu subskrypcji platformy Azure utwórz zasób usługi Azure OpenAI. Aby uzyskać więcej informacji na temat tworzenia zasobów, zobacz przewodnik wdrażania zasobów.
- Centrum azure AI Foundry z zasobem usługi Azure OpenAI dodanym jako połączenie.
Przygotowywanie nośnika
Do ukończenia tego przewodnika Szybki start potrzebny jest obraz. Możesz użyć tego przykładowego obrazu lub dowolnego innego dostępnego obrazu.
Przejdź do usługi Azure AI Foundry
- Przejdź do usługi Azure AI Foundry i zaloguj się przy użyciu poświadczeń skojarzonych z zasobem usługi Azure OpenAI. Podczas lub po przepływie pracy logowania wybierz odpowiedni katalog, subskrypcję platformy Azure i zasób usługi Azure OpenAI.
- Wybierz koncentrator, w którym chcesz pracować.
- W menu nawigacji po lewej stronie wybierz pozycję Modele i punkty końcowe , a następnie wybierz pozycję + Wdróż model.
- Wybierz wdrożenie z obsługą obrazu, wybierając nazwę modelu: gpt-4o lub gpt-4o-mini. W wyświetlonym oknie wybierz nazwę i typ wdrożenia. Upewnij się, że zasób usługi Azure OpenAI jest połączony. Aby uzyskać więcej informacji na temat modeli wdrażania, zobacz przewodnik po modelach wdrażania).
- Wybierz Wdróż.
- Następnie wybierz nowy model i wybierz pozycję Otwórz na placu zabaw. Na placu zabaw czatu utworzone wdrożenie powinno zostać wybrane na liście rozwijanej Wdrożenie .
Plac zabaw
W tej sesji czatu poinstruujesz asystenta, aby ułatwić zrozumienie obrazów, które wprowadzasz.
Aby uzyskać ogólną pomoc dotyczącą konfigurowania asystenta, sesji czatów, ustawień i paneli, zapoznaj się z przewodnikiem Szybki start czatu.
Rozpoczynanie sesji czatu w celu analizowania obrazów
W tej sesji czatu poinstruujesz asystenta, aby pomóc w zrozumieniu obrazów, które wprowadzasz.
Aby rozpocząć, upewnij się, że wdrożenie z obsługą obrazów zostało wybrane na liście rozwijanej Wdrożenie .
W polu tekstowym kontekstu na panelu Konfiguracja podaj ten monit, aby kierować asystentem:
"You're an AI assistant that helps people find information."
lub możesz dostosować monit do obrazu lub scenariusza.Uwaga
Zalecamy zaktualizowanie komunikatu systemowego tak, aby był specyficzny dla zadania, aby uniknąć nieprzydatnych odpowiedzi z modelu.
Wybierz pozycję Zastosuj zmiany , aby zapisać zmiany.
W okienku sesji czatu wybierz przycisk załącznika, a następnie pozycję Przekaż obraz. Wybierz obraz.
Dodaj następujący monit w polu czatu:
Describe this image
, a następnie wybierz ikonę wysyłania, aby ją przesłać.Ikona wysyłania jest zastępowana przyciskiem zatrzymania. Jeśli go wybierzesz, asystent przestanie przetwarzać żądanie. Na potrzeby tego przewodnika Szybki start pozwól asystentowi zakończyć odpowiedź.
Asystent odpowiada opisem obrazu.
Zadaj kolejne pytanie związane z analizą obrazu. Możesz wprowadzić wartość .
"What should I highlight about this image to my insurance company?"
Powinna zostać wyświetlona odpowiednia odpowiedź podobna do przedstawionej tutaj:
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.
Wyświetlanie i eksportowanie kodu
W dowolnym momencie sesji czatu możesz włączyć przełącznik Pokaż nieprzetworzony kod JSON w górnej części okna czatu, aby zobaczyć konwersację sformatowaną jako JSON. Oto jak wygląda na początku sesji czatu Szybkiego startu:
[
{
"role": "system",
"content": [
"You are an AI assistant that helps people find information."
]
},
]
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Skorzystaj z tego artykułu, aby rozpocząć korzystanie z interfejsów API REST usługi Azure OpenAI do wdrażania i używania modelu GPT-4 Turbo z usługą Vision.
Wymagania wstępne
- Subskrypcja platformy Azure. Utwórz je bezpłatnie.
- Środowisko Python w wersji 3.8 lub nowszej.
- Następujące biblioteki języka Python:
requests
,json
. - Zasób usługi Azure OpenAI z wdrożonym modelem GPT-4 Turbo z usługą Vision. Zobacz Dostępność modelu GPT-4 i GPT-4 Turbo Preview dla dostępnych regionów. Aby uzyskać więcej informacji na temat tworzenia zasobów, zobacz przewodnik wdrażania zasobów.
Uwaga
Obecnie nie jest obsługiwane wyłączanie filtrowania zawartości dla modelu GPT-4 Turbo z usługą Vision.
Pobieranie klucza i punktu końcowego
Aby pomyślnie wywołać interfejsy API usługi Azure OpenAI, potrzebne są następujące informacje dotyczące zasobu usługi Azure OpenAI:
Zmienna | Nazwa/nazwisko | Wartość |
---|---|---|
Punkt końcowy | api_base |
Wartość punktu końcowego znajduje się w obszarze Klucze i punkt końcowy zasobu w witrynie Azure Portal. Punkt końcowy można również znaleźć na stronie Wdrożenia w portalu usługi Azure AI Foundry. Przykładowy punkt końcowy to: https://docs-test-001.openai.azure.com/ . |
Klawisz | api_key |
Wartość klucza znajduje się również w obszarze Klucze i punkt końcowy zasobu w witrynie Azure Portal. Platforma Azure generuje dwa klucze dla zasobu. Możesz użyć jednej z tych wartości. |
Przejdź do zasobu w witrynie Azure Portal. W okienku nawigacji wybierz pozycję Klucze i punkt końcowy w obszarze Zarządzanie zasobami. Skopiuj wartość Punkt końcowy i wartość klucza dostępu. Możesz użyć wartości KLUCZ 1 lub KLUCZ 2 . Posiadanie dwóch kluczy umożliwia bezpieczne obracanie i ponowne generowanie kluczy bez powodowania przerw w działaniu usługi.
Tworzenie nowej aplikacji w języku Python
Utwórz nowy plik w języku Python o nazwie quickstart.py. Otwórz nowy plik w preferowanym edytorze lub środowisku IDE.
Zastąp zawartość quickstart.py poniższym kodem.
# 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)
Wprowadź następujące zmiany:
- Wprowadź adres URL i klucz punktu końcowego w odpowiednich polach.
- Wprowadź nazwę wdrożenia GPT-4 Turbo z nazwą wdrożenia przetwarzania obrazów w odpowiednim polu.
- Zmień wartość
"image"
pola na adres URL obrazu.Napiwek
Można również użyć zakodowanych w formacie base 64 danych obrazu zamiast adresu URL. Aby uzyskać więcej informacji, zobacz Przewodnik z instrukcjami GPT-4 Turbo with Vision.
Uruchom aplikację za
python
pomocą polecenia :python quickstart.py
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Skorzystaj z tego artykułu, aby rozpocząć korzystanie z zestawu SDK języka Python platformy Azure OpenAI do wdrażania i używania modelu GPT-4 Turbo z usługą Vision.
Pakiet kodu | źródłowego biblioteki (PyPi) |
Wymagania wstępne
- Subskrypcja platformy Azure. Utwórz je bezpłatnie.
- Środowisko Python w wersji 3.8 lub nowszej.
- Następujące biblioteki języka Python:
os
- Zasób usługi Azure OpenAI z wdrożonym modelem GPT-4 Turbo z usługą Vision. Zobacz Dostępność modelu GPT-4 i GPT-4 Turbo Preview dla dostępnych regionów. Aby uzyskać więcej informacji na temat tworzenia zasobów, zobacz przewodnik wdrażania zasobów.
Konfiguruj
Zainstaluj bibliotekę klienta języka Python openAI za pomocą następujących elementów:
pip install openai
Uwaga
Ta biblioteka jest utrzymywana przez interfejs OpenAI. Zapoznaj się z historią wydania, aby śledzić najnowsze aktualizacje biblioteki.
Pobieranie klucza i punktu końcowego
Aby pomyślnie wykonać wywołanie usługi Azure OpenAI, potrzebujesz punktu końcowegoi klucza.
Nazwa zmiennej | Wartość |
---|---|
ENDPOINT |
Punkt końcowy usługi można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu w witrynie Azure Portal. Możesz też znaleźć punkt końcowy za pośrednictwem strony Wdrożenia w portalu usługi Azure AI Foundry. Przykładowy punkt końcowy to: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Tę wartość można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu z poziomu witryny Azure Portal. Możesz użyć wartości KEY1 lub KEY2 . |
Przejdź do zasobu w witrynie Azure Portal. Sekcję Klucze i punkt końcowy można znaleźć w sekcji Zarządzanie zasobami. Skopiuj punkt końcowy i klucz dostępu, ponieważ będzie potrzebny zarówno do uwierzytelniania wywołań interfejsu API. Możesz użyć wartości KEY1
lub KEY2
. Zawsze posiadanie dwóch kluczy umożliwia bezpieczne obracanie i ponowne generowanie kluczy bez powodowania zakłóceń usługi.
Zmienne środowiskowe
Tworzenie i przypisywanie trwałych zmiennych środowiskowych dla klucza i punktu końcowego.
Ważne
Zalecamy uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft z tożsamościami zarządzanymi dla zasobów platformy Azure, aby uniknąć przechowywania poświadczeń przy użyciu aplikacji uruchamianych w chmurze.
Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz kluczy interfejsu API, przechowuj je bezpiecznie w usłudze Azure Key Vault, regularnie wymieniaj klucze i ograniczaj dostęp do usługi Azure Key Vault przy użyciu kontroli dostępu opartej na rolach i ograniczeń dostępu do sieci. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz Klucze interfejsu API w usłudze Azure Key Vault.
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań w usługach Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Tworzenie nowej aplikacji w języku Python
Utwórz nowy plik w języku Python o nazwie quickstart.py. Otwórz nowy plik w preferowanym edytorze lub środowisku IDE.
Zastąp zawartość quickstart.py poniższym kodem.
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)
Wprowadź następujące zmiany:
- Wprowadź nazwę urządzenia GPT-4 Turbo z wdrożeniem usługi Vision w odpowiednim polu.
- Zmień wartość
"url"
pola na adres URL obrazu.Napiwek
Można również użyć zakodowanych w formacie base 64 danych obrazu zamiast adresu URL. Aby uzyskać więcej informacji, zobacz Przewodnik z instrukcjami GPT-4 Turbo with Vision.
Uruchom aplikację za
python
pomocą polecenia :python quickstart.py
Ważne
Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz klucza interfejsu API, zapisz go bezpiecznie w usłudze Azure Key Vault. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz Klucze interfejsu API w usłudze Azure Key Vault.
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań w usługach Azure AI.
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Skorzystaj z tego artykułu, aby rozpocząć wdrażanie i używanie modelu GPT-4 Turbo z modelem vision za pomocą zestawu SDK Języka JavaScript openAI.
Ten zestaw SDK jest dostarczany przez usługę OpenAI z określonymi typami platformy Azure udostępnianymi przez platformę Azure.
Dokumentacja referencyjna — przykłady | pakietu kodu | źródłowego biblioteki źródłowej (npm)Samples |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Wersje LTS Node.js
- Interfejs wiersza polecenia platformy Azure używany do uwierzytelniania bez hasła w lokalnym środowisku projektowym, utwórz niezbędny kontekst, logując się przy użyciu interfejsu wiersza polecenia platformy Azure.
- Zasób usługi Azure OpenAI utworzony w obsługiwanym regionie (zobacz Dostępność regionów). Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Uwaga
Ta biblioteka jest utrzymywana przez interfejs OpenAI. Zapoznaj się z historią wydania, aby śledzić najnowsze aktualizacje biblioteki.
Wymagania wstępne dotyczące identyfikatora entra firmy Microsoft
W przypadku zalecanego uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft należy wykonać następujące czynności:
- Zainstaluj interfejs wiersza polecenia platformy Azure używany do uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft.
-
Cognitive Services User
Przypisz rolę do konta użytkownika. Role można przypisać w witrynie Azure Portal w obszarze Kontrola dostępu (IAM)>Dodawanie przypisania roli.
Pobieranie informacji o zasobie
Aby uwierzytelnić aplikację przy użyciu zasobu usługi Azure OpenAI, musisz pobrać następujące informacje:
Nazwa zmiennej | Wartość |
---|---|
AZURE_OPENAI_ENDPOINT |
Tę wartość można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu w witrynie Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Ta wartość będzie odpowiadać nazwie niestandardowej wybranej dla wdrożenia podczas wdrażania modelu. Tę wartość można znaleźć w obszarze Wdrożenia modelu zarządzania>zasobami w witrynie Azure Portal. |
OPENAI_API_VERSION |
Dowiedz się więcej o wersjach interfejsu API. |
Dowiedz się więcej na temat uwierzytelniania bez klucza i ustawiania zmiennych środowiskowych.
Uwaga
Aby użyć zalecanego uwierzytelniania bez klucza z zestawem SDK, upewnij się, że zmienna AZURE_OPENAI_API_KEY
środowiskowa nie jest ustawiona.
Tworzenie aplikacji Node
W oknie konsoli (na przykład cmd, PowerShell lub Bash) utwórz nowy katalog dla aplikacji i przejdź do niego. Następnie uruchom polecenie , npm init
aby utworzyć aplikację węzła z plikiem package.json .
npm init
Instalowanie biblioteki klienta
Zainstaluj biblioteki klienckie za pomocą następujących funkcji:
npm install openai @azure/identity
Plik package.json aplikacji zostanie zaktualizowany o zależności.
Tworzenie nowej aplikacji JavaScript na potrzeby monitów o obraz
Wybierz obraz z pliku azure-samples/cognitive-services-sample-data-files i ustaw adres URL obrazu w zmiennych środowiskowych.
Zastąp zawartość quickstart.js następującym kodem.
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); });
Wprowadź następujące zmiany:
- Wprowadź nazwę urządzenia GPT-4 Turbo z wdrożeniem usługi Vision w odpowiednim polu.
- Zmień wartość
"url"
pola na adres URL obrazu.Napiwek
Można również użyć zakodowanych w formacie base 64 danych obrazu zamiast adresu URL. Aby uzyskać więcej informacji, zobacz Przewodnik z instrukcjami GPT-4 Turbo with Vision.
Uruchom aplikację za pomocą następującego polecenia:
node quickstart.js
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Skorzystaj z tego artykułu, aby rozpocząć wdrażanie i używanie modelu GPT-4 Turbo z modelem vision za pomocą zestawu SDK Języka JavaScript openAI.
Ten zestaw SDK jest dostarczany przez usługę OpenAI z określonymi typami platformy Azure udostępnianymi przez platformę Azure.
Dokumentacja referencyjna — przykłady | pakietu kodu | źródłowego biblioteki źródłowej (npm)Samples |
Wymagania wstępne
- Subskrypcja platformy Azure — utwórz bezpłatnie
- Wersje LTS Node.js
- TypeScript
- Interfejs wiersza polecenia platformy Azure używany do uwierzytelniania bez hasła w lokalnym środowisku projektowym, utwórz niezbędny kontekst, logując się przy użyciu interfejsu wiersza polecenia platformy Azure.
- Zasób usługi Azure OpenAI utworzony w obsługiwanym regionie (zobacz Dostępność regionów). Aby uzyskać więcej informacji, zobacz Tworzenie zasobu i wdrażanie modelu za pomocą usługi Azure OpenAI.
Uwaga
Ta biblioteka jest utrzymywana przez interfejs OpenAI. Zapoznaj się z historią wydania, aby śledzić najnowsze aktualizacje biblioteki.
Wymagania wstępne dotyczące identyfikatora entra firmy Microsoft
W przypadku zalecanego uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft należy wykonać następujące czynności:
- Zainstaluj interfejs wiersza polecenia platformy Azure używany do uwierzytelniania bez klucza za pomocą identyfikatora Entra firmy Microsoft.
-
Cognitive Services User
Przypisz rolę do konta użytkownika. Role można przypisać w witrynie Azure Portal w obszarze Kontrola dostępu (IAM)>Dodawanie przypisania roli.
Pobieranie informacji o zasobie
Aby uwierzytelnić aplikację przy użyciu zasobu usługi Azure OpenAI, musisz pobrać następujące informacje:
Nazwa zmiennej | Wartość |
---|---|
AZURE_OPENAI_ENDPOINT |
Tę wartość można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu w witrynie Azure Portal. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Ta wartość będzie odpowiadać nazwie niestandardowej wybranej dla wdrożenia podczas wdrażania modelu. Tę wartość można znaleźć w obszarze Wdrożenia modelu zarządzania>zasobami w witrynie Azure Portal. |
OPENAI_API_VERSION |
Dowiedz się więcej o wersjach interfejsu API. |
Dowiedz się więcej na temat uwierzytelniania bez klucza i ustawiania zmiennych środowiskowych.
Uwaga
Aby użyć zalecanego uwierzytelniania bez klucza z zestawem SDK, upewnij się, że zmienna AZURE_OPENAI_API_KEY
środowiskowa nie jest ustawiona.
Tworzenie aplikacji Node
W oknie konsoli (na przykład cmd, PowerShell lub Bash) utwórz nowy katalog dla aplikacji i przejdź do niego. Następnie uruchom polecenie , npm init
aby utworzyć aplikację węzła z plikiem package.json .
npm init
Instalowanie biblioteki klienta
Zainstaluj biblioteki klienckie za pomocą następujących funkcji:
npm install openai @azure/identity
Plik package.json aplikacji zostanie zaktualizowany o zależności.
Tworzenie nowej aplikacji JavaScript na potrzeby monitów o obraz
Wybierz obraz z pliku azure-samples/cognitive-services-sample-data-files i ustaw adres URL obrazu w zmiennych środowiskowych.
Utwórz quickstart.ts i wklej następujący kod.
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); });
Wprowadź następujące zmiany:
- Wprowadź nazwę urządzenia GPT-4 Turbo z wdrożeniem usługi Vision w odpowiednim polu.
- Zmień wartość
"url"
pola na adres URL obrazu.Napiwek
Można również użyć zakodowanych w formacie base 64 danych obrazu zamiast adresu URL. Aby uzyskać więcej informacji, zobacz Przewodnik z instrukcjami GPT-4 Turbo with Vision.
Skompiluj aplikację za pomocą następującego polecenia:
tsc
Uruchom aplikację za pomocą następującego polecenia:
node quickstart.js
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Skorzystaj z tego artykułu, aby rozpocząć korzystanie z zestawu .NET SDK platformy Azure OpenAI do wdrażania i używania modelu GPT-4 Turbo z usługą Vision.
Wymagania wstępne
- Subskrypcja platformy Azure. Możesz utworzyć go bezpłatnie.
- Zestaw .NET 8.0 SDK
- Zasób usługi Azure OpenAI z wdrożonym modelem GPT-4 Turbo z usługą Vision. Zobacz Dostępność modelu GPT-4 i GPT-4 Turbo Preview dla dostępnych regionów. Aby uzyskać więcej informacji na temat tworzenia zasobów, zobacz przewodnik wdrażania zasobów.
Konfiguruj
Pobieranie klucza i punktu końcowego
Aby pomyślnie wykonać wywołanie usługi Azure OpenAI, potrzebujesz punktu końcowegoi klucza.
Nazwa zmiennej | Wartość |
---|---|
AZURE_OPENAI_ENDPOINT |
Punkt końcowy usługi można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu w witrynie Azure Portal. Możesz też znaleźć punkt końcowy za pośrednictwem strony Wdrożenia w portalu usługi Azure AI Foundry. Przykładowy punkt końcowy to: https://docs-test-001.openai.azure.com/ . |
AZURE_OPENAI_API_KEY |
Tę wartość można znaleźć w sekcji Klucze i punkt końcowy podczas badania zasobu z poziomu witryny Azure Portal. Możesz użyć wartości KEY1 lub KEY2 . |
Przejdź do zasobu w witrynie Azure Portal. Punkt końcowy i klucze można znaleźć w sekcji Zarządzanie zasobami. Skopiuj punkt końcowy i klucz dostępu, ponieważ potrzebujesz zarówno do uwierzytelniania wywołań interfejsu API. Możesz użyć wartości KEY1
lub KEY2
. Zawsze posiadanie dwóch kluczy umożliwia bezpieczne obracanie i ponowne generowanie kluczy bez powodowania zakłóceń usługi.
Tworzenie aplikacji .NET
Utwórz aplikację platformy .NET przy użyciu
dotnet new
polecenia :dotnet new console -n OpenAISpeech
Przejdź do katalogu nowej aplikacji:
cd OpenAISpeech
Instalowanie biblioteki klienta
Zainstaluj bibliotekę Azure.OpenAI
klienta:
dotnet add package Azure.AI.OpenAI
Zalecane jest uwierzytelnianie bez hasła
Uwierzytelnianie bez hasła jest bezpieczniejsze niż alternatywy oparte na kluczach i jest zalecanym podejściem do nawiązywania połączenia z usługami platformy Azure. Jeśli zdecydujesz się używać uwierzytelniania bez hasła, musisz wykonać następujące czynności:
Dodaj pakiet
Azure.Identity
.dotnet add package Azure.Identity
Cognitive Services User
Przypisz rolę do konta użytkownika. Można to zrobić w witrynie Azure Portal w zasobie OpenAI w obszarze Kontrola dostępu (IAM)>Dodawanie przypisania roli.Zaloguj się do platformy Azure przy użyciu programu Visual Studio lub interfejsu wiersza polecenia platformy Azure za pomocą polecenia
az login
.
Aktualizowanie kodu aplikacji
Zastąp zawartość
program.cs
poniższym kodem i zaktualizuj wartości symboli zastępczych własnymi.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}");
Ważne
Zalecamy uwierzytelnianie za pomocą identyfikatora Entra firmy Microsoft z tożsamościami zarządzanymi dla zasobów platformy Azure, aby uniknąć przechowywania poświadczeń przy użyciu aplikacji uruchamianych w chmurze.
Używaj kluczy interfejsu API z ostrożnością. Nie dołączaj klucza interfejsu API bezpośrednio do kodu i nigdy nie publikuj go publicznie. Jeśli używasz kluczy interfejsu API, przechowuj je bezpiecznie w usłudze Azure Key Vault, regularnie wymieniaj klucze i ograniczaj dostęp do usługi Azure Key Vault przy użyciu kontroli dostępu opartej na rolach i ograniczeń dostępu do sieci. Aby uzyskać więcej informacji na temat bezpiecznego używania kluczy interfejsu API w aplikacjach, zobacz Klucze interfejsu API w usłudze Azure Key Vault.
Aby uzyskać więcej informacji na temat zabezpieczeń usług sztucznej inteligencji, zobacz Uwierzytelnianie żądań w usługach Azure AI.
Uruchom aplikację przy użyciu
dotnet run
polecenia lub przycisku Uruchom w górnej części programu Visual Studio:dotnet run
Aplikacja generuje plik audio w lokalizacji określonej dla zmiennej speechFilePath
. Odtwórz plik na urządzeniu, aby usłyszeć wygenerowany dźwięk.
Czyszczenie zasobów
Jeśli chcesz wyczyścić i usunąć zasób usługi Azure OpenAI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.
Następne kroki
- Rozpoczynanie pracy z aplikacjami do czatów wielomodalnych przy użyciu szablonu aplikacji azure OpenAI AI
- Dowiedz się więcej o tych interfejsach API w przewodniku z instrukcjami dotyczącymi modeli z obsługą przetwarzania obrazów
- GPT-4 Turbo z usługą Vision — często zadawane pytania
- GPT-4 Turbo z dokumentacją interfejsu API przetwarzania obrazów