Démarrage rapide : Commencer la génération de texte à l’aide d’Azure OpenAI Service

Utilisez cet article pour commencer à passer vos premiers appels à Azure OpenAI.

Prérequis

  • Un abonnement Azure : créez-en un gratuitement.

  • Accès accordé à Azure OpenAI dans l’abonnement Azure souhaité.

    L’accès à ce service n’est accordé qu’à l’application. Vous pouvez demander l’accès à Azure OpenAI en complétant le formulaire à l’adresse https://aka.ms/oai/access. Ouvrez un problème sur ce dépôt pour nous contacter si vous rencontrez un problème.

  • Ressource Azure OpenAI avec un modèle déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.

Conseil

Testez la nouvelle plateforme unifiée Azure AI Studio (préversion) qui rassemble les fonctionnalités de plusieurs services Azure AI.

Accéder à Azure OpenAI Studio

Accédez à Azure OpenAI Studio sur https://oai.azure.com/ et connectez-vous avec les informations d’identification qui ont accès à votre ressource OpenAI. Pendant ou après le flux de travail de connexion, sélectionnez le répertoire approprié, l’abonnement Azure et la ressource Azure OpenAI.

À partir de la page d’accueil d’Azure OpenAI Studio, continuez de naviguer pour explorer des exemples de saisie semi-automatique, gérer vos déploiements et modèles, et trouver des ressources d’apprentissage telles que de la documentation et des forums de la communauté.

Capture d’écran de la page d’accueil d’Azure OpenAI Studio.

Accédez au terrain de jeu pour faire des expérimentations et ajuster votre flux de travail.

Terrain de jeu

Commencez à explorer les fonctionnalités Azure OpenAI avec une approche sans code au moyen du terrain de jeu GPT-3. Il s’agit simplement d’une zone de texte dans laquelle vous pouvez envoyer une invite pour générer une saisie semi-automatique. À partir de cette page, vous pouvez rapidement itérer et expérimenter les fonctionnalités.

Capture d’écran de la page du terrain de jeu de Azure OpenAI Studio avec les sections en surbrillance.

Vous pouvez sélectionner un déploiement et choisir parmi quelques exemples préchargés pour commencer. Si votre ressource n’a pas de déploiement, sélectionnez Créer un déploiement et suivez les instructions fournies par l’assistant. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.

Vous pouvez tester les paramètres de configuration tels que la température et le texte de pré-réponse pour améliorer les performances de votre tâche. Vous pouvez en savoir plus sur chaque paramètre dans l’API REST.

  • La sélection du bouton Générer envoie le texte entré à l’API de saisie semi-automatique et renvoie les résultats à la zone de texte.
  • Sélectionnez le bouton Annuler pour annuler l’appel de génération précédente.
  • Sélectionnez le bouton régénérer pour effectuer un appel d’annulation de génération ensemble.

Azure OpenAI effectue également une modération du contenu sur les entrées d’invite et les sorties générées. Les invites ou les réponses peuvent être filtrées si du contenu nuisible est détecté. Pour plus d’informations, consultez l’article sur le filtrage de contenu.

Dans le terrain de jeu GPT-3, vous pouvez également afficher des exemples de code Python et curl préremplis en fonction des paramètres que vous avez sélectionnés. Sélectionnez simplement Afficher le code en regard de la liste déroulante des exemples. Vous pouvez écrire une application pour effectuer la même tâche avec le kit de développement logiciel (SDK) Python OpenAI, curl ou un autre client d’API REST.

Essayer la synthèse de texte

Pour utiliser Azure OpenAI pour la synthèse de texte dans le terrain de jeu GPT-3, procédez ainsi :

  1. Connectez-vous à Azure OpenAI Studio.

  2. Sélectionnez l’abonnement et la ressource OpenAI avec laquelle vous souhaitez travailler.

  3. Sélectionnez Terrain de jeu GPT-3 en haut de la page d’accueil.

  4. Sélectionnez votre déploiement dans la liste déroulante Déploiements. Si votre ressource n’a pas de déploiement, sélectionnez Créer un déploiement, puis revenez sur cette étape.

  5. Sélectionnez Résumer le texte dans la liste déroulante Exemples.

    Capture d’écran de la page du terrain de jeu Azure OpenAI Studio avec la sélection de la liste déroulante Résumer un texte visible.

  6. Sélectionnez Generate. Azure OpenAI va tenter de cerner le contexte du texte et le reformuler succinctement. Vous devez obtenir un résultat qui ressemble au texte suivant :

    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.
    

La précision de la réponse peut varier selon le modèle. La modèle basé sur Davinci de cet exemple est bien adapté à ce type de synthèse, alors qu’un modèle basé sur Codex ne fonctionnerait pas aussi bien pour cette tâche précise.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Code source | Package (NuGet) | Échantillons

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Accès accordé à Azure OpenAI Service dans l’abonnement Azure souhaité. L’accès à ce service n’est accordé qu’à l’application. Vous pouvez demander l’accès à Azure OpenAI Service en complétant le formulaire à l’adresse https://aka.ms/oai/access.
  • Version actuelle de .NET Core
  • Ressource Azure OpenAI Service avec le gpt-35-turbo-instruct modèle déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.

Configurer

Créez une application .NET Core

Dans une fenêtre de console (par exemple cmd, PowerShell ou Bash), utilisez la commande dotnet new pour créer une application console avec le nom azure-openai-quickstart. Cette commande crée un projet « Hello World » simple avec un seul fichier source C# : Program.cs.

dotnet new console -n azure-openai-quickstart

Déplacez vos répertoires vers le dossier d’application nouvellement créé. Vous pouvez générer l’application avec :

dotnet build

La sortie de génération ne doit contenir aucun avertissement ni erreur.

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

Installez la bibliothèque de client .NET OpenAI avec :

dotnet add package Azure.AI.OpenAI --prerelease

Récupérer la clé et le point de terminaison

Pour effectuer correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez également trouver la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran de l’interface utilisateur de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement du point de terminaison et des clés d’accès entouré en rouge.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer un exemple d’application

À partir du répertoire du projet, ouvrez le fichier program.cs et remplacez le contenu par le code suivant :

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}");

Important

Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article de sécurité Azure AI services.

dotnet run program.cs

Sortie

Chatbot:

Microsoft was founded on April 4, 1975.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.

Étapes suivantes

Code source | Package (Go)| Exemples

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Accès accordé à Azure OpenAI Service dans l’abonnement Azure souhaité. L’accès à ce service n’est accordé qu’à l’application. Vous pouvez demander l’accès à Azure OpenAI Service en complétant le formulaire à l’adresse https://aka.ms/oai/access.
  • Go 1.21.0 ou version ultérieure installé localement.
  • Ressource Azure OpenAI Service avec le gpt-35-turbo-instuct modèle déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.

Configurer

Récupérer la clé et le point de terminaison

Pour effectuer correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez également trouver la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran de l’interface utilisateur de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement du point de terminaison et des clés d’accès entouré en rouge.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer un exemple d’application

Créez un fichier nommé completions.go. Copiez le code suivant dans le fichier 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)
	}

}

Important

Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article de sécurité Azure AI services.

Ouvrez maintenant une invite de commande et exécutez :

go mod init completions.go

Exécution suivante :

go mod tidy
go run completions.go

Sortie

== Get completions Sample ==

Microsoft was founded on April 4, 1975.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.

Étapes suivantes

Code source | Artifact (Maven) | Échantillons

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Accès accordé à Azure OpenAI Service dans l’abonnement Azure souhaité. L’accès à ce service n’est accordé qu’à l’application. Vous pouvez demander l’accès à Azure OpenAI Service en complétant le formulaire à l’adresse https://aka.ms/oai/access.
  • Ressource Azure OpenAI Service avec le gpt-35-turbo-instruct modèle déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.

Configurer

Récupérer la clé et le point de terminaison

Pour effectuer correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez également trouver la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran de l’interface utilisateur de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement du point de terminaison et des clés d’accès entouré en rouge.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer une application Java

Créez un projet Gradle.

Dans une fenêtre de console (telle que cmd, PowerShell ou bash), créez un répertoire pour votre application et accédez-y.

mkdir myapp && cd myapp

Exécutez la commande gradle init à partir de votre répertoire de travail. Cette commande crée des fichiers de build essentiels pour Gradle, notamment build.gradle.kts, qui est utilisé au moment de l’exécution pour créer et configurer votre application.

gradle init --type basic

Quand vous êtes invité à choisir un DSL, sélectionnez Kotlin.

Installer le Kit de développement logiciel (SDK) Java

Ce guide de démarrage rapide utilise le gestionnaire de dépendances Gradle. Vous trouverez la bibliothèque de client et des informations concernant d’autres gestionnaires de dépendances sur le référentiel central Maven.

Recherchez build.gradle.kts et ouvrez-le avec votre IDE ou votre éditeur de texte habituel. Copiez-y ensuite la configuration de build suivante. Cette configuration définit le projet sous forme d’application Java dont le point d’entrée est la classe OpenAIQuickstart. Cela importe la bibliothèque Azure AI Vision.

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")
}

Créer un exemple d’application

  1. Créez un fichier Java.

    Dans votre répertoire de travail, exécutez la commande suivante pour créer un dossier de projet source :

    mkdir -p src/main/java
    

    Accédez au nouveau dossier et créez un fichier nommé GetCompletionsSample.java.

  2. Ouvrez GetCompletionsSample.javadans votre éditeur ou IDE préféré et collez le code suivant.

    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());
        }
    }
    

    Important

    Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article de sécurité Azure AI services.

  3. Revenez au dossier racine du projet et générez l’application avec :

    gradle build
    

    Ensuite, exécutez-la avec la commande gradle run :

    gradle run
    

Sortie

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.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.

Étapes suivantes

Code source | Artefacts (Maven) | Échantillon

Prérequis

Configurer

Récupérer la clé et le point de terminaison

Pour effectuer correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez également trouver la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran de l’interface utilisateur de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement du point de terminaison et des clés d’accès entouré en rouge.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Remarque

Spring AI affecte par défaut le nom du modèle à gpt-35-turbo. Il n’est nécessaire de fournir la valeur SPRING_AI_AZURE_OPENAI_MODEL que si vous avez déployé un modèle avec un autre nom.

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"

Créer une application Spring

Créez un projet Spring.

Dans une fenêtre Bash, créez un répertoire pour votre application et accédez-y.

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

Exécutez la commande spring init à partir de votre répertoire de travail. Cette commande crée une structure de répertoires standard pour votre projet Spring, y compris le fichier source de classe Java principal et le fichier pom.xml utilisé pour la gestion des projets Maven.

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

Les fichiers et dossiers générés ressemblent à la structure suivante :

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

Modifier l’application Spring

  1. Modifiez le fichier pom.xml.

    À partir de la racine du répertoire du projet, ouvrez le fichier pom.xml dans votre éditeur ou IDE préféré et remplacez le fichier par le contenu suivant :

    <?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. À partir du dossier src/main/java/com/example/aicompletiondemo, ouvrez AiCompletionApplication.java dans votre éditeur ou IDE préféré et collez le code suivant :

    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()));
              });
        }
    
    }
    

    Important

    Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article de sécurité Azure AI services.

  3. Revenez au dossier racine du projet et exécutez l’application à l’aide de la commande suivante :

    ./mvnw spring-boot:run
    

Sortie

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: 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.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.

Étapes suivantes

Consultez le référentiel GitHub Azure / openai-samples (uniquement disponible en anglais) pour découvrir d’autres exemples.

Code source | Package (npm) | Exemples

Prérequis

Configurer

Récupérer la clé et le point de terminaison

Pour effectuer correctement un appel sur Azure OpenAI, vous avez besoin d’un point de terminaison et d’une clé.

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez également trouver la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran de l’interface utilisateur de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement du point de terminaison et des clés d’accès entouré en rouge.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Dans une fenêtre de console (telle que cmd, PowerShell ou bash), créez un répertoire pour votre application et accédez-y. Exécutez ensuite la commande npm init pour créer une application de nœud avec un fichier package.json.

npm init

Installer la bibliothèque de client

Installez la bibliothèque de client Azure OpenAI pour JavaScript avec npm :

npm install @azure/openai

Le fichier package.json de votre application sera mis à jour avec les dépendances.

Créer un exemple d’application

Ouvrez une invite de commandes à l’emplacement où vous avez créé le projet, puis créez un fichier nommé Completion.js. Copiez le code suivant dans le fichier 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 };

Important

Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article de sécurité Azure AI services.

Exécutez le script avec la commande suivante :

node.exe Completion.js

Sortie

== Get completions Sample ==

Microsoft was founded on April 4, 1975.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez la supprimer. Vous devez d’abord supprimer tous les modèles déployés avant de supprimer la ressource.

Étapes suivantes

Code source de la bibliothèque | Package (PyPi) |

Prérequis

  • Un abonnement Azure - En créer un gratuitement

  • Accès accordé à Azure OpenAI dans l’abonnement Azure souhaité

    L’accès à ce service n’est accordé qu’à l’application. Vous pouvez demander l’accès à Azure OpenAI en complétant le formulaire à l’adresse https://aka.ms/oai/access. Ouvrez un problème sur ce dépôt pour nous contacter si vous rencontrez un problème.

  • Python 3.8 ou version ultérieure

  • Bibliothèques Python suivantes : os, requests, json

  • Ressource Azure OpenAI Service avec un modèle gpt-35-turbo-instruct déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.

Configurer

Installez la bibliothèque de client Python OpenAI avec :

pip install openai

Remarque

Cette bibliothèque est gérée par OpenAI et est actuellement en préversion. Reportez-vous à l’historique des mises en production ou à l’historique de validation version.py pour suivre les dernières mises à jour de la bibliothèque.

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur le service Azure OpenAI, vous aurez besoin des éléments suivants :

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous trouverez également la valeur dans l’affichage Azure OpenAI Studio>Playground>Afficher le code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.
DEPLOYMENT-NAME Cette valeur correspond au nom personnalisé que vous avez choisi pour votre déploiement lorsque vous avez déployé un modèle. Cette valeur se trouve sousGestion des ressources>Déploiements de modèles dans le portail Azure ou sousGestion>Déploiements dans Azure OpenAI Studio.

Accédez à votre ressource sur le portail Azure. Le point de terminaison et les clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran du panneau de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement des clés d’accès et du point de terminaison encerclés en rouge.

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Créer une application Python

  1. Créez un fichier Python appelé quickstart.py. Ensuite, ouvrez-le dans l’éditeur ou l’IDE de votre choix.

  2. Remplacez le contenu du fichier quickstart.py par le code suivant. Modifiez le code pour ajouter votre clé, votre point de terminaison et votre nom de déploiement :

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)

Important

Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article de sécurité Azure AI services.

  1. Exécutez l’application avec la commande python de votre fichier de démarrage rapide :

    python quickstart.py
    

Sortie

La sortie inclut le texte de réponse suivant l’invite Write a tagline for an ice cream shop.. Azure OpenAI a retourné The coldest ice cream in town! dans cet exemple.

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

Exécutez le code plusieurs fois pour voir quels autres types de réponses vous obtenez, car la réponse ne sera pas toujours la même.

Comprendre votre facture

Étant donné que notre exemple de Write a tagline for an ice cream shop. fournit peu de contexte, il est normal que le modèle ne retourne pas toujours les résultats attendus. Vous pouvez ajuster le nombre maximal de jetons si la réponse semble inattendue ou tronquée.

Azure OpenAI effectue également une modération du contenu sur les entrées d’invite et les sorties générées. Les invites ou les réponses peuvent être filtrées si un contenu nuisible est détecté. Pour plus d’informations, consultez l’article sur le filtrage de contenu.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Prérequis

  • Un abonnement Azure - En créer un gratuitement

  • Accès accordé à Azure OpenAI dans l’abonnement Azure souhaité

    L’accès à ce service n’est accordé qu’à l’application. Vous pouvez demander l’accès au service Azure OpenAI en renseignant le formulaire à l’adresse https://aka.ms/oai/access. Ouvrez un problème sur ce dépôt pour nous contacter si vous rencontrez un problème.

  • Python 3.8 ou version ultérieure

  • Bibliothèques Python suivantes : os, requests, json

  • Ressource Azure OpenAI avec un modèle déployé. Pour plus d’informations sur le déploiement de modèle, consultez le guide de déploiement de ressources.

Configurer

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur Azure OpenAI, vous aurez besoin des éléments suivants :

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous trouverez également la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.
DEPLOYMENT-NAME Cette valeur correspond au nom personnalisé que vous avez choisi pour votre déploiement lorsque vous avez déployé un modèle. Cette valeur se trouve sousDéploiements>de gestion des ressources dans le portail Azure ou sousDéploiements>de gestion dans Azure OpenAI Studio.

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran du panneau de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement des clés d’accès et du point de terminaison encerclés en rouge.

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Variables d'environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

API REST

Dans un interpréteur de commandes bash, exécutez la commande suivante. Vous devez remplacer gpt-35-turbo-instruct par le nom de déploiement que vous avez choisi lors du déploiement du modèle gpt-35-turbo-instruct. L’entrée du nom du modèle entraîne une erreur, sauf si vous avez choisi un nom de déploiement identique au nom du modèle sous-jacent.

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\"}"

Le format de la première ligne de la commande avec un exemple de point final serait le suivant curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/completions?api-version=2024-02-01 \. Si vous rencontrez une erreur, vérifiez à nouveau que vous n'avez pas un doublement de la / à la séparation entre votre point final et /openai/deployments.

Si vous souhaitez exécuter cette commande dans une invite de commandes Windows normale, vous devez modifier le texte pour supprimer les \ et le sauts de ligne.

Important

Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article de sécurité Azure AI services.

Output

La sortie de l’API de saisie semi-automatique se présente comme suit.

{
    "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 Service effectue également une modération du contenu sur les entrées d’invite et les sorties générées. Les invites ou les réponses peuvent être filtrées si du contenu nuisible est détecté. Pour plus d’informations, consultez l’article sur le filtrage de contenu.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes

Prérequis

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur le service Azure OpenAI, vous aurez besoin des éléments suivants :

Nom de la variable Valeur
ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous trouverez également la valeur dans l’affichage Azure OpenAI Studio>Playground>Code. Voici un exemple de point de terminaison : https://docs-test-001.openai.azure.com/.
API-KEY Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.
DEPLOYMENT-NAME Cette valeur correspond au nom personnalisé que vous avez choisi pour votre déploiement lorsque vous avez déployé un modèle. Cette valeur se trouve sousDéploiements>de gestion des ressources dans le portail Azure ou sousDéploiements>de gestion dans Azure OpenAI Studio.

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Capture d’écran du panneau de vue d’ensemble d’une ressource Azure OpenAI dans le Portail Azure avec l’emplacement des clés d’accès et du point de terminaison encerclés en rouge.

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Variables d'environnement

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

Créer un script PowerShell

  1. Créez un fichier PowerShell nommé quickstart.ps1. Ensuite, ouvrez-le dans l’éditeur ou l’IDE de votre choix.

  2. Remplacez le contenu du fichier quickstart.ps1 par le code suivant. Modifiez le code pour ajouter votre clé, votre point de terminaison et votre nom de déploiement :

    # 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)"
    

    Important

    Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification, comme La gestion des secrets PowerShell dans Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article de sécurité Azure AI services.

  3. Exécutez le script à l’aide de PowerShell :

    ./quickstart.ps1
    

Sortie

La sortie inclut le texte de réponse suivant l’invite Once upon a time. Azure OpenAI a retourné There was a world beyond the mist...where a dans cet exemple.

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

Exécutez le code plusieurs fois pour voir quels autres types de réponses vous obtenez, car la réponse ne sera pas toujours la même.

Comprendre votre facture

Étant donné que notre exemple de Once upon a time... fournit peu de contexte, il est normal que le modèle ne retourne pas toujours les résultats attendus. Vous pouvez ajuster le nombre maximal de jetons si la réponse semble inattendue ou tronquée.

Azure OpenAI effectue également une modération du contenu sur les entrées d’invite et les sorties générées. Les invites ou les réponses peuvent être filtrées si du contenu nuisible est détecté. Pour plus d’informations, consultez l’article sur le filtrage de contenu.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Azure OpenAI, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées.

Étapes suivantes