Краткое руководство. Начало создания текста с помощью службы Azure OpenAI

Используйте эту статью, чтобы приступить к выполнению первых вызовов к Azure OpenAI.

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

  • Подписка Azure — создайте бесплатную учетную запись.

  • Службе Azure OpenAI предоставлен доступ в требуемой подписке Azure

    В настоящее время доступ к этой службе предоставляется только приложением. Вы можете подать заявку на доступ к Azure OpenAI, выполнив форму по адресу https://aka.ms/oai/access. Если у вас возникли проблемы, создайте соответствующий запрос в этом репозитории, чтобы связаться с нами.

  • Ресурс Azure OpenAI с развернутой моделью. Дополнительные сведения о моделях развертывания Azure, см. в руководстве по развертыванию ресурсов.

Совет

Попробуйте создать единую среду Azure AI Studio (предварительная версия), которая объединяет возможности из нескольких служб ИИ Azure.

Перейдите в Azure OpenAI Studio.

Перейдите в Azure OpenAI Studio https://oai.azure.com/ и войдите с учетными данными, имеющими доступ к ресурсу OpenAI. Во время или после рабочего процесса входа выберите соответствующий каталог, подписку Azure и ресурс Azure OpenAI.

На целевой странице Azure OpenAI Studio перейдите дальше, чтобы изучить примеры завершения запроса, управлять развертываниями и моделями, а также найти учебные ресурсы, такие как документация и форумы сообщества.

Снимок экрана: целевая страница Azure OpenAI Studio.

Перейдите на площадку для экспериментирования и рабочего процесса тонкой настройки.

Тестовая площадка

Начните изучение возможностей Azure OpenAI с использованием подхода без кода с помощью игровой площадки GPT-3. Это просто текстовое поле, в котором можно отправить запрос на создание завершения. На этой странице можно быстро итерировать и экспериментировать с возможностями.

Снимок экрана: страница тестовой площадки Azure OpenAI Studio с выделенными разделами.

Чтобы приступить к работе, можно выбрать развертывание и выбрать один из нескольких предварительно загруженных примеров. Если у вашего ресурса нет развертывания, нажмите кнопку "Создать развертывание " и следуйте инструкциям мастера. Дополнительные сведения о моделях развертывания Azure, см. в руководстве по развертыванию ресурсов.

Вы можете поэкспериментировать с параметрами конфигурации, такими как температура и текст предварительного ответа, чтобы повысить производительность задачи. Дополнительные сведения о каждом параметре в REST API можно узнать.

  • Нажатие кнопки "Создать " отправит введенный текст в API завершения и передаст результаты обратно в текстовое поле.
  • Нажмите кнопку "Отменить", чтобы отменить вызов предыдущего поколения.
  • Нажмите кнопку "Повторно создать", чтобы завершить вызов отмены и создания вместе.

Azure OpenAI также выполняет con режим палатки ration в запросах и созданных выходных данных. Запросы или ответы могут быть отфильтрованы, если обнаружено вредное содержимое. Дополнительные сведения см. в статье фильтра содержимого.

На игровой площадке GPT-3 вы также можете просмотреть примеры кода Python и curl, предварительно заполненные в соответствии с выбранными параметрами. Просто выберите код представления рядом с раскрывающимся списком примеров. Вы можете написать приложение для выполнения той же задачи с помощью пакета SDK Для OpenAI Python, curl или другого клиента REST API.

Попробуйте сводные данные по тексту

Чтобы использовать Azure OpenAI для текстовых сводных данных на игровой площадке GPT-3, выполните следующие действия.

  1. Войдите в Azure OpenAI Studio.

  2. Выберите подписку и ресурс OpenAI для работы.

  3. Выберите GPT-3 Playground в верхней части целевой страницы.

  4. Выберите развертывание в раскрывающемся списке "Развертывания". Если у ресурса нет развертывания, нажмите кнопку "Создать развертывание ", а затем повторите этот шаг.

  5. Выберите "Суммировать текст " в раскрывающемся списке "Примеры ".

    Снимок экрана: страница тестовой площадки Azure OpenAI Studio, на которой выбран раскрывающийся список

  6. Выберите Generate. Azure OpenAI попытается записать контекст текста и переразить его кратко. Вы должны получить результат, похожий на следующий текст:

    Tl;dr A neutron star is the collapsed core of a supergiant star. These incredibly dense objects are incredibly fascinating due to their strange properties and their potential for phenomena such as extreme gravitational forces and a strong magnetic field.
    

Точность ответа может отличаться на модель. Модель на основе Davinci в этом примере хорошо подходит для этого типа суммирования, в то время как модель на основе Codex не будет выполняться так же, как и в этой конкретной задаче.

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

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

Следующие шаги

Примеры пакета исходного кода | (NuGet) |

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

Настройка

Создание приложения .NET Core

В окне консоли (cmd, PowerShell или Bash) выполните команду dotnet new, чтобы создать консольное приложение с именем azure-openai-quickstart. Эта команда создает простой проект Hello World с одним исходным файлом C#: Program.cs.

dotnet new console -n azure-openai-quickstart

Измените каталог на созданную папку приложения. Чтобы создать приложение, выполните следующую команду:

dotnet build

Выходные данные сборки не должны содержать предупреждений или ошибок.

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

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

dotnet add package Azure.AI.OpenAI --prerelease

Получение ключа и конечной точки

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

Имя переменной Значение
ENDPOINT Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Кроме того, значение можно найти, выбрав Azure OpenAI Studio >Тестовая площадка >Представление кода. Пример конечной точки: https://docs-test-001.openai.azure.com/.
API-KEY Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Вы можете использовать KEY1 или KEY2.

Перейдите к своему ресурсу на портале Azure. Раздел "Ключи и конечная точка " можно найти в разделе "Управление ресурсами". Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1 или KEY2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.

Снимок экрана: пользовательский интерфейс обзора для ресурса Azure OpenAI в портал Azure с конечной точкой и расположением ключей доступа, окружаемых красным цветом.

Переменные среды

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Создание примера приложения

В каталоге проекта откройте файл program.cs и замените содержимое следующим кодом:

using Azure;
using Azure.AI.OpenAI;
using static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");

var client = new OpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));

CompletionsOptions completionsOptions = new()
{
    DeploymentName = "gpt-35-turbo-instruct", 
    Prompts = { "When was Microsoft founded?" },
};

Response<Completions> completionsResponse = client.GetCompletions(completionsOptions);
string completion = completionsResponse.Value.Choices[0].Text;
Console.WriteLine($"Chatbot: {completion}");

Внимание

Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в статье о безопасности служб искусственного интеллекта Azure.

dotnet run program.cs

Выходные данные

Chatbot:

Microsoft was founded on April 4, 1975.

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

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

Следующие шаги

Примеры пакета исходного кода | (Go)|

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

  • подписка Azure — создайте бесплатную учетную запись.
  • Доступ, предоставленный службе Azure OpenAI в требуемой подписке Azure. В настоящее время доступ к этой службе предоставляется только приложением. Вы можете подать заявку на доступ к службе Azure OpenAI, выполнив форму по адресу https://aka.ms/oai/access.
  • Go 1.21.0 или более поздней версии, установленной локально.
  • Ресурс службы Azure OpenAI с развернутой моделью gpt-35-turbo-instuct . Дополнительные сведения о моделях развертывания Azure, см. в руководстве по развертыванию ресурсов.

Настройка

Получение ключа и конечной точки

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

Имя переменной Значение
ENDPOINT Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Кроме того, значение можно найти, выбрав Azure OpenAI Studio >Тестовая площадка >Представление кода. Пример конечной точки: https://docs-test-001.openai.azure.com/.
API-KEY Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Вы можете использовать KEY1 или KEY2.

Перейдите к своему ресурсу на портале Azure. Раздел "Ключи и конечная точка " можно найти в разделе "Управление ресурсами". Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1 или KEY2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.

Снимок экрана: пользовательский интерфейс обзора для ресурса Azure OpenAI в портал Azure с конечной точкой и расположением ключей доступа, окружаемых красным цветом.

Переменные среды

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Создание примера приложения

Создайте файл с именем completions.go. Скопируйте следующий код в файл completions.go.

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
)

func main() {
	azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
	modelDeploymentID := "gpt-35-turbo-instruct"

	azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")

	if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" {
		fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
		return
	}

	keyCredential, err := azopenai.NewKeyCredential(azureOpenAIKey)

	if err != nil {
		// TODO: handle error
	}

	client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)

	if err != nil {
		// TODO: handle error
	}

	resp, err := client.GetCompletions(context.TODO(), azopenai.CompletionsOptions{
		Prompt:       []string{"What is Azure OpenAI, in 20 words or less"},
		MaxTokens:    to.Ptr(int32(2048)),
		Temperature:  to.Ptr(float32(0.0)),
		Deployment: modelDeploymentID,
	}, nil)

	if err != nil {
		// TODO: handle error
	}

	for _, choice := range resp.Choices {
		fmt.Fprintf(os.Stderr, "Result: %s\n", *choice.Text)
	}

}

Внимание

Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в статье о безопасности служб искусственного интеллекта Azure.

Теперь откройте командную строку и выполните следующую команду:

go mod init completions.go

Следующий запуск:

go mod tidy
go run completions.go

Выходные данные

== Get completions Sample ==

Microsoft was founded on April 4, 1975.

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

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

Следующие шаги

Примеры артефактов исходного кода | (Maven) |

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

  • подписка Azure — создайте бесплатную учетную запись.
  • Доступ, предоставленный службе Azure OpenAI в требуемой подписке Azure. В настоящее время доступ к этой службе предоставляется только приложением. Вы можете подать заявку на доступ к службе Azure OpenAI, выполнив форму по адресу https://aka.ms/oai/access.

Настройка

Получение ключа и конечной точки

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

Имя переменной Значение
ENDPOINT Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Кроме того, значение можно найти, выбрав Azure OpenAI Studio >Тестовая площадка >Представление кода. Пример конечной точки: https://docs-test-001.openai.azure.com/.
API-KEY Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Вы можете использовать KEY1 или KEY2.

Перейдите к своему ресурсу на портале Azure. Раздел "Ключи и конечная точка " можно найти в разделе "Управление ресурсами". Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1 или KEY2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.

Снимок экрана: пользовательский интерфейс обзора для ресурса Azure OpenAI в портал Azure с конечной точкой и расположением ключей доступа, окружаемых красным цветом.

Переменные среды

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Создание нового приложения Java

Создайте проект Gradle.

В окне консоли (например, cmd, PowerShell или Bash) создайте новый каталог для приложения и перейдите в него.

mkdir myapp && cd myapp

Выполните команду gradle init из рабочей папки. Эта команда создает необходимые файлы сборки для Gradle, включая build.gradle.kts, который используется во время выполнения для создания и настройки приложения.

gradle init --type basic

Когда появится запрос на выбор предметно-ориентированного языка, выберите Kotlin.

Установка пакета SDK для Java

В этом кратком руководстве используется диспетчер зависимостей Gradle. Клиентскую библиотеку и информацию для других диспетчеров зависимостей можно найти в центральном репозитории Maven.

Найдите файл build.gradle.kts и откройте его в предпочитаемой интегрированной среде разработки или текстовом редакторе. Затем скопируйте и вставьте в файл приведенную ниже конфигурацию сборки. Эта конфигурация определяет проект как приложение Java, точка входа которого — класс OpenAIQuickstart. Она импортирует библиотеку Визуального распознавания ИИ Azure.

plugins {
    java
    application
}
application { 
    mainClass.set("GetCompletionsSample")
}
repositories {
    mavenCentral()
}
dependencies {
    implementation(group = "com.azure", name = "azure-ai-openai", version = "1.0.0-beta.3")
    implementation("org.slf4j:slf4j-simple:1.7.9")
}

Создание примера приложения

  1. Создайте файл Java.

    В рабочей папке выполните следующую команду, чтобы создать исходную папку проекта.

    mkdir -p src/main/java
    

    Перейдите к новой папке и создайте файл с именем GetCompletionsSample.java.

  2. Откройте GetCompletionsSample.java в предпочитаемом редакторе или интегрированной среде разработки и вставьте следующий код.

    package com.azure.ai.openai.usage;
    
    import com.azure.ai.openai.OpenAIClient;
    import com.azure.ai.openai.OpenAIClientBuilder;
    import com.azure.ai.openai.models.Choice;
    import com.azure.ai.openai.models.Completions;
    import com.azure.ai.openai.models.CompletionsOptions;
    import com.azure.ai.openai.models.CompletionsUsage;
    import com.azure.core.credential.AzureKeyCredential;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class GetCompletionsSample {
    
        public static void main(String[] args) {
            String azureOpenaiKey = System.getenv("AZURE_OPENAI_API_KEY");;
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");;
            String deploymentOrModelId = "gpt-35-turbo-instruct";
    
            OpenAIClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new AzureKeyCredential(azureOpenaiKey))
                .buildClient();
    
            List<String> prompt = new ArrayList<>();
            prompt.add("When was Microsoft founded?");
    
            Completions completions = client.getCompletions(deploymentOrModelId, new CompletionsOptions(prompt));
    
            System.out.printf("Model ID=%s is created at %s.%n", completions.getId(), completions.getCreatedAt());
            for (Choice choice : completions.getChoices()) {
                System.out.printf("Index: %d, Text: %s.%n", choice.getIndex(), choice.getText());
            }
    
            CompletionsUsage usage = completions.getUsage();
            System.out.printf("Usage: number of prompt token is %d, "
                    + "number of completion token is %d, and number of total tokens in request and response is %d.%n",
                usage.getPromptTokens(), usage.getCompletionTokens(), usage.getTotalTokens());
        }
    }
    

    Внимание

    Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в статье о безопасности служб искусственного интеллекта Azure.

  3. Вернитесь в корневую папку проекта и выполните сборку приложения:

    gradle build
    

    Затем запустите его с помощью команды gradle run:

    gradle run
    

Выходные данные

Model ID=cmpl-7JZRbWuEuHX8ozzG3BXC2v37q90mL is created at 1684898835.
Index: 0, Text:

Microsoft was founded on April 4, 1975..
Usage: number of prompt token is 5, number of completion token is 11, and number of total tokens in request and response is 16.

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

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

Следующие шаги

Пример артефактов исходного кода | (Maven) |

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

Настройка

Получение ключа и конечной точки

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

Имя переменной Значение
ENDPOINT Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Кроме того, значение можно найти, выбрав Azure OpenAI Studio >Тестовая площадка >Представление кода. Пример конечной точки: https://docs-test-001.openai.azure.com/.
API-KEY Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Вы можете использовать KEY1 или KEY2.

Перейдите к своему ресурсу на портале Azure. Раздел "Ключи и конечная точка " можно найти в разделе "Управление ресурсами". Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1 или KEY2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.

Снимок экрана: пользовательский интерфейс обзора для ресурса Azure OpenAI в портал Azure с конечной точкой и расположением ключей доступа, окружаемых красным цветом.

Переменные среды

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

Примечание.

Spring AI по умолчанию использует имя gpt-35-turboмодели. Необходимо указать SPRING_AI_AZURE_OPENAI_MODEL значение только в том случае, если вы развернули модель с другим именем.

export SPRING_AI_AZURE_OPENAI_API_KEY="REPLACE_WITH_YOUR_KEY_VALUE_HERE"
export SPRING_AI_AZURE_OPENAI_ENDPOINT="REPLACE_WITH_YOUR_ENDPOINT_HERE"
export SPRING_AI_AZURE_OPENAI_MODEL="REPLACE_WITH_YOUR_MODEL_NAME_HERE"

Создание нового приложения Spring

Создайте проект Spring.

В окне Bash создайте новый каталог для приложения и перейдите к нему.

mkdir ai-completion-demo && cd ai-completion-demo

Выполните команду spring init из рабочей папки. Эта команда создает стандартную структуру каталогов для проекта Spring, включая исходный файл класса Java и файл pom.xml , используемый для управления проектами на основе Maven.

spring init -a ai-completion-demo -n AICompletion --force --build maven -x

Созданные файлы и папки похожи на следующую структуру:

ai-completion-demo/
|-- pom.xml
|-- mvn
|-- mvn.cmd
|-- HELP.md
|-- src/
    |-- main/
    |   |-- resources/
    |   |   |-- application.properties
    |   |-- java/
    |       |-- com/
    |           |-- example/
    |               |-- aicompletiondemo/
    |                   |-- AiCompletionApplication.java
    |-- test/
        |-- java/
            |-- com/
                |-- example/
                    |-- aicompletiondemo/
                        |-- AiCompletionApplicationTests.java

Изменение приложения Spring

  1. Отредактируйте файл pom.xml.

    В корневом каталоге проекта откройте файл pom.xml в предпочтительном редакторе или интегрированной среде разработки и перезаписать файл следующим содержимым:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>3.2.0</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>ai-completion-demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>AICompletion</name>
        <description>Demo project for Spring Boot</description>
        <properties>
            <java.version>17</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.experimental.ai</groupId>
                <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
                <version>0.7.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        <repositories>
            <repository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <releases>
                    <enabled>false</enabled>
                </releases>
            </repository>
        </repositories>
    </project>
    
  2. В папке src/main/java/com/example/aicompletiondemo откройте AiCompletionApplication.java в предпочтительном редакторе или интегрированной среде разработки и вставьте следующий код:

    package com.example.aicompletiondemo;
    
    import java.util.Collections;
    import java.util.List;
    
    import org.springframework.ai.client.AiClient;
    import org.springframework.ai.prompt.Prompt;
    import org.springframework.ai.prompt.messages.Message;
    import org.springframework.ai.prompt.messages.MessageType;
    import org.springframework.ai.prompt.messages.UserMessage;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class AiCompletionApplication implements CommandLineRunner
    {
        private static final String ROLE_INFO_KEY = "role";
    
        @Autowired
        private AiClient aiClient;
    
        public static void main(String[] args) {
            SpringApplication.run(AiCompletionApplication.class, args);
        }
    
        @Override
        public void run(String... args) throws Exception
        {
            System.out.println(String.format("Sending completion prompt to AI service. One moment please...\r\n"));
    
            final List<Message> msgs =
                    Collections.singletonList(new UserMessage("When was Microsoft founded?"));
    
            final var resps = aiClient.generate(new Prompt(msgs));
    
            System.out.println(String.format("Prompt created %d generated response(s).", resps.getGenerations().size()));
    
            resps.getGenerations().stream()
              .forEach(gen -> {
                  final var role = gen.getInfo().getOrDefault(ROLE_INFO_KEY, MessageType.ASSISTANT.getValue());
    
                  System.out.println(String.format("Generated respose from \"%s\": %s", role, gen.getText()));
              });
        }
    
    }
    

    Внимание

    Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в статье о безопасности служб искусственного интеллекта Azure.

  3. Вернитесь к корневой папке проекта и запустите приложение с помощью следующей команды:

    ./mvnw spring-boot:run
    

Выходные данные

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.1.5)

2023-11-07T12:47:46.126-06:00  INFO 98687 --- [           main] c.e.a.AiCompletionApplication            : No active profile set, falling back to 1 default profile: "default"
2023-11-07T12:47:46.823-06:00  INFO 98687 --- [           main] c.e.a.AiCompletionApplication            : Started AiCompletionApplication in 0.925 seconds (process running for 1.238)
Sending completion prompt to AI service. One moment please...

Prompt created 1 generated response(s).
Generated respose from "assistant": Microsoft was founded on April 4, 1975.

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

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

Следующие шаги

Дополнительные примеры проверка из репозитория GitHub в Azure OpenAI Samples

Примеры пакета исходного кода | (npm) |

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

Настройка

Получение ключа и конечной точки

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

Имя переменной Значение
ENDPOINT Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Кроме того, значение можно найти, выбрав Azure OpenAI Studio >Тестовая площадка >Представление кода. Пример конечной точки: https://docs-test-001.openai.azure.com/.
API-KEY Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Вы можете использовать KEY1 или KEY2.

Перейдите к своему ресурсу на портале Azure. Раздел "Ключи и конечная точка " можно найти в разделе "Управление ресурсами". Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1 или KEY2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.

Снимок экрана: пользовательский интерфейс обзора для ресурса Azure OpenAI в портал Azure с конечной точкой и расположением ключей доступа, окружаемых красным цветом.

Переменные среды

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

В окне консоли (например, cmd, PowerShell или Bash) создайте новый каталог для приложения и перейдите в него. Затем выполните npm init команду, чтобы создать приложение узла с package.json файлом.

npm init

Установка клиентской библиотеки

Установите клиентскую библиотеку Azure OpenAI для JavaScript с помощью npm:

npm install @azure/openai

Файл package.json приложения будет обновлен с помощью зависимостей.

Создание примера приложения

Откройте командную строку, в которой вы создали проект, и создайте файл с именем Completion.js. Скопируйте следующий код в файл Completion.js.

const { OpenAIClient, AzureKeyCredential } = require("@azure/openai");
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] ;
const azureApiKey = process.env["AZURE_OPENAI_API_KEY"] ;

const prompt = ["When was Microsoft founded?"];

async function main() {
  console.log("== Get completions Sample ==");

  const client = new OpenAIClient(endpoint, new AzureKeyCredential(azureApiKey));
  const deploymentId = "gpt-35-turbo-instruct";
  const result = await client.getCompletions(deploymentId, prompt);

  for (const choice of result.choices) {
    console.log(choice.text);
  }
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

module.exports = { main };

Внимание

Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в статье о безопасности служб искусственного интеллекта Azure.

Выполните скрипт с помощью следующей команды:

node.exe Completion.js

Выходные данные

== Get completions Sample ==

Microsoft was founded on April 4, 1975.

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

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

Следующие шаги

Исходный код библиотеки | Пакет (PyPi) |

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

  • подписка Azure — создайте бесплатную учетную запись.

  • Доступ, предоставленный Azure OpenAI в требуемой подписке Azure

    В настоящее время доступ к этой службе предоставляется только приложением. Вы можете подать заявку на доступ к Azure OpenAI, выполнив форму по адресу https://aka.ms/oai/access. Если у вас возникли проблемы, создайте соответствующий запрос в этом репозитории, чтобы связаться с нами.

  • Python 3.8 или более поздней версии

  • Следующие библиотеки Python: os, requests, json

  • Ресурс службы Azure OpenAI с развернутой моделью gpt-35-turbo-instruct . Дополнительные сведения о моделях развертывания Azure, см. в руководстве по развертыванию ресурсов.

Настройка

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

pip install openai

Примечание.

Эта библиотека поддерживается OpenAI и в настоящее время находится в предварительной версии. Ознакомьтесь с журналом выпуска или журналом фиксации version.py, чтобы отслеживать последние обновления библиотеки.

Получение ключа и конечной точки

Для успешного выполнения вызова к службе Azure OpenAI вам потребуется следующее.

Имя переменной Значение
ENDPOINT Это значение можно найти в разделе "Ключи и конечная точка" при изучении ресурса из портал Azure. Кроме того, можно найти значение в коде представления игровой площадки>в Azure OpenAI Studio.> Пример конечной точки: https://docs-test-001.openai.azure.com/.
API-KEY Это значение можно найти в разделе "Ключи и конечная точка" при изучении ресурса из портал Azure. Вы можете использовать KEY1 или KEY2.
DEPLOYMENT-NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали для развертывания при развертывании модели. Это значение можно найти в разделе "Развертывания модели управления>ресурсами" в портал Azure или в разделе "Развертывания управления>" в Azure OpenAI Studio.

Перейдите к своему ресурсу на портале Azure. Ключи и конечная точка можно найти в разделе "Управление ресурсами". Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1 или KEY2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.

Снимок экрана: колонка обзора для ресурса Azure OpenAI в портал Azure с расположением ключей доступа и конечных точек, окружаемых красным цветом.

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

Переменные среды

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Создание приложения Python

  1. Создайте файл Python с именем quickstart.py. Затем откройте его в предпочитаемом редакторе или интегрированной среде разработки.

  2. Замените содержимое файла quickstart.py приведенным ниже кодом. Добавьте в код ключ, конечную точку и имя развертывания:

import os
from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-02-01",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )
    
deployment_name='REPLACE_WITH_YOUR_DEPLOYMENT_NAME' #This will correspond to the custom name you chose for your deployment when you deployed a model. Use a gpt-35-turbo-instruct deployment. 
    
# Send a completion call to generate an answer
print('Sending a test completion job')
start_phrase = 'Write a tagline for an ice cream shop. '
response = client.completions.create(model=deployment_name, prompt=start_phrase, max_tokens=10)
print(start_phrase+response.choices[0].text)

Внимание

Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в статье о безопасности служб искусственного интеллекта Azure.

  1. Запустите приложение с python помощью команды в файле быстрого запуска:

    python quickstart.py
    

Выходные данные

Выходные данные будут содержать текст ответа после Write a tagline for an ice cream shop. запроса. Azure OpenAI, возвращенный The coldest ice cream in town! в этом примере.

Sending a test completion job
Write a tagline for an ice cream shop. The coldest ice cream in town!

Запустите код еще несколько раз, чтобы ознакомиться с другими типами ответов, так как не всегда ответ будет одинаковым.

Расшифровка результатов

Так как наш пример содержит мало контекста Write a tagline for an ice cream shop. , это нормально для модели, чтобы не всегда возвращать ожидаемые результаты. Если ответ является неожиданным или усеченным, можно настроить максимально допустимое количество маркеров.

Azure OpenAI также выполняет con режим палатки ration в запросах и созданных выходных данных. Запросы или ответы могут быть отфильтрованы, если обнаружено вредное содержимое. Дополнительные сведения см. в статье фильтра содержимого.

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

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

Следующие шаги

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

Настройка

Получение ключа и конечной точки

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

Имя переменной Значение
ENDPOINT Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Кроме того, значение можно найти, выбрав Azure OpenAI Studio>Тестовая площадка>Представление кода. Пример конечной точки: https://docs-test-001.openai.azure.com/.
API-KEY Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Вы можете использовать KEY1 или KEY2.
DEPLOYMENT-NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали для развертывания при развертывании модели. Это значение можно найти в разделеУправление ресурсами >Развертывания на портале Azure или в разделеУправление >Развертывания в Azure OpenAI Studio.

Перейдите к своему ресурсу на портале Azure. Конечную точку и ключи можно найти в разделе Управление ресурсами. Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1 или KEY2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.

Снимок экрана: колонка обзора для ресурса Azure OpenAI в портал Azure с расположением ключей доступа и конечных точек, окружаемых красным цветом.

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

Переменные среды

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

REST API

В оболочке bash выполните следующую команду. Вам потребуется заменить gpt-35-turbo-instruct имя развертывания, выбранное при развертывании gpt-35-turbo-instruct модели. Ввод имени модели приведет к ошибке, если вы не выбрали имя развертывания, идентичное имени базовой модели.

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/gpt-35-turbo-instruct/completions?api-version=2024-02-01 \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d "{\"prompt\": \"Once upon a time\"}"

Формат первой строки команды с примером конечной точки будет выглядеть следующим образом curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/completions?api-version=2024-02-01 \. При возникновении ошибки дважды проверка, чтобы убедиться, что у вас нет удвоения / между конечной точкой и/openai/deployments.

Если вы хотите выполнить эту команду в обычной командной строке Windows, необходимо изменить текст, чтобы удалить \ разрывы строк.

Внимание

Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в статье о безопасности служб искусственного интеллекта Azure.

Выходные данные

Выходные данные API завершений будут выглядеть следующим образом.

{
    "id": "ID of your call",
    "object": "text_completion",
    "created": 1675444965,
    "model": "gpt-35-turbo-instruct",
    "choices": [
        {
            "text": " there lived in a little village a woman who was known as the meanest",
            "index": 0,
            "finish_reason": "length",
            "logprobs": null
        }
    ],
    "usage": {
        "completion_tokens": 16,
        "prompt_tokens": 3,
        "total_tokens": 19
    }
}

Служба Azure OpenAI также выполняет con режим палатки ration в запросах и созданных выходных данных. Запросы или ответы могут быть отфильтрованы, если обнаружено вредное содержимое. Дополнительные сведения см. в статье фильтра содержимого.

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

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

Следующие шаги

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

Получение ключа и конечной точки

Для успешного выполнения вызова к службе Azure OpenAI вам потребуется следующее.

Имя переменной Значение
ENDPOINT Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Кроме того, значение можно найти, выбрав Azure OpenAI Studio>Тестовая площадка>Представление кода. Пример конечной точки: https://docs-test-001.openai.azure.com/.
API-KEY Это значение можно найти в разделе Ключи и конечная точка при просмотре ресурса на портале Azure. Вы можете использовать KEY1 или KEY2.
DEPLOYMENT-NAME Это значение будет соответствовать пользовательскому имени, которое вы выбрали для развертывания при развертывании модели. Это значение можно найти в разделеУправление ресурсами >Развертывания на портале Azure или в разделеУправление >Развертывания в Azure OpenAI Studio.

Перейдите к своему ресурсу на портале Azure. Конечную точку и ключи можно найти в разделе Управление ресурсами. Скопируйте конечную точку и ключ доступа, так как они потребуются для проверки подлинности вызовов API. Вы можете использовать KEY1 или KEY2. Наличие двух ключей позволяет безопасно менять и повторно создавать ключи без прерывания работы службы.

Снимок экрана: колонка обзора для ресурса Azure OpenAI в портал Azure с расположением ключей доступа и конечных точек, окружаемых красным цветом.

Создайте и назначьте переменные постоянной среды для ключа и конечной точки.

Переменные среды

$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'

Создание скрипта PowerShell

  1. Создайте новый файл PowerShell с именем quickstart.ps1. Затем откройте его в предпочитаемом редакторе или интегрированной среде разработки.

  2. Замените содержимое quickstart.ps1 следующим кодом. Добавьте в код ключ, конечную точку и имя развертывания:

    # Azure OpenAI metadata variables
    $openai = @{
        api_key     = $Env:AZURE_OPENAI_API_KEY
        api_base    = $Env:AZURE_OPENAI_ENDPOINT # your endpoint should look like the following https://YOUR_RESOURCE_NAME.openai.azure.com/
        api_version = '2024-02-01' # this may change in the future
        name        = 'YOUR-DEPLOYMENT-NAME-HERE' #This will correspond to the custom name you chose for your deployment when you deployed a model.
    }
    
    # Completion text
    $prompt = 'Once upon a time...'
    
    # Header for authentication
    $headers = [ordered]@{
        'api-key' = $openai.api_key
    }
    
    # Adjust these values to fine-tune completions
    $body = [ordered]@{
        prompt      = $prompt
        max_tokens  = 10
        temperature = 2
        top_p       = 0.5
    } | ConvertTo-Json
    
    # Send a completion call to generate an answer
    $url = "$($openai.api_base)/openai/deployments/$($openai.name)/completions?api-version=$($openai.api_version)"
    
    $response = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json'
    return "$prompt`n$($response.choices[0].text)"
    

    Внимание

    Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, таким как Управление секретами PowerShell с помощью Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в статье о безопасности служб искусственного интеллекта Azure.

  3. Запустите скрипт с помощью PowerShell:

    ./quickstart.ps1
    

Выходные данные

Выходные данные будут содержать текст ответа после Once upon a time запроса. Azure OpenAI, возвращенный There was a world beyond the mist...where a в этом примере.

Once upon a time...
 There was a world beyond the mist...where a

Запустите код еще несколько раз, чтобы ознакомиться с другими типами ответов, так как не всегда ответ будет одинаковым.

Расшифровка результатов

Так как наш пример содержит мало контекста Once upon a time... , это нормально для модели, чтобы не всегда возвращать ожидаемые результаты. Если ответ является неожиданным или усеченным, можно настроить максимально допустимое количество маркеров.

Azure OpenAI также выполняет con режим палатки ration в запросах и созданных выходных данных. Запросы или ответы могут быть отфильтрованы, если обнаружено вредное содержимое. Дополнительные сведения см. в статье фильтра содержимого.

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

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

Следующие шаги