Поделиться через


Краткое руководство. Начало работы с созданием звука Azure OpenAI

Модель gpt-4o-audio-preview вводит модальность звука в существующий /chat/completions API. Звуковая модель расширяет потенциал для приложений ИИ в взаимодействии с текстом и голосовой связи и анализе звука. Модальности, поддерживаемые в gpt-4o-audio-preview модели, включают: текст, звук и текст + звук.

Ниже приведена таблица поддерживаемых модальностей с примерами вариантов использования:

Входные данные модальности Выходные данные модальности Примеры использования
Текст Текст и звук Текст для речи, создание аудиокниги
Аудио Текст и звук Транскрибирование звука, создание аудиокниги
Аудио Текст Транскрибирование звука
Текст и звук Текст и звук Создание аудиокниги
Текст и звук Текст Транскрибирование звука

С помощью возможностей создания звука можно добиться более динамических и интерактивных приложений ИИ. Модели, поддерживающие входные и выходные данные звука, позволяют создавать голосовые ответы на запросы и использовать звуковые входные данные для запроса модели.

Поддерживаемые модели

В настоящее время доступна только gpt-4o-audio-preview версия: 2024-12-17 поддерживает создание звука.

Модель gpt-4o-audio-preview доступна для глобальных развертываний в регионах "Восточная часть США 2" и "Центральная Швеция".

В настоящее время для аудиозаписи поддерживаются следующие голоса: сплав, эхо и мерцание.

Максимальный размер аудиофайла составляет 20 МБ.

Примечание.

API Реального времени использует ту же базовую модель звука GPT-4o, что и API завершения, но оптимизирован для низкой задержки, взаимодействия звука в режиме реального времени.

поддержка API

Поддержка завершения звука впервые добавлена в версию 2025-01-01-previewAPI.

Развертывание модели для создания звука

Чтобы развернуть модель на портале Azure AI Foundry, выполните следующие действия gpt-4o-audio-preview .

  1. Перейдите на страницу службы Azure OpenAI на портале Azure AI Foundry. Убедитесь, что вы вошли в подписку Azure с ресурсом Azure OpenAI Service и развернутой gpt-4o-audio-preview моделью.
  2. Выберите игровую площадку чата в разделе "Игровые площадки" в левой области.
  3. Выберите и создайте новое развертывание>из базовых моделей, чтобы открыть окно развертывания.
  4. Найдите и выберите gpt-4o-audio-preview модель, а затем выберите "Развернуть" для выбранного ресурса.
  5. В мастере развертывания выберите версию 2024-12-17 модели.
  6. Следуйте инструкциям мастера, чтобы завершить развертывание модели.

Теперь, когда у вас есть развертывание gpt-4o-audio-preview модели, вы можете взаимодействовать с ней в api завершения чата портала Azure AI Foundry или API завершения чата.

Использование аудиогенерации GPT-4o

Чтобы общаться с развернутой gpt-4o-audio-preview моделью на портале Azure AI Foundry, выполните следующие действия.

  1. Перейдите на страницу службы Azure OpenAI на портале Azure AI Foundry. Убедитесь, что вы вошли в подписку Azure с ресурсом Azure OpenAI Service и развернутой gpt-4o-audio-preview моделью.

  2. Выберите игровую площадку чата в разделе "Ресурсная площадка" в левой области.

  3. Выберите развернутую gpt-4o-audio-preview модель в раскрывающемся списке развертывания .

  4. Начните чат с моделью и прослушивайте звуковые ответы.

    Снимок экрана: страница

    Вы можете:

    • Запись звуковых запросов.
    • Вложите аудиофайлы в чат.
    • Введите текстовые запросы.

Справочная документация | Исходный код библиотеки | Пакет (npm) | Примеры

Модель gpt-4o-audio-preview вводит модальность звука в существующий /chat/completions API. Звуковая модель расширяет потенциал для приложений ИИ в взаимодействии с текстом и голосовой связи и анализе звука. Модальности, поддерживаемые в gpt-4o-audio-preview модели, включают: текст, звук и текст + звук.

Ниже приведена таблица поддерживаемых модальностей с примерами вариантов использования:

Входные данные модальности Выходные данные модальности Примеры использования
Текст Текст и звук Текст для речи, создание аудиокниги
Аудио Текст и звук Транскрибирование звука, создание аудиокниги
Аудио Текст Транскрибирование звука
Текст и звук Текст и звук Создание аудиокниги
Текст и звук Текст Транскрибирование звука

С помощью возможностей создания звука можно добиться более динамических и интерактивных приложений ИИ. Модели, поддерживающие входные и выходные данные звука, позволяют создавать голосовые ответы на запросы и использовать звуковые входные данные для запроса модели.

Поддерживаемые модели

В настоящее время доступна только gpt-4o-audio-preview версия: 2024-12-17 поддерживает создание звука.

Модель gpt-4o-audio-preview доступна для глобальных развертываний в регионах "Восточная часть США 2" и "Центральная Швеция".

В настоящее время для аудиозаписи поддерживаются следующие голоса: сплав, эхо и мерцание.

Максимальный размер аудиофайла составляет 20 МБ.

Примечание.

API Реального времени использует ту же базовую модель звука GPT-4o, что и API завершения, но оптимизирован для низкой задержки, взаимодействия звука в режиме реального времени.

поддержка API

Поддержка завершения звука впервые добавлена в версию 2025-01-01-previewAPI.

Необходимые компоненты

Предварительные требования для идентификатора Microsoft Entra

Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:

  • Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
  • Назначьте роль учетной Cognitive Services User записи пользователя. Роли можно назначить в портал Azure в разделе управления доступом (IAM)>Добавить назначение ролей.

Настройка

  1. Создайте новую папку audio-completions-quickstart для хранения приложения и откройте Visual Studio Code в этой папке с помощью следующей команды:

    mkdir audio-completions-quickstart && code audio-completions-quickstart
    
  2. Создайте следующую package.json команду:

    npm init -y
    
  3. Обновите ECMAScript с помощью следующей package.json команды:

    npm pkg set type=module
    
  4. Установите клиентскую библиотеку OpenAI для JavaScript с помощью:

    npm install openai
    
  5. Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra установите @azure/identity пакет с помощью:

    npm install @azure/identity
    

Получение сведений о ресурсе

Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:

Имя переменной Значение
AZURE_OPENAI_ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка" при изучении ресурса из портал Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали для развертывания при развертывании модели. Это значение можно найти в разделе "Развертывания модели управления>ресурсами" в портал Azure.
OPENAI_API_VERSION Дополнительные сведения о версиях API.

Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.

Внимание

Чтобы использовать рекомендуемую проверку подлинности без ключа с пакетом SDK, убедитесь, что AZURE_OPENAI_API_KEY переменная среды не задана.

Создание звука из текстового ввода

  1. to-audio.js Создайте файл со следующим кодом:

    require("dotenv").config();
    const { AzureOpenAI } = require("openai");
    const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity");
    const { writeFileSync } = require("node:fs");
    
    // Keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    // Set environment variables or edit the corresponding values here.
    const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "AZURE_OPENAI_ENDPOINT";
    const apiVersion = "2025-01-01-preview"; 
    const deployment = "gpt-4o-audio-preview"; 
    
    const client = new AzureOpenAI({ 
        endpoint, 
        azureADTokenProvider, 
        apiVersion, 
        deployment 
    }); 
    
    async function main() {
    
        // Make the audio chat completions request
        const response = await client.chat.completions.create({ 
            model: "gpt-4o-audio-preview", 
            modalities: ["text", "audio"], 
            audio: { voice: "alloy", format: "wav" }, 
            messages: [ 
            { 
                role: "user", 
                content: "Is a golden retriever a good family dog?" 
            } 
            ] 
        }); 
    
    // Inspect returned data 
    console.log(response.choices[0]); 
    
    // Write the output audio data to a file
    writeFileSync( 
        "dog.wav", 
        Buffer.from(response.choices[0].message.audio.data, 'base64'), 
        { encoding: "utf-8" } 
    ); 
    }
    
    main().catch((err) => {
      console.error("Error occurred:", err);
    });
    
    module.exports = { main };
    
  2. Войдите в Azure с помощью следующей команды:

    az login
    
  3. Запустите файл JavaScript.

    node to-audio.js
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для создания звука из текстового ввода

Скрипт создает звуковой файл с именем dog.wav в том же каталоге, что и скрипт. Звуковой файл содержит речной ответ на запрос: "Является ли золотой извлекатель хорошей семейной собакой?"

Создание звука и текста из входных данных звука

  1. from-audio.js Создайте файл со следующим кодом:

    require("dotenv").config();
    const { AzureOpenAI } = require("openai");
    const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity");
    const fs = require('fs').promises;
    const { writeFileSync } = require("node:fs");
    
    // Keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    // Set environment variables or edit the corresponding values here.
    const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "AZURE_OPENAI_ENDPOINT";
    const apiVersion = "2025-01-01-preview"; 
    const deployment = "gpt-4o-audio-preview"; 
    
    const client = new AzureOpenAI({ 
        endpoint, 
        azureADTokenProvider, 
        apiVersion, 
        deployment 
    });    
    
    async function main() {
    
        // Buffer the audio for input to the chat completion
        const wavBuffer = await fs.readFile("dog.wav"); 
        const base64str = Buffer.from(wavBuffer).toString("base64"); 
    
        // Make the audio chat completions request
        const response = await client.chat.completions.create({
            model: "gpt-4o-audio-preview",
            modalities: ["text", "audio"],
            audio: { voice: "alloy", format: "wav" }, 
            messages: [
                {
                    role: "user",
                    content: [
                        { 
                            type: "text", 
                            text: "Describe in detail the spoken audio input." 
                        },
                        { 
                            type: "input_audio", 
                            input_audio: { 
                                data: base64str, 
                                format: "wav" 
                            } 
                        }
                    ]
                }
            ]
        });
    
        console.log(response.choices[0]); 
    
        // Write the output audio data to a file
        writeFileSync( 
            "analysis.wav", 
            Buffer.from(response.choices[0].message.audio.data, 'base64'), 
            { encoding: "utf-8" } 
        ); 
    }
    
    main().catch((err) => {
        console.error("Error occurred:", err);
    });
    
    module.exports = { main };
    
  2. Войдите в Azure с помощью следующей команды:

    az login
    
  3. Запустите файл JavaScript.

    node from-audio.js
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для создания звука и текста из звукового ввода

Скрипт создает расшифровку сводки голосовых входных данных. Он также создает звуковой файл с именем analysis.wav в том же каталоге, что и сценарий. Звуковой файл содержит речной ответ на запрос.

Создание звука и использование завершения чата с несколькими поворотами

  1. multi-turn.js Создайте файл со следующим кодом:

    require("dotenv").config();
    const { AzureOpenAI } = require("openai");
    const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity");
    const fs = require('fs').promises;
    
    // Keyless authentication    
    const credential = new DefaultAzureCredential();
    const scope = "https://cognitiveservices.azure.com/.default";
    const azureADTokenProvider = getBearerTokenProvider(credential, scope);
    
    // Set environment variables or edit the corresponding values here.
    const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "AZURE_OPENAI_ENDPOINT";
    const apiVersion = "2025-01-01-preview"; 
    const deployment = "gpt-4o-audio-preview"; 
    
    const client = new AzureOpenAI({ 
        endpoint, 
        azureADTokenProvider, 
        apiVersion, 
        deployment 
    }); 
    
    async function main() {
    
        // Buffer the audio for input to the chat completion
        const wavBuffer = await fs.readFile("dog.wav"); 
        const base64str = Buffer.from(wavBuffer).toString("base64"); 
    
        // Initialize messages with the first turn's user input 
        const messages = [
            {
                role: "user",
                content: [
                    { 
                        type: "text", 
                        text: "Describe in detail the spoken audio input." 
                    },
                    { 
                        type: "input_audio", 
                        input_audio: { 
                            data: base64str, 
                            format: "wav" 
                        } 
                    }
                ]
            }
        ];
    
        // Get the first turn's response 
    
        const response = await client.chat.completions.create({ 
            model: "gpt-4o-audio-preview",
            modalities: ["text", "audio"], 
            audio: { voice: "alloy", format: "wav" }, 
            messages: messages
        }); 
    
        console.log(response.choices[0]); 
    
        // Add a history message referencing the previous turn's audio by ID 
        messages.push({ 
            role: "assistant", 
            audio: { id: response.choices[0].message.audio.id }
        });
    
        // Add a new user message for the second turn
        messages.push({ 
            role: "user", 
            content: [ 
                { 
                    type: "text", 
                    text: "Very concisely summarize the favorability." 
                } 
            ] 
        }); 
    
        // Send the follow-up request with the accumulated messages
        const followResponse = await client.chat.completions.create({ 
            model: "gpt-4o-audio-preview",
            messages: messages
        });
    
        console.log(followResponse.choices[0].message.content); 
    }
    
    main().catch((err) => {
        console.error("Error occurred:", err);
    });
    
    module.exports = { main };
    
  2. Войдите в Azure с помощью следующей команды:

    az login
    
  3. Запустите файл JavaScript.

    node multi-turn.js
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для завершения чата с несколькими поворотами

Скрипт создает расшифровку сводки голосовых входных данных. Затем он делает завершение чата с несколькими поворотами, чтобы кратко суммировать голосовой ввод.

Исходный код библиотеки | Пакет | Примеры

Модель gpt-4o-audio-preview вводит модальность звука в существующий /chat/completions API. Звуковая модель расширяет потенциал для приложений ИИ в взаимодействии с текстом и голосовой связи и анализе звука. Модальности, поддерживаемые в gpt-4o-audio-preview модели, включают: текст, звук и текст + звук.

Ниже приведена таблица поддерживаемых модальностей с примерами вариантов использования:

Входные данные модальности Выходные данные модальности Примеры использования
Текст Текст и звук Текст для речи, создание аудиокниги
Аудио Текст и звук Транскрибирование звука, создание аудиокниги
Аудио Текст Транскрибирование звука
Текст и звук Текст и звук Создание аудиокниги
Текст и звук Текст Транскрибирование звука

С помощью возможностей создания звука можно добиться более динамических и интерактивных приложений ИИ. Модели, поддерживающие входные и выходные данные звука, позволяют создавать голосовые ответы на запросы и использовать звуковые входные данные для запроса модели.

Поддерживаемые модели

В настоящее время доступна только gpt-4o-audio-preview версия: 2024-12-17 поддерживает создание звука.

Модель gpt-4o-audio-preview доступна для глобальных развертываний в регионах "Восточная часть США 2" и "Центральная Швеция".

В настоящее время для аудиозаписи поддерживаются следующие голоса: сплав, эхо и мерцание.

Максимальный размер аудиофайла составляет 20 МБ.

Примечание.

API Реального времени использует ту же базовую модель звука GPT-4o, что и API завершения, но оптимизирован для низкой задержки, взаимодействия звука в режиме реального времени.

поддержка API

Поддержка завершения звука впервые добавлена в версию 2025-01-01-previewAPI.

В этом руководстве описано, как приступить к созданию звука с помощью пакета SDK OpenAI для Azure для Python.

Необходимые компоненты

Предварительные требования для идентификатора Microsoft Entra

Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:

  • Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
  • Назначьте роль учетной Cognitive Services User записи пользователя. Роли можно назначить в портал Azure в разделе управления доступом (IAM)>Добавить назначение ролей.

Настройка

  1. Создайте новую папку audio-completions-quickstart для хранения приложения и откройте Visual Studio Code в этой папке с помощью следующей команды:

    mkdir audio-completions-quickstart && code audio-completions-quickstart
    
  2. Создайте виртуальную среду. Если у вас уже установлен Python 3.10 или более поздней версии, можно создать виртуальную среду с помощью следующих команд:

    py -3 -m venv .venv
    .venv\scripts\activate
    

    Активация среды Python означает, что при запуске python или pip из командной строки используется интерпретатор Python, содержащийся в .venv папке приложения. Вы можете использовать deactivate команду для выхода из виртуальной среды Python, а затем повторно активировать ее при необходимости.

    Совет

    Рекомендуется создать и активировать новую среду Python для установки пакетов, необходимых для этого руководства. Не устанавливайте пакеты в глобальную установку Python. При установке пакетов Python всегда следует использовать виртуальную или конда-среду, в противном случае можно разорвать глобальную установку Python.

  3. Установите клиентская библиотека OpenAI для Python с помощью следующих компонентов:

    pip install openai
    
  4. Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra установите azure-identity пакет с помощью:

    pip install azure-identity
    

Получение сведений о ресурсе

Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:

Имя переменной Значение
AZURE_OPENAI_ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка" при изучении ресурса из портал Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали для развертывания при развертывании модели. Это значение можно найти в разделе "Развертывания модели управления>ресурсами" в портал Azure.
OPENAI_API_VERSION Дополнительные сведения о версиях API.

Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.

Создание звука из текстового ввода

  1. to-audio.py Создайте файл со следующим кодом:

    import requests
    import base64 
    import os 
    from openai import AzureOpenAI
    from azure.identity import DefaultAzureCredential, get_bearer_token_provider
    
    token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    client=AzureOpenAI(
        azure_ad_token_provider=token_provider,
        azure_endpoint=endpoint,
        api_version="2025-01-01-preview"
    )
    
    # Make the audio chat completions request
    completion=client.chat.completions.create(
        model="gpt-4o-audio-preview",
        modalities=["text", "audio"],
        audio={"voice": "alloy", "format": "wav"},
        messages=[
            {
                "role": "user",
                "content": "Is a golden retriever a good family dog?"
            }
        ]
    )
    
    print(completion.choices[0])
    
    # Write the output audio data to a file
    wav_bytes=base64.b64decode(completion.choices[0].message.audio.data)
    with open("dog.wav", "wb") as f:
        f.write(wav_bytes)
    
  2. Запустите файл Python.

    python to-audio.py
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для создания звука из текстового ввода

Скрипт создает звуковой файл с именем dog.wav в том же каталоге, что и скрипт. Звуковой файл содержит речной ответ на запрос: "Является ли золотой извлекатель хорошей семейной собакой?"

Создание звука и текста из входных данных звука

  1. from-audio.py Создайте файл со следующим кодом:

    import base64
    import os
    from openai import AzureOpenAI
    from azure.identity import DefaultAzureCredential, get_bearer_token_provider
    
    token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    client=AzureOpenAI(
        azure_ad_token_provider=token_provider,
        azure_endpoint=endpoint
        api_version="2025-01-01-preview"
    )
    
    # Read and encode audio file  
    with open('dog.wav', 'rb') as wav_reader: 
        encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') 
    
    # Make the audio chat completions request
    completion = client.chat.completions.create( 
        model="gpt-4o-audio-preview", 
        modalities=["text", "audio"], 
        audio={"voice": "alloy", "format": "wav"}, 
        messages=[ 
            { 
                "role": "user", 
                "content": [ 
                    {  
                        "type": "text", 
                        "text": "Describe in detail the spoken audio input." 
                    }, 
                    { 
                        "type": "input_audio", 
                        "input_audio": { 
                            "data": encoded_string, 
                            "format": "wav" 
                        } 
                    } 
                ] 
            }, 
        ] 
    ) 
    
    print(completion.choices[0].message.audio.transcript)
    
    # Write the output audio data to a file
    wav_bytes = base64.b64decode(completion.choices[0].message.audio.data)
    with open("analysis.wav", "wb") as f:
        f.write(wav_bytes)
    
  2. Запустите файл Python.

    python from-audio.py
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для создания звука и текста из звукового ввода

Скрипт создает расшифровку сводки голосовых входных данных. Он также создает звуковой файл с именем analysis.wav в том же каталоге, что и сценарий. Звуковой файл содержит речной ответ на запрос.

Создание звука и использование завершения чата с несколькими поворотами

  1. multi-turn.py Создайте файл со следующим кодом:

    import base64 
    import os 
    from openai import AzureOpenAI 
    from azure.identity import DefaultAzureCredential, get_bearer_token_provider
    
    token_provider=get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    client=AzureOpenAI(
        azure_ad_token_provider=token_provider,
        azure_endpoint=endpoint,
        api_version="2025-01-01-preview"
    )
    
    # Read and encode audio file  
    with open('dog.wav', 'rb') as wav_reader: 
        encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') 
    
    # Initialize messages with the first turn's user input 
    messages = [
        { 
            "role": "user", 
            "content": [ 
                { "type": "text", "text": "Describe in detail the spoken audio input." }, 
                { "type": "input_audio", 
                    "input_audio": { 
                        "data": encoded_string, 
                        "format": "wav" 
                    } 
                } 
            ] 
        }] 
    
    # Get the first turn's response
    
    completion = client.chat.completions.create( 
        model="gpt-4o-audio-preview", 
        modalities=["text", "audio"], 
        audio={"voice": "alloy", "format": "wav"}, 
        messages=messages
    ) 
    
    print("Get the first turn's response:")
    print(completion.choices[0].message.audio.transcript) 
    
    print("Add a history message referencing the first turn's audio by ID:")
    print(completion.choices[0].message.audio.id)
    
    # Add a history message referencing the first turn's audio by ID 
    messages.append({ 
        "role": "assistant", 
        "audio": { "id": completion.choices[0].message.audio.id } 
    }) 
    
    # Add the next turn's user message 
    messages.append({ 
        "role": "user", 
        "content": "Very briefly, summarize the favorability." 
    }) 
    
    # Send the follow-up request with the accumulated messages
    completion = client.chat.completions.create( 
        model="gpt-4o-audio-preview", 
        messages=messages
    ) 
    
    print("Very briefly, summarize the favorability.")
    print(completion.choices[0].message.content)
    
  2. Запустите файл Python.

    python multi-turn.py
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для завершения чата с несколькими поворотами

Скрипт создает расшифровку сводки голосовых входных данных. Затем он делает завершение чата с несколькими поворотами, чтобы кратко суммировать голосовой ввод.

Спецификация REST API |

Модель gpt-4o-audio-preview вводит модальность звука в существующий /chat/completions API. Звуковая модель расширяет потенциал для приложений ИИ в взаимодействии с текстом и голосовой связи и анализе звука. Модальности, поддерживаемые в gpt-4o-audio-preview модели, включают: текст, звук и текст + звук.

Ниже приведена таблица поддерживаемых модальностей с примерами вариантов использования:

Входные данные модальности Выходные данные модальности Примеры использования
Текст Текст и звук Текст для речи, создание аудиокниги
Аудио Текст и звук Транскрибирование звука, создание аудиокниги
Аудио Текст Транскрибирование звука
Текст и звук Текст и звук Создание аудиокниги
Текст и звук Текст Транскрибирование звука

С помощью возможностей создания звука можно добиться более динамических и интерактивных приложений ИИ. Модели, поддерживающие входные и выходные данные звука, позволяют создавать голосовые ответы на запросы и использовать звуковые входные данные для запроса модели.

Поддерживаемые модели

В настоящее время доступна только gpt-4o-audio-preview версия: 2024-12-17 поддерживает создание звука.

Модель gpt-4o-audio-preview доступна для глобальных развертываний в регионах "Восточная часть США 2" и "Центральная Швеция".

В настоящее время для аудиозаписи поддерживаются следующие голоса: сплав, эхо и мерцание.

Максимальный размер аудиофайла составляет 20 МБ.

Примечание.

API Реального времени использует ту же базовую модель звука GPT-4o, что и API завершения, но оптимизирован для низкой задержки, взаимодействия звука в режиме реального времени.

поддержка API

Поддержка завершения звука впервые добавлена в версию 2025-01-01-previewAPI.

Необходимые компоненты

Предварительные требования для идентификатора Microsoft Entra

Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:

  • Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
  • Назначьте роль учетной Cognitive Services User записи пользователя. Роли можно назначить в портал Azure в разделе управления доступом (IAM)>Добавить назначение ролей.

Настройка

  1. Создайте новую папку audio-completions-quickstart для хранения приложения и откройте Visual Studio Code в этой папке с помощью следующей команды:

    mkdir audio-completions-quickstart && code audio-completions-quickstart
    
  2. Создайте виртуальную среду. Если у вас уже установлен Python 3.10 или более поздней версии, можно создать виртуальную среду с помощью следующих команд:

    py -3 -m venv .venv
    .venv\scripts\activate
    

    Активация среды Python означает, что при запуске python или pip из командной строки используется интерпретатор Python, содержащийся в .venv папке приложения. Вы можете использовать deactivate команду для выхода из виртуальной среды Python, а затем повторно активировать ее при необходимости.

    Совет

    Рекомендуется создать и активировать новую среду Python для установки пакетов, необходимых для этого руководства. Не устанавливайте пакеты в глобальную установку Python. При установке пакетов Python всегда следует использовать виртуальную или конда-среду, в противном случае можно разорвать глобальную установку Python.

  3. Установите клиентская библиотека OpenAI для Python с помощью следующих компонентов:

    pip install openai
    
  4. Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra установите azure-identity пакет с помощью:

    pip install azure-identity
    

Получение сведений о ресурсе

Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:

Имя переменной Значение
AZURE_OPENAI_ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка" при изучении ресурса из портал Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали для развертывания при развертывании модели. Это значение можно найти в разделе "Развертывания модели управления>ресурсами" в портал Azure.
OPENAI_API_VERSION Дополнительные сведения о версиях API.

Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.

Создание звука из текстового ввода

  1. to-audio.py Создайте файл со следующим кодом:

    import requests
    import base64 
    import os 
    from openai import AzureOpenAI
    from azure.identity import DefaultAzureCredential
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    credential = DefaultAzureCredential()
    token = credential.get_token("https://cognitiveservices.azure.com/.default")
    
    api_version = '2025-01-01-preview'
    url = f"{endpoint}/openai/deployments/gpt-4o-audio-preview/chat/completions?api-version={api_version}"
    headers= { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" }
    body = {
      "modalities": ["audio", "text"],
      "model": "gpt-4o-audio-preview",
      "audio": {
          "format": "wav",
          "voice": "alloy"
      },
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": "Is a golden retriever a good family dog?"
            }
          ]
        }
      ]
    }
    
    # Make the audio chat completions request
    completion = requests.post(url, headers=headers, json=body)
    audio_data = completion.json()['choices'][0]['message']['audio']['data']
    
    # Write the output audio data to a file
    wav_bytes = base64.b64decode(audio_data)
    with open("dog.wav", "wb") as f: 
      f.write(wav_bytes) 
    
  2. Запустите файл Python.

    python to-audio.py
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для создания звука из текстового ввода

Скрипт создает звуковой файл с именем dog.wav в том же каталоге, что и скрипт. Звуковой файл содержит речной ответ на запрос: "Является ли золотой извлекатель хорошей семейной собакой?"

Создание звука и текста из входных данных звука

  1. from-audio.py Создайте файл со следующим кодом:

    import requests
    import base64
    import os
    from azure.identity import DefaultAzureCredential
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    credential = DefaultAzureCredential()
    token = credential.get_token("https://cognitiveservices.azure.com/.default")
    
    # Read and encode audio file  
    with open('dog.wav', 'rb') as wav_reader: 
      encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') 
    
    api_version = '2025-01-01-preview'
    url = f"{endpoint}/openai/deployments/gpt-4o-audio-preview/chat/completions?api-version={api_version}"
    headers= { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" }
    body = {
      "modalities": ["audio", "text"],
      "model": "gpt-4o-audio-preview",
      "audio": {
          "format": "wav",
          "voice": "alloy"
      },
      "messages": [
        { 
            "role": "user", 
            "content": [ 
                {  
                    "type": "text", 
                    "text": "Describe in detail the spoken audio input." 
                }, 
                { 
                    "type": "input_audio", 
                    "input_audio": { 
                        "data": encoded_string, 
                        "format": "wav" 
                    } 
                } 
            ] 
        }, 
      ]
    }
    
    completion = requests.post(url, headers=headers, json=body)
    
    print(completion.json()['choices'][0]['message']['audio']['transcript'])
    
    # Write the output audio data to a file
    audio_data = completion.json()['choices'][0]['message']['audio']['data'] 
    wav_bytes = base64.b64decode(audio_data)
    with open("analysis.wav", "wb") as f: 
      f.write(wav_bytes) 
    
  2. Запустите файл Python.

    python from-audio.py
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для создания звука и текста из звукового ввода

Скрипт создает расшифровку сводки голосовых входных данных. Он также создает звуковой файл с именем analysis.wav в том же каталоге, что и сценарий. Звуковой файл содержит речной ответ на запрос.

Создание звука и использование завершения чата с несколькими поворотами

  1. multi-turn.py Создайте файл со следующим кодом:

    import requests
    import base64 
    import os 
    from openai import AzureOpenAI 
    from azure.identity import DefaultAzureCredential
    
    # Set environment variables or edit the corresponding values here.
    endpoint = os.environ['AZURE_OPENAI_ENDPOINT']
    
    # Keyless authentication
    credential = DefaultAzureCredential()
    token = credential.get_token("https://cognitiveservices.azure.com/.default")
    
    api_version = '2025-01-01-preview'
    url = f"{endpoint}/openai/deployments/gpt-4o-audio-preview/chat/completions?api-version={api_version}"
    headers= { "Authorization": f"Bearer {token.token}", "Content-Type": "application/json" }
    
    # Read and encode audio file  
    with open('dog.wav', 'rb') as wav_reader: 
      encoded_string = base64.b64encode(wav_reader.read()).decode('utf-8') 
    
    # Initialize messages with the first turn's user input 
    messages = [
        { 
            "role": "user", 
            "content": [ 
                {  
                    "type": "text", 
                    "text": "Describe in detail the spoken audio input." 
                }, 
                { 
                    "type": "input_audio", 
                    "input_audio": { 
                        "data": encoded_string, 
                        "format": "wav" 
                    } 
                } 
            ] 
        }] 
    
    body = {
      "modalities": ["audio", "text"],
      "model": "gpt-4o-audio-preview",
      "audio": {
          "format": "wav",
          "voice": "alloy"
      },
      "messages": messages
    }
    
    # Get the first turn's response, including generated audio 
    completion = requests.post(url, headers=headers, json=body)
    
    print("Get the first turn's response:")
    print(completion.json()['choices'][0]['message']['audio']['transcript']) 
    
    print("Add a history message referencing the first turn's audio by ID:")
    print(completion.json()['choices'][0]['message']['audio']['id'])
    
    # Add a history message referencing the first turn's audio by ID 
    messages.append({ 
        "role": "assistant", 
        "audio": { "id": completion.json()['choices'][0]['message']['audio']['id'] } 
    }) 
    
    # Add the next turn's user message 
    messages.append({ 
        "role": "user", 
        "content": "Very briefly, summarize the favorability." 
    }) 
    
    body = {
      "model": "gpt-4o-audio-preview",
      "messages": messages
    }
    
    # Send the follow-up request with the accumulated messages
    completion = requests.post(url, headers=headers, json=body) 
    
    print("Very briefly, summarize the favorability.")
    print(completion.json()['choices'][0]['message']['content'])
    
  2. Запустите файл Python.

    python multi-turn.py
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для завершения чата с несколькими поворотами

Скрипт создает расшифровку сводки голосовых входных данных. Затем он делает завершение чата с несколькими поворотами, чтобы кратко суммировать голосовой ввод.

Справочная документация | Исходный код библиотеки | Пакет (npm) | Примеры

Модель gpt-4o-audio-preview вводит модальность звука в существующий /chat/completions API. Звуковая модель расширяет потенциал для приложений ИИ в взаимодействии с текстом и голосовой связи и анализе звука. Модальности, поддерживаемые в gpt-4o-audio-preview модели, включают: текст, звук и текст + звук.

Ниже приведена таблица поддерживаемых модальностей с примерами вариантов использования:

Входные данные модальности Выходные данные модальности Примеры использования
Текст Текст и звук Текст для речи, создание аудиокниги
Аудио Текст и звук Транскрибирование звука, создание аудиокниги
Аудио Текст Транскрибирование звука
Текст и звук Текст и звук Создание аудиокниги
Текст и звук Текст Транскрибирование звука

С помощью возможностей создания звука можно добиться более динамических и интерактивных приложений ИИ. Модели, поддерживающие входные и выходные данные звука, позволяют создавать голосовые ответы на запросы и использовать звуковые входные данные для запроса модели.

Поддерживаемые модели

В настоящее время доступна только gpt-4o-audio-preview версия: 2024-12-17 поддерживает создание звука.

Модель gpt-4o-audio-preview доступна для глобальных развертываний в регионах "Восточная часть США 2" и "Центральная Швеция".

В настоящее время для аудиозаписи поддерживаются следующие голоса: сплав, эхо и мерцание.

Максимальный размер аудиофайла составляет 20 МБ.

Примечание.

API Реального времени использует ту же базовую модель звука GPT-4o, что и API завершения, но оптимизирован для низкой задержки, взаимодействия звука в режиме реального времени.

поддержка API

Поддержка завершения звука впервые добавлена в версию 2025-01-01-previewAPI.

Необходимые компоненты

Предварительные требования для идентификатора Microsoft Entra

Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra необходимо:

  • Установите Azure CLI, используемый для проверки подлинности без ключа с помощью идентификатора Microsoft Entra.
  • Назначьте роль учетной Cognitive Services User записи пользователя. Роли можно назначить в портал Azure в разделе управления доступом (IAM)>Добавить назначение ролей.

Настройка

  1. Создайте новую папку audio-completions-quickstart для хранения приложения и откройте Visual Studio Code в этой папке с помощью следующей команды:

    mkdir audio-completions-quickstart && code audio-completions-quickstart
    
  2. Создайте следующую package.json команду:

    npm init -y
    
  3. Обновите ECMAScript с помощью следующей package.json команды:

    npm pkg set type=module
    
  4. Установите клиентскую библиотеку OpenAI для JavaScript с помощью:

    npm install openai
    
  5. Для рекомендуемой проверки подлинности без ключа с помощью идентификатора Microsoft Entra установите @azure/identity пакет с помощью:

    npm install @azure/identity
    

Получение сведений о ресурсе

Чтобы проверить подлинность приложения с помощью ресурса Azure OpenAI, необходимо получить следующие сведения:

Имя переменной Значение
AZURE_OPENAI_ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка" при изучении ресурса из портал Azure.
AZURE_OPENAI_DEPLOYMENT_NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали для развертывания при развертывании модели. Это значение можно найти в разделе "Развертывания модели управления>ресурсами" в портал Azure.
OPENAI_API_VERSION Дополнительные сведения о версиях API.

Дополнительные сведения о бессерверной проверке подлинности и настройке переменных среды.

Внимание

Чтобы использовать рекомендуемую проверку подлинности без ключа с пакетом SDK, убедитесь, что AZURE_OPENAI_API_KEY переменная среды не задана.

Создание звука из текстового ввода

  1. to-audio.ts Создайте файл со следующим кодом:

    import { writeFileSync } from "node:fs";
    import { AzureOpenAI } from "openai/index.mjs";
    import {
        DefaultAzureCredential,
        getBearerTokenProvider,
      } from "@azure/identity";
    
    // Set environment variables or edit the corresponding values here.
    const endpoint: string = process.env["AZURE_OPENAI_ENDPOINT"] || "AZURE_OPENAI_ENDPOINT";
    const apiVersion: string = "2025-01-01-preview"; 
    const deployment: string = "gpt-4o-audio-preview"; 
    
    // Keyless authentication 
    const getClient = (): AzureOpenAI => {
        const credential = new DefaultAzureCredential();
        const scope = "https://cognitiveservices.azure.com/.default";
        const azureADTokenProvider = getBearerTokenProvider(credential, scope);
        const client = new AzureOpenAI({
          endpoint: endpoint,
          apiVersion: apiVersion,
          azureADTokenProvider,
        });
        return client;
    };
    
    const client = getClient();
    
    async function main(): Promise<void> {
    
        // Make the audio chat completions request
        const response = await client.chat.completions.create({ 
            model: "gpt-4o-audio-preview", 
            modalities: ["text", "audio"], 
            audio: { voice: "alloy", format: "wav" }, 
            messages: [ 
            { 
                role: "user", 
                content: "Is a golden retriever a good family dog?" 
            } 
            ] 
        }); 
    
      // Inspect returned data 
      console.log(response.choices[0]); 
    
      // Write the output audio data to a file
      if (response.choices[0].message.audio) {
        writeFileSync( 
          "dog.wav", 
          Buffer.from(response.choices[0].message.audio.data, 'base64'), 
          { encoding: "utf-8" } 
        ); 
      } else {
        console.error("Audio data is null or undefined.");
      }
    }
    
    main().catch((err: Error) => {
      console.error("Error occurred:", err);
    });
    
    export { main };
    
  2. tsconfig.json Создайте файл для транспиля кода TypeScript и скопируйте следующий код для ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Транспилировать из TypeScript в JavaScript.

    tsc
    
  4. Войдите в Azure с помощью следующей команды:

    az login
    
  5. Выполните следующую команду, чтобы запустить код:

    node to-audio.js
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для создания звука из текстового ввода

Скрипт создает звуковой файл с именем dog.wav в том же каталоге, что и скрипт. Звуковой файл содержит речной ответ на запрос: "Является ли золотой извлекатель хорошей семейной собакой?"

Создание звука и текста из входных данных звука

  1. from-audio.ts Создайте файл со следующим кодом:

    import { AzureOpenAI } from "openai";
    import { writeFileSync } from "node:fs";
    import { promises as fs } from 'fs';
    import {
        DefaultAzureCredential,
        getBearerTokenProvider,
      } from "@azure/identity";
    
    // Set environment variables or edit the corresponding values here.
    const endpoint: string = process.env["AZURE_OPENAI_ENDPOINT"] || "AZURE_OPENAI_ENDPOINT";
    const apiVersion: string = "2025-01-01-preview"; 
    const deployment: string = "gpt-4o-audio-preview"; 
    
    // Keyless authentication 
    const getClient = (): AzureOpenAI => {
        const credential = new DefaultAzureCredential();
        const scope = "https://cognitiveservices.azure.com/.default";
        const azureADTokenProvider = getBearerTokenProvider(credential, scope);
        const client = new AzureOpenAI({
          endpoint: endpoint,
          apiVersion: apiVersion,
          azureADTokenProvider,
        });
        return client;
    };
    
    const client = getClient();
    
    async function main(): Promise<void> {
    
        // Buffer the audio for input to the chat completion
        const wavBuffer = await fs.readFile("dog.wav"); 
        const base64str = Buffer.from(wavBuffer).toString("base64"); 
    
        // Make the audio chat completions request
        const response = await client.chat.completions.create({ 
          model: "gpt-4o-audio-preview",
          modalities: ["text", "audio"], 
          audio: { voice: "alloy", format: "wav" },
          messages: [ 
            { 
              role: "user", 
              content: [ 
                { 
                  type: "text", 
                  text: "Describe in detail the spoken audio input." 
                }, 
                { 
                  type: "input_audio", 
                  input_audio: { 
                    data: base64str, 
                    format: "wav" 
                  } 
                } 
              ] 
            } 
          ] 
        }); 
    
        console.log(response.choices[0]); 
    
        // Write the output audio data to a file
        if (response.choices[0].message.audio) {
            writeFileSync("analysis.wav", Buffer.from(response.choices[0].message.audio.data, 'base64'), { encoding: "utf-8" });
        }
        else {
            console.error("Audio data is null or undefined.");
      }
    }
    
    main().catch((err: Error) => {
      console.error("Error occurred:", err);
    });
    
    export { main };
    
  2. tsconfig.json Создайте файл для транспиля кода TypeScript и скопируйте следующий код для ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Транспилировать из TypeScript в JavaScript.

    tsc
    
  4. Войдите в Azure с помощью следующей команды:

    az login
    
  5. Выполните следующую команду, чтобы запустить код:

    node from-audio.js
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для создания звука и текста из звукового ввода

Скрипт создает расшифровку сводки голосовых входных данных. Он также создает звуковой файл с именем analysis.wav в том же каталоге, что и сценарий. Звуковой файл содержит речной ответ на запрос.

Создание звука и использование завершения чата с несколькими поворотами

  1. multi-turn.ts Создайте файл со следующим кодом:

    import { AzureOpenAI } from "openai/index.mjs";
    import { promises as fs } from 'fs';
    import { ChatCompletionMessageParam } from "openai/resources/index.mjs";
    import {
        DefaultAzureCredential,
        getBearerTokenProvider,
      } from "@azure/identity";
    
    // Set environment variables or edit the corresponding values here.
    const endpoint: string = process.env["AZURE_OPENAI_ENDPOINT"] || "AZURE_OPENAI_ENDPOINT";
    const apiVersion: string = "2025-01-01-preview"; 
    const deployment: string = "gpt-4o-audio-preview"; 
    
    // Keyless authentication 
    const getClient = (): AzureOpenAI => {
        const credential = new DefaultAzureCredential();
        const scope = "https://cognitiveservices.azure.com/.default";
        const azureADTokenProvider = getBearerTokenProvider(credential, scope);
        const client = new AzureOpenAI({
          endpoint: endpoint,
          apiVersion: apiVersion,
          azureADTokenProvider,
        });
        return client;
    };
    
    const client = getClient(); 
    
    async function main(): Promise<void> {
    
        // Buffer the audio for input to the chat completion
        const wavBuffer = await fs.readFile("dog.wav"); 
        const base64str = Buffer.from(wavBuffer).toString("base64"); 
    
        // Initialize messages with the first turn's user input 
        const messages: ChatCompletionMessageParam[] = [
          {
            role: "user",
            content: [
              { 
                type: "text", 
                text: "Describe in detail the spoken audio input." 
              },
              { 
                type: "input_audio", 
                input_audio: { 
                  data: base64str, 
                  format: "wav" 
                } 
              }
            ]
          }
        ];
    
        // Get the first turn's response 
    
        const response = await client.chat.completions.create({ 
            model: "gpt-4o-audio-preview",
            modalities: ["text", "audio"], 
            audio: { voice: "alloy", format: "wav" }, 
            messages: messages
        }); 
    
        console.log(response.choices[0]); 
    
        // Add a history message referencing the previous turn's audio by ID 
        messages.push({ 
            role: "assistant", 
            audio: response.choices[0].message.audio ? { id: response.choices[0].message.audio.id } : undefined
        });
    
        // Add a new user message for the second turn
        messages.push({ 
            role: "user", 
            content: [ 
                { 
                  type: "text", 
                  text: "Very concisely summarize the favorability." 
                } 
            ] 
        }); 
    
        // Send the follow-up request with the accumulated messages
        const followResponse = await client.chat.completions.create({ 
            model: "gpt-4o-audio-preview",
            messages: messages
        });
    
        console.log(followResponse.choices[0].message.content); 
    }
    
    main().catch((err: Error) => {
      console.error("Error occurred:", err);
    });
    
    export { main };
    
  2. tsconfig.json Создайте файл для транспиля кода TypeScript и скопируйте следующий код для ECMAScript.

    {
        "compilerOptions": {
          "module": "NodeNext",
          "target": "ES2022", // Supports top-level await
          "moduleResolution": "NodeNext",
          "skipLibCheck": true, // Avoid type errors from node_modules
          "strict": true // Enable strict type-checking options
        },
        "include": ["*.ts"]
    }
    
  3. Транспилировать из TypeScript в JavaScript.

    tsc
    
  4. Войдите в Azure с помощью следующей команды:

    az login
    
  5. Выполните следующую команду, чтобы запустить код:

    node multi-turn.js
    

Подождите несколько минут, чтобы получить ответ.

Выходные данные для завершения чата с несколькими поворотами

Скрипт создает расшифровку сводки голосовых входных данных. Затем он делает завершение чата с несколькими поворотами, чтобы кратко суммировать голосовой ввод.

Очистка ресурсов

Если вы хотите очистить и удалить ресурс Azure OpenAI, его можно удалить. Перед удалением ресурса необходимо сначала удалить все развернутые модели.

  • Дополнительные сведения о типах развертывания Azure OpenAI
  • Дополнительные сведения о квотах и ограничениях Azure OpenAI