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.
Gebruik de OpenAI SDK's met het Azure OpenAI v1-eindpunt om modeldeductietoepassingen te bouwen in Python, C#, JavaScript, Java of Go. In de voorbeelden wordt de Antwoorden-API gebruikt voor nieuwe toepassingen en worden chatvoltooiingen weergegeven voor toepassingen die nog steeds gebruikmaken van de interface op basis van berichten.
Voorwaarden
- Een Azure-abonnement. Maak er gratis een als u er nog geen hebt.
- Een Azure OpenAI-resource met een
gpt-5-minimodelimplementatie. - Uw Azure OpenAI-resource-eindpunt, zoals
https://YOUR-RESOURCE-NAME.openai.azure.com. - Voor Microsoft Entra ID-verificatie is een identiteit die gemachtigd is om deductie uit te voeren. Zie Microsoft Entra ID-verificatie configureren voor opties voor rollen.
- Voor VERIFICATIE van API-sleutels, een Azure OpenAI-resourcesleutel. Microsoft Entra ID wordt aanbevolen voor productietoepassingen.
- Een ondersteunde taalruntime en pakketbeheer voor de taal die u selecteert.
De model waarde in elke aanvraag is de naam van uw Azure modelimplementatie. De voorbeelden gebruiken gpt-5-mini; vervang deze als uw implementatie een andere naam heeft.
Broncode | Pakket | API-oppervlak
De voorbeelden zijn getest met OpenAI 2.12.0, Azure.Identity 1.21.0 en .NET 8. Het OpenAI-pakket is ook gericht op .NET Standard 2.0 en hoger .NET versies.
De pakketten installeren
Installeer de OpenAI- en Azure Identity-pakketten:
dotnet add package OpenAI
dotnet add package Azure.Identity
Met de opdrachten worden beide pakketverwijzingen aan uw project toegevoegd.
Een antwoord maken met Microsoft Entra ID
Gebruik DefaultAzureCredential en BearerTokenPolicy om te verifiëren zonder een API-sleutel op te slaan.
using Azure.Identity;
using OpenAI.Responses;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001
var endpoint = new Uri(
"https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/");
var tokenPolicy = new BearerTokenPolicy(
new DefaultAzureCredential(),
"https://ai.azure.com/.default");
var openAIClient = new ResponsesClient(
tokenPolicy,
new ResponsesClientOptions { Endpoint = endpoint });
var response = await openAIClient.CreateResponseAsync(
"gpt-5-mini",
"Explain the purpose of an API in one sentence.");
Console.WriteLine(response.Value.GetOutputText());
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: ResponsesClient
Een antwoord maken met een API-sleutel
API-sleutels worden niet aanbevolen voor productiegebruik. Sla de sleutel op in de AZURE_OPENAI_API_KEY omgevingsvariabele in plaats van deze in de broncode te plaatsen.
export AZURE_OPENAI_API_KEY="<your-api-key>"
Maak vervolgens de client en aanvraag:
using OpenAI.Responses;
using System.ClientModel;
#pragma warning disable OPENAI001
var endpoint = new Uri(
"https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/");
var apiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY")
?? throw new InvalidOperationException("AZURE_OPENAI_API_KEY is required.");
var openAIClient = new ResponsesClient(
new ApiKeyCredential(apiKey),
new ResponsesClientOptions { Endpoint = endpoint });
var response = await openAIClient.CreateResponseAsync(
"gpt-5-mini",
"Explain the purpose of an API in one sentence.");
Console.WriteLine(response.Value.GetOutputText());
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: CreateResponseAsync
Chatvoltooiingen gebruiken
Gebruik de Antwoorden-API voor nieuwe toepassingen. Gebruik Chatvoltooiingen wanneer u de interface op basis van berichten nodig hebt of een bestaande toepassing onderhoudt.
using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001
var endpoint = new Uri(
"https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/");
var tokenPolicy = new BearerTokenPolicy(
new DefaultAzureCredential(),
"https://ai.azure.com/.default");
var openAIClient = new ChatClient(
model: "gpt-5-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions { Endpoint = endpoint });
var completion = await openAIClient.CompleteChatAsync([
new SystemChatMessage("You are a helpful assistant."),
new UserChatMessage("Explain the purpose of an API.")
]);
Console.WriteLine(completion.Value.Content[0].Text);
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: ChatClient
Een antwoord streamen
Delta-updates voor aanroepen CreateResponseStreamingAsync en verwerken terwijl het model deze genereert:
using OpenAI.Responses;
using System.ClientModel;
#pragma warning disable OPENAI001
var endpoint = new Uri(
"https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/");
var apiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY")
?? throw new InvalidOperationException("AZURE_OPENAI_API_KEY is required.");
var openAIClient = new ResponsesClient(
new ApiKeyCredential(apiKey),
new ResponsesClientOptions { Endpoint = endpoint });
// Stream text as the model generates it.
var updates = openAIClient.CreateResponseStreamingAsync(
"gpt-5-mini",
"Explain the purpose of an API in one sentence.");
await foreach (var update in updates)
{
if (update is StreamingResponseOutputTextDeltaUpdate delta)
{
Console.Write(delta.Delta);
}
}
De volgende gestreamde uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: CreateResponseStreamingAsync
Fouten en nieuwe pogingen verwerken
De client probeert automatisch HTTP 408-, 429-, 500-, 502-, 503- en 504-antwoorden met exponentieel uitstel opnieuw. Configureer het beleid voor opnieuw proberen via de clientopties wanneer u ander gedrag nodig hebt. Catch ClientResultException om de HTTP-status en foutdetails voor een mislukte aanvraag te controleren.
Voor diagnostische gegevens behoudt u de ClientResult<T> geretourneerde bewerking en inspecteert u de onbewerkte antwoordheaders. Mislukte bewerkingen maken statusinformatie beschikbaar via ClientResultException.
Naslaginformatie: Foutafhandeling en details van clientresultaten
Meer SDK-voorbeelden
Broncode | Pakket | REST API-naslaginformatie | Go-API-verwijzing
Voor de voorbeelden is Go 1.25 of hoger vereist. Ze zijn getest met github.com/openai/openai-go/v3 3.44.0 en azidentity 1.14.0.
De modules installeren
Installeer de OpenAI- en Azure Identity-modules:
go get github.com/openai/openai-go/v3
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
Het /v3 achtervoegsel is vereist omdat hiermee de huidige primaire versie van de Go-module wordt geïdentificeerd.
Een antwoord maken met Microsoft Entra ID
Gebruik DefaultAzureCredential en de Azure verificatieoptie om te verifiëren zonder een API-sleutel op te slaan.
package main
import (
"context"
"fmt"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/azure"
"github.com/openai/openai-go/v3/option"
"github.com/openai/openai-go/v3/responses"
)
func main() {
credential, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil { panic(err) }
endpoint := "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
openaiClient := openai.NewClient(
option.WithBaseURL(endpoint),
azure.WithTokenCredential(credential, azure.WithTokenCredentialScopes(
[]string{"https://ai.azure.com/.default"})))
response, err := openaiClient.Responses.New(context.Background(), responses.ResponseNewParams{
Model: openai.ChatModel("gpt-5-mini"),
Input: responses.ResponseNewParamsInputUnion{OfString: openai.String(
"Explain the purpose of an API in one sentence.")},
})
if err != nil { panic(err) }
fmt.Println(response.OutputText())
}
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Naslaginformatie: ResponseService.New en WithTokenCredentialScopes
Een antwoord maken met een API-sleutel
API-sleutels worden niet aanbevolen voor productiegebruik. Sla de sleutel op in de AZURE_OPENAI_API_KEY omgevingsvariabele in plaats van deze in de broncode te plaatsen.
export AZURE_OPENAI_API_KEY="<your-api-key>"
Maak vervolgens de client en aanvraag:
package main
import (
"context"
"fmt"
"os"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
"github.com/openai/openai-go/v3/responses"
)
func main() {
apiKey := os.Getenv("AZURE_OPENAI_API_KEY")
if apiKey == "" { panic("AZURE_OPENAI_API_KEY is required") }
endpoint := "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
openaiClient := openai.NewClient(
option.WithBaseURL(endpoint),
option.WithAPIKey(apiKey))
response, err := openaiClient.Responses.New(context.Background(), responses.ResponseNewParams{
Model: openai.ChatModel("gpt-5-mini"),
Input: responses.ResponseNewParamsInputUnion{OfString: openai.String(
"Explain the purpose of an API in one sentence.")},
})
if err != nil { panic(err) }
fmt.Println(response.OutputText())
}
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: Responses.New
Chatvoltooiingen gebruiken
Gebruik de Antwoorden-API voor nieuwe toepassingen. Gebruik Chatvoltooiingen wanneer u de interface op basis van berichten nodig hebt of een bestaande toepassing onderhoudt.
package main
import (
"context"
"fmt"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/azure"
"github.com/openai/openai-go/v3/option"
)
func main() {
credential, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil { panic(err) }
endpoint := "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
openaiClient := openai.NewClient(
option.WithBaseURL(endpoint),
azure.WithTokenCredential(credential, azure.WithTokenCredentialScopes(
[]string{"https://ai.azure.com/.default"})))
completion, err := openaiClient.Chat.Completions.New(context.Background(),
openai.ChatCompletionNewParams{
Model: openai.ChatModel("gpt-5-mini"),
Messages: []openai.ChatCompletionMessageParamUnion{
openai.DeveloperMessage("You are a helpful assistant."),
openai.UserMessage("Explain the purpose of an API.")}})
if err != nil { panic(err) }
fmt.Println(completion.Choices[0].Message.Content)
}
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: Chat.Completions.New
Een antwoord streamen
Aanroepen Responses.NewStreamingen tekst delta-gebeurtenissen verwerken terwijl het model ze genereert:
package main
import (
"context"
"fmt"
"os"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
"github.com/openai/openai-go/v3/responses"
)
func main() {
endpoint := "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
openaiClient := openai.NewClient(option.WithBaseURL(endpoint),
option.WithAPIKey(os.Getenv("AZURE_OPENAI_API_KEY")))
// Stream text as the model generates it.
stream := openaiClient.Responses.NewStreaming(context.Background(), responses.ResponseNewParams{
Model: openai.ChatModel("gpt-5-mini"),
Input: responses.ResponseNewParamsInputUnion{OfString: openai.String(
"Explain the purpose of an API in one sentence.")},
})
for stream.Next() { fmt.Print(stream.Current().Delta) }
if err := stream.Err(); err != nil { panic(err) }
}
De volgende gestreamde uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: Responses.NewStreaming
Fouten en nieuwe pogingen verwerken
De SDK probeert verbindingsfouten en HTTP 408-, 409-, 429- en 5xx-antwoorden twee keer met exponentieel uitstel. Gebruik option.WithMaxRetries dit om de standaardwaarde te wijzigen. Controleer de geretourneerde error voordat u een antwoord leest en gebruik errors.As deze om een openai.Error.
package main
import (
"context"
"errors"
"fmt"
"os"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
"github.com/openai/openai-go/v3/responses"
)
func main() {
endpoint := "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
openaiClient := openai.NewClient(option.WithBaseURL(endpoint),
option.WithAPIKey(os.Getenv("AZURE_OPENAI_API_KEY")), option.WithMaxRetries(4))
// Send the request and inspect structured service errors.
result, err := openaiClient.Responses.New(context.Background(), responses.ResponseNewParams{
Model: openai.ChatModel("gpt-5-mini"),
Input: responses.ResponseNewParamsInputUnion{OfString: openai.String("Explain an API.")},
})
if err != nil {
var apiError *openai.Error
if errors.As(err, &apiError) { fmt.Printf("Status: %d; Request ID: %s\n",
apiError.StatusCode, apiError.Response.Header.Get("x-request-id")) }
panic(err)
}
fmt.Println(result.OutputText())
}
Voor een geslaagde aanvraag is de volgende uitvoer representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Naslaginformatie: Fouten en nieuwe pogingen
Meer SDK-voorbeelden
Broncode | Pakket | REST API-naslaginformatie | Java API-verwijzing
Voor de voorbeelden is Java 8 of hoger vereist. Ze zijn getest met openai-java 4.43.0 en azure-identity 1.18.4.
De pakketten installeren
Maven
Voeg de OpenAI- en Azure Identity-afhankelijkheden toe aan uw Maven-project:
<dependencies>
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>4.43.0</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.4</version>
</dependency>
</dependencies>
Maven lost de pakketten en hun transitieve afhankelijkheden op wanneer u het project bouwt.
Gradle
Voeg dezelfde pakketten toe aan het dependencies blok in uw Gradle-buildbestand:
dependencies {
implementation("com.openai:openai-java:4.43.0")
implementation("com.azure:azure-identity:1.18.4")
}
Gradle lost de pakketten op wanneer u het project bouwt.
Een antwoord maken met Microsoft Entra ID
Gebruik DefaultAzureCredential en BearerTokenCredential om te verifiëren zonder een API-sleutel op te slaan.
import com.azure.identity.AuthenticationUtil;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.credential.BearerTokenCredential;
import com.openai.models.responses.ResponseCreateParams;
public class ResponsesExample {
public static void main(String[] args) {
String endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
OpenAIClient openAIClient = OpenAIOkHttpClient.builder()
.baseUrl(endpoint)
.credential(BearerTokenCredential.create(
AuthenticationUtil.getBearerTokenSupplier(
new DefaultAzureCredentialBuilder().build(),
"https://ai.azure.com/.default")))
.build();
ResponseCreateParams params = ResponseCreateParams.builder()
.model("gpt-5-mini")
.input("Explain the purpose of an API in one sentence.")
.build();
openAIClient.responses().create(params).output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(output -> System.out.println(output.text()));
}
}
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Naslaginformatie: AzureEntraIdExample en ResponsesExample
Een antwoord maken met een API-sleutel
Gebruik geen API-sleutels voor productie. Sla de sleutel op in de AZURE_OPENAI_API_KEY omgevingsvariabele in plaats van deze in de broncode te plaatsen.
export AZURE_OPENAI_API_KEY="<your-api-key>"
Maak vervolgens de client en aanvraag:
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.responses.ResponseCreateParams;
public class ApiKeyResponsesExample {
public static void main(String[] args) {
String endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
String apiKey = System.getenv("AZURE_OPENAI_API_KEY");
if (apiKey == null) throw new IllegalStateException(
"AZURE_OPENAI_API_KEY is required.");
OpenAIClient openAIClient = OpenAIOkHttpClient.builder()
.baseUrl(endpoint).apiKey(apiKey).build();
ResponseCreateParams params = ResponseCreateParams.builder()
.model("gpt-5-mini")
.input("Explain the purpose of an API in one sentence.")
.build();
openAIClient.responses().create(params).output().stream()
.flatMap(item -> item.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(output -> System.out.println(output.text()));
}
}
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: OpenAIOkHttpClient
Chatvoltooiingen gebruiken
Gebruik de Antwoorden-API voor nieuwe toepassingen. Gebruik Chatvoltooiingen wanneer u de interface op basis van berichten nodig hebt of een bestaande toepassing onderhoudt.
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.ChatCompletionCreateParams;
public class ChatExample {
public static void main(String[] args) {
String endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
String apiKey = System.getenv("AZURE_OPENAI_API_KEY");
if (apiKey == null) throw new IllegalStateException(
"AZURE_OPENAI_API_KEY is required.");
OpenAIClient openAIClient = OpenAIOkHttpClient.builder()
.baseUrl(endpoint).apiKey(apiKey).build();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.model("gpt-5-mini")
.addDeveloperMessage("You are a helpful assistant.")
.addUserMessage("Explain the purpose of an API.")
.build();
openAIClient.chat().completions().create(params).choices().stream()
.flatMap(choice -> choice.message().content().stream())
.forEach(System.out::println);
}
}
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: ChatCompletionCreateParams
Een antwoord streamen
Aanroepen createStreamingen tekst delta-gebeurtenissen verwerken terwijl het model ze genereert:
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.core.http.StreamResponse;
import com.openai.models.responses.ResponseCreateParams;
import com.openai.models.responses.ResponseStreamEvent;
public class StreamingExample {
public static void main(String[] args) {
String endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
String apiKey = System.getenv("AZURE_OPENAI_API_KEY");
if (apiKey == null) throw new IllegalStateException(
"AZURE_OPENAI_API_KEY is required.");
OpenAIClient openAIClient = OpenAIOkHttpClient.builder()
.baseUrl(endpoint).apiKey(apiKey).build();
// Stream text as the model generates it.
ResponseCreateParams params = ResponseCreateParams.builder()
.model("gpt-5-mini")
.input("Explain the purpose of an API in one sentence.")
.build();
try (StreamResponse<ResponseStreamEvent> stream =
openAIClient.responses().createStreaming(params)) {
stream.stream().flatMap(event -> event.outputTextDelta().stream())
.forEach(delta -> System.out.print(delta.delta()));
}
}
}
De volgende gestreamde uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: responses.createStreaming
Fouten en nieuwe pogingen verwerken
De SDK probeert verbindingsfouten en HTTP 408-, 409-, 429- en 5xx-antwoorden twee keer met exponentieel uitstel. Catch OpenAIServiceException voor het controleren van de HTTP-status en foutdetails voor een serviceantwoord en catch OpenAIException voor andere SDK-fouten.
Roep maxRetries aan OpenAIOkHttpClient.builder() om de standaardinstelling te wijzigen. Behoud de service-uitzondering zodat uw toepassing de status kan registreren en metagegevens kan aanvragen.
Naslaginformatie: Foutafhandeling en nieuwe pogingen
Meer SDK-voorbeelden
Broncode | Pakket | REST API-naslaginformatie | richtlijnen voor Azure OpenAI v1
Voor de voorbeelden is Node.js 20 of hoger vereist. Ze zijn getest met openai 6.46.0 en @azure/identity 4.13.1. Gebruik openai 5.18.0 of hoger wanneer u een Microsoft Entra tokenprovider doorgeeft als apiKey.
De pakketten installeren
Installeer de OpenAI- en Azure Identity-pakketten:
npm install openai @azure/identity
Met de opdracht worden beide pakketten aan uw project toegevoegd.
Een antwoord maken met Microsoft Entra ID
Gebruik DefaultAzureCredential en getBearerTokenProvider om te verifiëren zonder een API-sleutel op te slaan. De tokenprovider vernieuwt het toegangstoken zo nodig.
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import OpenAI from "openai";
const endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
"https://ai.azure.com/.default",
);
const openai = new OpenAI({ baseURL: endpoint, apiKey: tokenProvider });
async function main() {
const response = await openai.responses.create({
model: "gpt-5-mini",
input: "Explain the purpose of an API in one sentence.",
});
console.log(response.output_text);
}
main().catch(console.error);
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Naslaginformatie: OpenAI client- en Azure OpenAI v1-verificatie
Een antwoord maken met een API-sleutel
API-sleutels worden niet aanbevolen voor productiegebruik. Sla de sleutel op in de AZURE_OPENAI_API_KEY omgevingsvariabele in plaats van deze in de broncode te plaatsen.
export AZURE_OPENAI_API_KEY="<your-api-key>"
Maak vervolgens de client en aanvraag:
import OpenAI from "openai";
const endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
const apiKey = process.env["AZURE_OPENAI_API_KEY"];
if (!apiKey) throw new Error("AZURE_OPENAI_API_KEY is required.");
const openai = new OpenAI({ baseURL: endpoint, apiKey });
async function main() {
const response = await openai.responses.create({
model: "gpt-5-mini",
input: "Explain the purpose of an API in one sentence.",
});
console.log(response.output_text);
}
main().catch(console.error);
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: responses.create
Chatvoltooiingen gebruiken
Gebruik de Antwoorden-API voor nieuwe toepassingen. Gebruik Chatvoltooiingen wanneer u de interface op basis van berichten nodig hebt of een bestaande toepassing onderhoudt.
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import OpenAI from "openai";
const endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
"https://ai.azure.com/.default",
);
const openai = new OpenAI({ baseURL: endpoint, apiKey: tokenProvider });
async function main() {
const completion = await openai.chat.completions.create({
model: "gpt-5-mini",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Explain the purpose of an API." },
],
});
console.log(completion.choices[0]?.message.content ?? "No response returned.");
}
main().catch(console.error);
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Het binnen de aanvraag houden messages biedt de contextuele typen die vereist is voor de role waarden. Als u de matrix afzonderlijk definieert, declareert u deze als OpenAI.Chat.ChatCompletionMessageParam[].
Referentie: chat.completions.create
Een antwoord streamen
Ingesteld stream op trueen verwerken van delta-gebeurtenissen voor tekst terwijl het model deze genereert:
import OpenAI from "openai";
const endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
const apiKey = process.env["AZURE_OPENAI_API_KEY"];
if (!apiKey) throw new Error("AZURE_OPENAI_API_KEY is required.");
const openai = new OpenAI({ baseURL: endpoint, apiKey });
async function main() {
// Stream text as the model generates it.
const stream = await openai.responses.create({
model: "gpt-5-mini",
input: "Explain the purpose of an API in one sentence.",
stream: true,
});
for await (const event of stream) {
if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
}
}
}
main().catch(console.error);
De volgende gestreamde uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Naslaginformatie: responses.create streaming
Fouten en nieuwe pogingen verwerken
De SDK probeert automatisch verbindingsfouten, time-outs, HTTP 408, 409, 429 en 5xx-antwoorden tweemaal met exponentieel uitstel. Stel maxRetries deze optie in op de OpenAI client om dit gedrag te wijzigen. Catch APIError om de HTTP-status, aanvraag-id en foutdetails voor een mislukte aanvraag te controleren.
In het volgende voorbeeld worden vier nieuwe pogingen ingesteld en wordt de aanvraag-id vastgelegd voor geslaagde en mislukte aanvragen:
import OpenAI from "openai";
const endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/";
const apiKey = process.env["AZURE_OPENAI_API_KEY"];
if (!apiKey) throw new Error("AZURE_OPENAI_API_KEY is required.");
const openai = new OpenAI({ baseURL: endpoint, apiKey, maxRetries: 4 });
async function main() {
try {
// Send the request and record its request ID.
const response = await openai.responses.create({
model: "gpt-5-mini",
input: "Explain the purpose of an API in one sentence.",
});
console.log(response.output_text);
console.log(`Request ID: ${response._request_id}`);
} catch (error) {
if (error instanceof OpenAI.APIError) {
console.error(`Status: ${error.status}; Request ID: ${error.requestID}`);
}
throw error;
}
}
main().catch(console.error);
Voor een geslaagde aanvraag is de volgende uitvoer representatief. De antwoordtekst en aanvraag-id variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Request ID: <request-id>
Naslaginformatie: Aanvraag-id's, fouten en nieuwe pogingen
Meer SDK-voorbeelden
Broncode | Pakket | API-verwijzing
Voor de voorbeelden is Python 3.9 of hoger vereist. Ze zijn getest met openai 2.46.0 en azure-identity 1.25.3. Gebruik openai 1.106.0 of hoger wanneer u een Microsoft Entra tokenprovider doorgeeft als api_key.
De pakketten installeren
Installeer de OpenAI- en Azure Identity-pakketten:
pip install openai azure-identity
Met de opdracht worden beide pakketten geïnstalleerd in de actieve Python-omgeving.
Een antwoord maken met Microsoft Entra ID
Gebruik DefaultAzureCredential en get_bearer_token_provider om te verifiëren zonder een API-sleutel op te slaan. De tokenprovider vernieuwt het toegangstoken zo nodig.
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import OpenAI
endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
openai = OpenAI(base_url=endpoint, api_key=token_provider)
response = openai.responses.create(
model="gpt-5-mini",
input="Explain the purpose of an API in one sentence.",
)
print(response.output_text)
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Naslaginformatie: OpenAI client en get_bearer_token_provider
Een antwoord maken met een API-sleutel
API-sleutels worden niet aanbevolen voor productiegebruik. Sla de sleutel op in de AZURE_OPENAI_API_KEY omgevingsvariabele in plaats van deze in de broncode te plaatsen.
export AZURE_OPENAI_API_KEY="<your-api-key>"
Maak vervolgens de client en aanvraag:
import os
from openai import OpenAI
endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
api_key = os.environ["AZURE_OPENAI_API_KEY"]
openai = OpenAI(base_url=endpoint, api_key=api_key)
response = openai.responses.create(
model="gpt-5-mini",
input="Explain the purpose of an API in one sentence.",
)
print(response.output_text)
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: responses.create
Chatvoltooiingen gebruiken
Gebruik de Antwoorden-API voor nieuwe toepassingen. Gebruik Chatvoltooiingen wanneer u de interface op basis van berichten nodig hebt of een bestaande toepassing onderhoudt.
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import OpenAI
endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://ai.azure.com/.default"
)
openai = OpenAI(base_url=endpoint, api_key=token_provider)
completion = openai.chat.completions.create(
model="gpt-5-mini",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain the purpose of an API."},
],
)
print(completion.choices[0].message.content)
De volgende uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referentie: chat.completions.create
Een antwoord streamen
Ingesteld stream op Trueen verwerken van delta-gebeurtenissen voor tekst terwijl het model deze genereert:
import os
from openai import OpenAI
endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
openai = OpenAI(
base_url=endpoint,
api_key=os.environ["AZURE_OPENAI_API_KEY"],
)
# Stream text as the model generates it.
stream = openai.responses.create(
model="gpt-5-mini",
input="Explain the purpose of an API in one sentence.",
stream=True,
)
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)
De volgende gestreamde uitvoer is representatief. De exacte formulering kan variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Naslaginformatie: responses.create streaming
Fouten en nieuwe pogingen verwerken
De SDK probeert automatisch verbindingsfouten, time-outs, HTTP 408, 409, 429 en 5xx-antwoorden tweemaal met exponentieel uitstel. Stel max_retries deze optie in op de OpenAI client om dit gedrag te wijzigen. Catch openai.APIStatusError om de HTTP-status, aanvraag-id en reactie op een mislukte aanvraag te controleren.
In het volgende voorbeeld worden vier nieuwe pogingen ingesteld en wordt de aanvraag-id vastgelegd voor geslaagde en mislukte aanvragen:
import os
import openai as openai_sdk
from openai import OpenAI
endpoint = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"
openai = OpenAI(
base_url=endpoint,
api_key=os.environ["AZURE_OPENAI_API_KEY"],
max_retries=4,
)
try:
# Send the request and record its request ID.
response = openai.responses.create(
model="gpt-5-mini",
input="Explain the purpose of an API in one sentence.",
)
print(response.output_text)
print(f"Request ID: {response._request_id}")
except openai_sdk.APIStatusError as error:
print(f"Status: {error.status_code}; Request ID: {error.request_id}")
raise
Voor een geslaagde aanvraag is de volgende uitvoer representatief. De antwoordtekst en aanvraag-id variëren:
An API allows software applications to communicate and exchange data through a defined set of rules.
Request ID: <request-id>
Naslaginformatie: Aanvraag-id's, fouten en nieuwe pogingen
Meer SDK-voorbeelden
Probleemoplossing
- Controleer voor een
401of403antwoord of de beoogde identiteit of API-sleutel toegang heeft tot de Azure OpenAI-resource. - Controleer voor een
404antwoord of de basis-URL eindigt/openai/v1/en dat dezemodeleen geldige implementatienaam bevat. - Voor een pakket- of typefout werkt u de SDK bij en vergelijkt u de geïnstalleerde versie met de versie die op deze pagina is getest.
- Controleer voor een modelparameterfout of het geïmplementeerde model de parameter ondersteunt. Parameterondersteuning kan verschillen tussen modelfamilies.