Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leest u hoe u overschakelt naar het nieuwe geïntegreerde OpenAI v1-voltooiingseindpunt voor chats. Hierin worden de algemene wijzigingen en verschillen behandeld wanneer u met OpenAI en Azure OpenAI werkt.
Hoewel OpenAI en Azure OpenAI afhankelijk zijn van een gemeenschappelijke Python-clientbibliotheek, waren er kleine wijzigingen die u moest aanbrengen in uw code om heen en weer te wisselen tussen de eindpunten. Het nieuwe geïntegreerde OpenAI v1-eindpunt voor chatvoltooiing elimineert de noodzaak van afzonderlijke Azure-specifieke codepaden.
Authenticatie
We raden u aan sleutelloze verificatie te gebruiken met behulp van Microsoft Entra-id. Als dat niet mogelijk is, gebruikt u een API-sleutel en slaat u deze op in Azure Key Vault. U kunt een omgevingsvariabele gebruiken om buiten uw Azure-omgevingen te testen.
Verificatie via een API-sleutel
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY")
)
Microsoft Entra-authenticatie
Microsoft Entra-verificatie wordt alleen ondersteund met Azure OpenAI-resources. Voltooi de volgende stappen:
Installeer de Azure Identity-clientbibliotheek:
pip install azure-identityConfigureer het OpenAI-clientobject als volgt:
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, )Aanbeveling
DefaultAzureCredentialkan worden geoptimaliseerd voor de omgeving waarin uw app wordt uitgevoerd. Zie DefaultAzureCredential aanpassen voor meer informatie.Wijs de juiste RBAC-machtigingen (op rollen gebaseerd toegangsbeheer) van Azure toe. Zie op rollen gebaseerd toegangsbeheer van Azure (RBAC) voor meer informatie.
Wanneer u Azure gebruikt, wijs rollen toe aan de beheerde identiteit die voor het Azure-hostresource wordt gebruikt. Wanneer u deze uitvoert in de lokale ontwikkelomgeving, wijst u rollen toe aan de gebruiker die de app uitvoert.
using OpenAI;
using System;
using System.ClientModel;
string apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");
OpenAIClient client = new(new ApiKeyCredential(apiKey));
Microsoft Entra-authenticatie
Microsoft Entra-verificatie wordt alleen ondersteund met Azure OpenAI-resources. Voltooi de volgende stappen:
Installeer de Azure Identity-clientbibliotheek:
dotnet add package Azure.IdentityConfigureer het
OpenAIClientobject als volgt: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);Aanbeveling
DefaultAzureCredentialkan worden geoptimaliseerd voor de omgeving waarin uw app wordt uitgevoerd. Zie DefaultAzureCredential aanpassen voor meer informatie.Wijs de juiste RBAC-machtigingen (op rollen gebaseerd toegangsbeheer) van Azure toe. Zie op rollen gebaseerd toegangsbeheer van Azure (RBAC) voor meer informatie.
Wanneer u Azure gebruikt, wijs rollen toe aan de beheerde identiteit die voor het Azure-hostresource wordt gebruikt. Wanneer u deze uitvoert in de lokale ontwikkelomgeving, wijst u rollen toe aan de gebruiker die de app uitvoert.
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 });
Microsoft Entra-authenticatie
Microsoft Entra-verificatie wordt alleen ondersteund met Azure OpenAI-resources. Voltooi de volgende stappen:
Installeer de Azure Identity-clientbibliotheek:
npm install @azure/identityConfigureer het OpenAI-clientobject als volgt:
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 });Aanbeveling
DefaultAzureCredentialkan worden geoptimaliseerd voor de omgeving waarin uw app wordt uitgevoerd. Zie DefaultAzureCredential aanpassen voor meer informatie.Wijs de juiste RBAC-machtigingen (op rollen gebaseerd toegangsbeheer) van Azure toe. Zie op rollen gebaseerd toegangsbeheer van Azure (RBAC) voor meer informatie.
Wanneer u Azure gebruikt, wijs rollen toe aan de beheerde identiteit die voor het Azure-hostresource wordt gebruikt. Wanneer u deze uitvoert in de lokale ontwikkelomgeving, wijst u rollen toe aan de gebruiker die de app uitvoert.
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();
}
}
Microsoft Entra-authenticatie
Microsoft Entra-verificatie wordt alleen ondersteund met Azure OpenAI-resources. Voltooi de volgende stappen:
Neem de azure-identity dependency op in uw project.
Configureer het
OpenAIClientobject als volgt: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(); } }Aanbeveling
DefaultAzureCredentialkan worden geoptimaliseerd voor de omgeving waarin uw app wordt uitgevoerd. Zie DefaultAzureCredential aanpassen voor meer informatie.Wijs de juiste RBAC-machtigingen (op rollen gebaseerd toegangsbeheer) van Azure toe. Zie op rollen gebaseerd toegangsbeheer van Azure (RBAC) voor meer informatie.
Wanneer u Azure gebruikt, wijs rollen toe aan de beheerde identiteit die voor het Azure-hostresource wordt gebruikt. Wanneer u deze uitvoert in de lokale ontwikkelomgeving, wijst u rollen toe aan de gebruiker die de app uitvoert.
// import (
// "github.com/openai/openai-go/v3"
// "github.com/openai/openai-go/v3/option"
// )
client := openai.NewClient(
option.WithAPIKey(os.Getenv("OPENAI_API_KEY")),
)
Microsoft Entra-authenticatie
Microsoft Entra-verificatie wordt alleen ondersteund met Azure OpenAI-resources. Voltooi de volgende stappen:
Neem de azure-identity dependency op in uw project.
Configureer het
OpenAIClientobject als volgt:// 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), )Aanbeveling
DefaultAzureCredentialkan worden geoptimaliseerd voor de omgeving waarin uw app wordt uitgevoerd. Zie DefaultAzureCredential aanpassen voor meer informatie.Wijs de juiste RBAC-machtigingen (op rollen gebaseerd toegangsbeheer) van Azure toe. Zie op rollen gebaseerd toegangsbeheer van Azure (RBAC) voor meer informatie.
Wanneer u Azure gebruikt, wijs rollen toe aan de beheerde identiteit die voor het Azure-hostresource wordt gebruikt. Wanneer u deze uitvoert in de lokale ontwikkelomgeving, wijst u rollen toe aan de gebruiker die de app uitvoert.
Het model opgeven
OpenAI gebruikt het model trefwoordargument om op te geven welk model moet worden gebruikt. Azure OpenAI heeft het concept van unieke modelimplementaties. Wanneer u Azure OpenAI gebruikt, model moet u verwijzen naar de naam van de onderliggende implementatie die u hebt gekozen bij het implementeren van het model.
Belangrijk
Azure OpenAI en OpenAI verwerken modelnamen anders in API-aanroepen. OpenAI heeft alleen de modelnaam nodig. Azure OpenAI heeft altijd de implementatienaam nodig, zelfs wanneer u de modelparameter gebruikt. U moet de implementatienaam gebruiken in plaats van de modelnaam wanneer u Azure OpenAI-API's aanroept. In onze documentatie worden vaak implementatienamen weergegeven die overeenkomen met modelnamen om aan te geven welk model met elk API-eindpunt werkt. Kies een naamconventie voor implementatienamen die het beste bij u past.
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 gebruikt de model parameter om op te geven welk model moet worden gebruikt. Azure OpenAI heeft het concept van unieke modelimplementaties. Wanneer u Azure OpenAI gebruikt, model moet u verwijzen naar de naam van de onderliggende implementatie die u hebt gekozen bij het implementeren van het model.
Belangrijk
Azure OpenAI en OpenAI verwerken modelnamen anders in API-aanroepen. OpenAI heeft alleen de modelnaam nodig. Azure OpenAI heeft altijd de implementatienaam nodig, zelfs wanneer u de modelparameter gebruikt. U moet de implementatienaam gebruiken in plaats van de modelnaam wanneer u Azure OpenAI-API's aanroept. In onze documentatie worden vaak implementatienamen weergegeven die overeenkomen met modelnamen om aan te geven welk model met elk API-eindpunt werkt. Kies een naamconventie voor implementatienamen die het beste bij u past.
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 gebruikt het model trefwoordargument om op te geven welk model moet worden gebruikt. Azure OpenAI heeft het concept van unieke modelimplementaties. Wanneer u Azure OpenAI gebruikt, model moet u verwijzen naar de naam van de onderliggende implementatie die u hebt gekozen bij het implementeren van het model.
Belangrijk
Azure OpenAI en OpenAI verwerken modelnamen anders in API-aanroepen. OpenAI heeft alleen de modelnaam nodig. Azure OpenAI heeft altijd de implementatienaam nodig, zelfs wanneer u de modelparameter gebruikt. U moet de implementatienaam gebruiken in plaats van de modelnaam wanneer u Azure OpenAI-API's aanroept. In onze documentatie worden vaak implementatienamen weergegeven die overeenkomen met modelnamen om aan te geven welk model met elk API-eindpunt werkt. Kies een naamconventie voor implementatienamen die het beste bij u past.
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 gebruikt het model trefwoordargument om op te geven welk model moet worden gebruikt. Azure OpenAI heeft het concept van unieke modelimplementaties. Wanneer u Azure OpenAI gebruikt, model moet u verwijzen naar de naam van de onderliggende implementatie die u hebt gekozen bij het implementeren van het model.
Belangrijk
Azure OpenAI en OpenAI verwerken modelnamen anders in API-aanroepen. OpenAI heeft alleen de modelnaam nodig. Azure OpenAI heeft altijd de implementatienaam nodig, zelfs wanneer u de modelparameter gebruikt. U moet de implementatienaam gebruiken in plaats van de modelnaam wanneer u Azure OpenAI-API's aanroept. In onze documentatie worden vaak implementatienamen weergegeven die overeenkomen met modelnamen om aan te geven welk model met elk API-eindpunt werkt. Kies een naamconventie voor implementatienamen die het beste bij u past.
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 gebruikt het Model trefwoordargument om op te geven welk model moet worden gebruikt. Azure OpenAI heeft het concept van unieke modelimplementaties. Wanneer u Azure OpenAI gebruikt, Model moet u verwijzen naar de naam van de onderliggende implementatie die u hebt gekozen bij het implementeren van het model.
Belangrijk
Azure OpenAI en OpenAI verwerken modelnamen anders in API-aanroepen. OpenAI heeft alleen de modelnaam nodig. Azure OpenAI heeft altijd de implementatienaam nodig, zelfs wanneer u de modelparameter gebruikt. U moet de implementatienaam gebruiken in plaats van de modelnaam wanneer u Azure OpenAI-API's aanroept. In onze documentatie worden vaak implementatienamen weergegeven die overeenkomen met modelnamen om aan te geven welk model met elk API-eindpunt werkt. Kies een naamconventie voor implementatienamen die het beste bij u past.
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>"),
},
})
Ondersteuning voor meerdere invoer insluiten in Azure OpenAI
OpenAI en Azure OpenAI ondersteunen momenteel invoermatrices tot 2048 invoeritems voor text-embedding-ada-002. Beide vereisen de maximale invoertokenlimiet per API-aanvraag om minder dan 8.191 te blijven voor dit model.
inputs = ["A", "B", "C"]
embedding = client.embeddings.create(
input=inputs,
model="text-embedding-3-large"
)
string[] inputs = [ "A", "B", "C" ];
EmbeddingClient embedding = client.GetEmbeddingClient(
model: "text-embedding-3-large"
).GenerateEmbedding(
input: inputs
);
const embeddings = await client.embeddings.create({
model: "text-embedding-3-large",
inputs: ["A", "B", "C"],
})
EmbeddingCreateParams embeddingCreateParams = EmbeddingCreateParams.builder()
.inputOfArrayOfStrings(List.of("A", "B", "C"))
.model(EmbeddingModel.TEXT_EMBEDDING_3_LARGE)
.build();
CreateEmbeddingResponse createEmbeddingResponse = client.embeddings().create(embeddingCreateParams);
resp, err := client.Embeddings.New(context.TODO(), openai.EmbeddingNewParams{
Model: "text-embedding-3-large",
Input: openai.EmbeddingNewParamsInputUnion{
OfArrayOfStrings: []string{"A", "B", "C"},
},
})