Udostępnij za pośrednictwem


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.

Zdjęcie wypadku samochodowego, którego można użyć do ukończenia przewodnika Szybki start.

Przejdź do usługi Azure AI Foundry

  1. 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.
  2. Wybierz koncentrator, w którym chcesz pracować.
  3. W menu nawigacji po lewej stronie wybierz pozycję Modele i punkty końcowe , a następnie wybierz pozycję + Wdróż model.
  4. 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).
  5. Wybierz Wdróż.
  6. 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.

  1. Aby rozpocząć, upewnij się, że wdrożenie z obsługą obrazów zostało wybrane na liście rozwijanej Wdrożenie .

  2. 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.

  3. Wybierz pozycję Zastosuj zmiany , aby zapisać zmiany.

  4. W okienku sesji czatu wybierz przycisk załącznika, a następnie pozycję Przekaż obraz. Wybierz obraz.

  5. Dodaj następujący monit w polu czatu: Describe this image, a następnie wybierz ikonę wysyłania, aby ją przesłać.

  6. 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ź.

  7. Asystent odpowiada opisem obrazu.

  8. Zadaj kolejne pytanie związane z analizą obrazu. Możesz wprowadzić wartość . "What should I highlight about this image to my insurance company?"

  9. 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

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.

Zrzut ekranu przedstawiający stronę Klucze i punkt końcowy zasobu usługi Azure OpenAI w witrynie Azure Portal.

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.

  1. 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)
    
  2. Wprowadź następujące zmiany:

    1. Wprowadź adres URL i klucz punktu końcowego w odpowiednich polach.
    2. Wprowadź nazwę wdrożenia GPT-4 Turbo z nazwą wdrożenia przetwarzania obrazów w odpowiednim polu.
    3. 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.

  3. 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

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.

Zrzut ekranu przedstawiający interfejs użytkownika przeglądu zasobu usługi Azure OpenAI w witrynie Azure Portal z lokalizacją punktu końcowego i kluczy dostępu w kolorze czerwonym.

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.

  1. 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)
    
  2. Wprowadź następujące zmiany:

    1. Wprowadź nazwę urządzenia GPT-4 Turbo z wdrożeniem usługi Vision w odpowiednim polu.
    2. 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.

  3. 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

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.

  1. 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);
    });
    
  2. Wprowadź następujące zmiany:

    1. Wprowadź nazwę urządzenia GPT-4 Turbo z wdrożeniem usługi Vision w odpowiednim polu.
    2. 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.

  3. 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

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.

  1. 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);
    });
    
  2. Wprowadź następujące zmiany:

    1. Wprowadź nazwę urządzenia GPT-4 Turbo z wdrożeniem usługi Vision w odpowiednim polu.
    2. 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.

  3. Skompiluj aplikację za pomocą następującego polecenia:

    tsc
    
  4. 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.

Zrzut ekranu przedstawiający interfejs użytkownika przeglądu zasobu usługi Azure OpenAI w witrynie Azure Portal z wyróżnioną lokalizacją punktów końcowych i kluczy dostępu.

Tworzenie aplikacji .NET

  1. Utwórz aplikację platformy .NET przy użyciu dotnet new polecenia :

    dotnet new console -n OpenAISpeech
    
  2. Przejdź do katalogu nowej aplikacji:

    cd OpenAISpeech
    

Instalowanie biblioteki klienta

Zainstaluj bibliotekę Azure.OpenAI klienta:

dotnet add package Azure.AI.OpenAI

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:

  1. Dodaj pakiet Azure.Identity.

    dotnet add package Azure.Identity
    
  2. 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.

  3. 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

  1. 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.

  1. 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