Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment passer au nouveau point de terminaison unifié de complétion de conversation OpenAI v1. Il couvre les modifications et différences courantes lorsque vous travaillez avec OpenAI et Azure OpenAI.
Bien qu’OpenAI et Azure OpenAI s’appuient sur une bibliothèque de client Python commune, vous deviez apporter quelques petites modifications à votre code afin d'échanger entre les points de terminaison. Le nouveau point de terminaison unifié pour l'achèvement des discussions OpenAI v1 élimine la nécessité de voies de code distinctes spécifiques à Azure.
Authentication
Nous vous recommandons d’utiliser l’authentification sans clé à l’aide de l’ID Microsoft Entra. Si ce n’est pas possible, utilisez une clé API et stockez-la dans Azure Key Vault. Vous pouvez utiliser une variable d’environnement pour les tests en dehors de vos environnements Azure.
Authentification par clé API
- OpenAI
- Azure OpenAI
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY")
)
Authentification de Microsoft Entra
L’authentification Microsoft Entra est prise en charge uniquement avec les ressources Azure OpenAI. Terminez la procédure suivante :
Installez la bibliothèque de client Azure Identity :
pip install azure-identityConfigurez l’objet client OpenAI comme suit :
from azure.identity import DefaultAzureCredential, get_bearer_token_provider from openai import OpenAI credential = DefaultAzureCredential() token_provider = get_bearer_token_provider( credential, "https://cognitiveservices.azure.com/.default" ) client = OpenAI( base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/", api_key = token_provider, )Conseil / Astuce
DefaultAzureCredentialpeut être optimisé pour l’environnement dans lequel votre application s’exécute. Pour plus d’informations, consultez Comment personnaliser DefaultAzureCredential.Attribuez les autorisations de contrôle d’accès en fonction du rôle (RBAC) Azure appropriées. Pour plus d’informations, consultez contrôle d’accès en fonction du rôle Azure (RBAC).
Lors de l’exécution dans Azure, attribuez des rôles à l’identité managée utilisée par la ressource hôte Azure. Lors de l’exécution dans l’environnement de développement local, attribuez des rôles à l’utilisateur exécutant l’application.
- OpenAI
- Azure OpenAI
using OpenAI;
using System;
using System.ClientModel;
string apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");
OpenAIClient client = new(new ApiKeyCredential(apiKey));
Authentification de Microsoft Entra
L’authentification Microsoft Entra est prise en charge uniquement avec les ressources Azure OpenAI. Terminez la procédure suivante :
Installez la bibliothèque de client Azure Identity :
dotnet add package Azure.IdentityConfigurez l’objet
OpenAIClientcomme suit :using Azure.Identity; using OpenAI; using System; using System.ClientModel.Primitives; // code omitted for brevity DefaultAzureCredential credential = new(); BearerTokenPolicy tokenPolicy = new(credential, "https://cognitiveservices.azure.com/.default"); OpenAIClientOptions clientOptions = new() { Endpoint = new Uri($"{resourceEndpoint}/openai/v1/") }; OpenAIClient client = new(tokenPolicy, clientOptions);Conseil / Astuce
DefaultAzureCredentialpeut être optimisé pour l’environnement dans lequel votre application s’exécute. Pour plus d’informations, consultez Comment personnaliser DefaultAzureCredential.Attribuez les autorisations de contrôle d’accès en fonction du rôle (RBAC) Azure appropriées. Pour plus d’informations, consultez contrôle d’accès en fonction du rôle Azure (RBAC).
Lors de l’exécution dans Azure, attribuez des rôles à l’identité managée utilisée par la ressource hôte Azure. Lors de l’exécution dans l’environnement de développement local, attribuez des rôles à l’utilisateur exécutant l’application.
- OpenAI
- Azure OpenAI
import { OpenAI } from "openai";
import "dotenv/config";
const apiKey = process.env["OPENAI_API_KEY"];
if (!endpoint) {
throw new Error("Please set the OPENAI_API_KEY environment variable.");
}
const client = new OpenAI({ apiKey });
Authentification de Microsoft Entra
L’authentification Microsoft Entra est prise en charge uniquement avec les ressources Azure OpenAI. Terminez la procédure suivante :
Installez la bibliothèque de client Azure Identity :
npm install @azure/identityConfigurez l’objet client OpenAI comme suit :
import { OpenAI } from "openai"; import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; import "dotenv/config"; const endpoint = process.env["AZURE_OPENAI_ENDPOINT"]; if (!endpoint) { throw new Error("Please set the AZURE_OPENAI_ENDPOINT environment variable."); } const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(new DefaultAzureCredential(), scope); const client = new OpenAI({ baseURL: endpoint + "/openai/v1", apiKey: azureADTokenProvider });Conseil / Astuce
DefaultAzureCredentialpeut être optimisé pour l’environnement dans lequel votre application s’exécute. Pour plus d’informations, consultez Comment personnaliser DefaultAzureCredential.Attribuez les autorisations de contrôle d’accès en fonction du rôle (RBAC) Azure appropriées. Pour plus d’informations, consultez contrôle d’accès en fonction du rôle Azure (RBAC).
Lors de l’exécution dans Azure, attribuez des rôles à l’identité managée utilisée par la ressource hôte Azure. Lors de l’exécution dans l’environnement de développement local, attribuez des rôles à l’utilisateur exécutant l’application.
- OpenAI
- Azure OpenAI
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
public class OpenAISample {
public static void main(String[] args) {
OpenAIClient openAIClient = OpenAIOkHttpClient.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.build();
}
}
Authentification de Microsoft Entra
L’authentification Microsoft Entra est prise en charge uniquement avec les ressources Azure OpenAI. Terminez la procédure suivante :
Incluez la dépendance azure-identity dans votre projet.
Configurez l’objet
OpenAIClientcomme suit :import com.azure.identity.AuthenticationUtil; import com.azure.identity.DefaultAzureCredential; import com.azure.identity.DefaultAzureCredentialBuilder; import com.openai.client.OpenAIClient; import com.openai.client.okhttp.OpenAIOkHttpClient; import com.openai.credential.BearerTokenCredential; import java.util.function.Supplier; public class AzureOpenAISample { public static void main(String[] args) { DefaultAzureCredential tokenCredential = new DefaultAzureCredentialBuilder().build(); Supplier<String> bearerTokenSupplier = AuthenticationUtil.getBearerTokenSupplier( tokenCredential, "https://cognitiveservices.azure.com/.default"); OpenAIClient azureOpenAIClient = OpenAIOkHttpClient.builder() .fromEnv() // Set the Azure Entra ID .credential(BearerTokenCredential.create(bearerTokenSupplier)) .build(); } }Conseil / Astuce
DefaultAzureCredentialpeut être optimisé pour l’environnement dans lequel votre application s’exécute. Pour plus d’informations, consultez Comment personnaliser DefaultAzureCredential.Attribuez les autorisations de contrôle d’accès en fonction du rôle (RBAC) Azure appropriées. Pour plus d’informations, consultez contrôle d’accès en fonction du rôle Azure (RBAC).
Lors de l’exécution dans Azure, attribuez des rôles à l’identité managée utilisée par la ressource hôte Azure. Lors de l’exécution dans l’environnement de développement local, attribuez des rôles à l’utilisateur exécutant l’application.
- OpenAI
- Azure OpenAI
// import (
// "github.com/openai/openai-go/v3"
// "github.com/openai/openai-go/v3/option"
// )
client := openai.NewClient(
option.WithAPIKey(os.Getenv("OPENAI_API_KEY")),
)
Authentification de Microsoft Entra
L’authentification Microsoft Entra est prise en charge uniquement avec les ressources Azure OpenAI. Terminez la procédure suivante :
Incluez la dépendance azure-identity dans votre projet.
Configurez l’objet
OpenAIClientcomme suit :// import ( // "github.com/openai/openai-go/v3" // "github.com/openai/openai-go/v3/azure" // "github.com/openai/openai-go/v3/option" // ) client := openai.NewClient( option.WithBaseURL("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"), azure.WithTokenCredential(cred), )Conseil / Astuce
DefaultAzureCredentialpeut être optimisé pour l’environnement dans lequel votre application s’exécute. Pour plus d’informations, consultez Comment personnaliser DefaultAzureCredential.Attribuez les autorisations de contrôle d’accès en fonction du rôle (RBAC) Azure appropriées. Pour plus d’informations, consultez contrôle d’accès en fonction du rôle Azure (RBAC).
Lors de l’exécution dans Azure, attribuez des rôles à l’identité managée utilisée par la ressource hôte Azure. Lors de l’exécution dans l’environnement de développement local, attribuez des rôles à l’utilisateur exécutant l’application.
Spécifier le modèle
OpenAI utilise l’argument de mot clé model pour spécifier le modèle à utiliser. Azure OpenAI a le concept de déploiements de modèles uniques. Lorsque vous utilisez Azure OpenAI, model doit se référer au nom de déploiement sous-jacent que vous avez choisi lors de la mise en place du modèle.
Important
Azure OpenAI et OpenAI gèrent les noms de modèles différemment dans les appels d’API. OpenAI a uniquement besoin du nom du modèle. Azure OpenAI a toujours besoin du nom de déploiement, même lorsque vous utilisez le paramètre de modèle. Vous devez utiliser le nom de déploiement au lieu du nom du modèle lorsque vous appelez des API Azure OpenAI. Notre documentation montre souvent les noms de déploiement qui correspondent aux noms de modèle pour montrer quel modèle fonctionne avec chaque point de terminaison d’API. Choisissez une convention d’affectation de noms pour les noms de déploiement qui vous conviennent le mieux.
- OpenAI
- Azure OpenAI
response = client.responses.create(
model="gpt-4.1-nano",
input="This is a test."
)
chat_completion = client.chat.completions.create(
model="gpt-4o",
messages="<messages>"
)
embedding = client.embeddings.create(
model="text-embedding-3-large",
input="<input>"
)
OpenAI utilise le model paramètre pour spécifier le modèle à utiliser. Azure OpenAI a le concept de déploiements de modèles uniques. Lorsque vous utilisez Azure OpenAI, model doit se référer au nom de déploiement sous-jacent que vous avez choisi lors de la mise en place du modèle.
Important
Azure OpenAI et OpenAI gèrent les noms de modèles différemment dans les appels d’API. OpenAI a uniquement besoin du nom du modèle. Azure OpenAI a toujours besoin du nom de déploiement, même lorsque vous utilisez le paramètre de modèle. Vous devez utiliser le nom de déploiement au lieu du nom du modèle lorsque vous appelez des API Azure OpenAI. Notre documentation montre souvent les noms de déploiement qui correspondent aux noms de modèle pour montrer quel modèle fonctionne avec chaque point de terminaison d’API. Choisissez une convention d’affectation de noms pour les noms de déploiement qui vous conviennent le mieux.
- OpenAI
- Azure OpenAI
string modelName = "gpt-4.1-nano";
OpenAIResponseClient response = client.GetOpenAIResponseClient(modelName);
modelName = "gpt-4o";
ChatClient chatCompletion = client.GetChatClient(modelName);
modelName = "text-embedding-3-large";
EmbeddingClient embedding = client.GetEmbeddingClient(modelName);
OpenAI utilise l’argument de mot clé model pour spécifier le modèle à utiliser. Azure OpenAI a le concept de déploiements de modèles uniques. Lorsque vous utilisez Azure OpenAI, model doit se référer au nom de déploiement sous-jacent que vous avez choisi lors de la mise en place du modèle.
Important
Azure OpenAI et OpenAI gèrent les noms de modèles différemment dans les appels d’API. OpenAI a uniquement besoin du nom du modèle. Azure OpenAI a toujours besoin du nom de déploiement, même lorsque vous utilisez le paramètre de modèle. Vous devez utiliser le nom de déploiement au lieu du nom du modèle lorsque vous appelez des API Azure OpenAI. Notre documentation montre souvent les noms de déploiement qui correspondent aux noms de modèle pour montrer quel modèle fonctionne avec chaque point de terminaison d’API. Choisissez une convention d’affectation de noms pour les noms de déploiement qui vous conviennent le mieux.
- OpenAI
- Azure OpenAI
const response = await client.responses.create({
model: "gpt-4.1-nano",
input: "This is a test",
});
const chatCompletions = await client.chat.completions.create({
model: "gpt-4o",
messages: ["<messages>"],
});
const embeddings = await client.embeddings.create({
model: "text-embedding-3-large",
input: "<input>",
});
OpenAI utilise l’argument de mot clé model pour spécifier le modèle à utiliser. Azure OpenAI a le concept de déploiements de modèles uniques. Lorsque vous utilisez Azure OpenAI, model doit se référer au nom de déploiement sous-jacent que vous avez choisi lors de la mise en place du modèle.
Important
Azure OpenAI et OpenAI gèrent les noms de modèles différemment dans les appels d’API. OpenAI a uniquement besoin du nom du modèle. Azure OpenAI a toujours besoin du nom de déploiement, même lorsque vous utilisez le paramètre de modèle. Vous devez utiliser le nom de déploiement au lieu du nom du modèle lorsque vous appelez des API Azure OpenAI. Notre documentation montre souvent les noms de déploiement qui correspondent aux noms de modèle pour montrer quel modèle fonctionne avec chaque point de terminaison d’API. Choisissez une convention d’affectation de noms pour les noms de déploiement qui vous conviennent le mieux.
- OpenAI
- Azure OpenAI
ResponseCreateParams responseCreateParams = ResponseCreateParams.builder()
.input("This is a test")
.model(ChatModel.GPT_4_1_NANO)
.build();
Response response = client.responses().create(responseCreateParams);
ChatCompletionCreateParams chatCompletionCreateParams = ChatCompletionCreateParams.builder()
.model(ChatModel.GPT_4O)
.addUserMessage("<message>")
.build();
ChatCompletion chatCompletion = client.chat().completions().create(chatCompletionCreateParams);
EmbeddingCreateParams embeddingCreateParams = EmbeddingCreateParams.builder()
.input("<input>")
.model(EmbeddingModel.TEXT_EMBEDDING_3_LARGE)
.build();
CreateEmbeddingResponse createEmbeddingResponse = client.embeddings().create(embeddingCreateParams);
OpenAI utilise l’argument de mot clé Model pour spécifier le modèle à utiliser. Azure OpenAI a le concept de déploiements de modèles uniques. Lorsque vous utilisez Azure OpenAI, Model doit se référer au nom de déploiement sous-jacent que vous avez choisi lors de la mise en place du modèle.
Important
Azure OpenAI et OpenAI gèrent les noms de modèles différemment dans les appels d’API. OpenAI a uniquement besoin du nom du modèle. Azure OpenAI a toujours besoin du nom de déploiement, même lorsque vous utilisez le paramètre de modèle. Vous devez utiliser le nom de déploiement au lieu du nom du modèle lorsque vous appelez des API Azure OpenAI. Notre documentation montre souvent les noms de déploiement qui correspondent aux noms de modèle pour montrer quel modèle fonctionne avec chaque point de terminaison d’API. Choisissez une convention d’affectation de noms pour les noms de déploiement qui vous conviennent le mieux.
- OpenAI
- Azure OpenAI
resp, err := client.Responses.New(context.TODO(), responses.ResponseNewParams{
Model: "gpt-4.1-nano",
Input: responses.ResponseNewParamsInputUnion{
OfString: openai.String("This is a test."),
},
})
resp, err := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Model: "gpt-4o",
Messages: []openai.ChatCompletionMessageParamUnion{
// messages
},
})
resp, err := client.Embeddings.New(context.TODO(), openai.EmbeddingNewParams{
Model: "text-embedding-3-large",
Input: openai.EmbeddingNewParamsInputUnion{
OfString: openai.String("<input>"),
},
})
L’incorporation d’Azure OpenAI prend en charge plusieurs entrées
OpenAI et Azure OpenAI prennent actuellement en charge les tableaux d’entrée jusqu’à 2 048 éléments d’entrée pour text-embedding-ada-002. Les deux nécessitent que la limite maximale de jetons d’entrée par requête d’API reste inférieure à 8 191 pour ce modèle.
- OpenAI
- Azure OpenAI
inputs = ["A", "B", "C"]
embedding = client.embeddings.create(
input=inputs,
model="text-embedding-3-large"
)
- OpenAI
- Azure OpenAI
string[] inputs = [ "A", "B", "C" ];
EmbeddingClient embedding = client.GetEmbeddingClient(
model: "text-embedding-3-large"
).GenerateEmbedding(
input: inputs
);
- OpenAI
- Azure OpenAI
const embeddings = await client.embeddings.create({
model: "text-embedding-3-large",
inputs: ["A", "B", "C"],
})
- OpenAI
- Azure OpenAI
EmbeddingCreateParams embeddingCreateParams = EmbeddingCreateParams.builder()
.inputOfArrayOfStrings(List.of("A", "B", "C"))
.model(EmbeddingModel.TEXT_EMBEDDING_3_LARGE)
.build();
CreateEmbeddingResponse createEmbeddingResponse = client.embeddings().create(embeddingCreateParams);
- OpenAI
- Azure OpenAI
resp, err := client.Embeddings.New(context.TODO(), openai.EmbeddingNewParams{
Model: "text-embedding-3-large",
Input: openai.EmbeddingNewParamsInputUnion{
OfArrayOfStrings: []string{"A", "B", "C"},
},
})