Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Python, C#, JavaScript, Java veya Go'da model çıkarım uygulamaları oluşturmak için OpenAI SDK'larını Azure OpenAI v1 uç noktasıyla kullanın. Örnekler, yeni uygulamalar için Yanıtlar API'sini kullanır ve ileti tabanlı arabirimini kullanmaya devam eden uygulamalar için Sohbet Tamamlamalarını gösterir.
Önkoşullar
- Azure aboneliği. Bir hesabınız yoksa, ücretsiz olarak bir hesap oluşturun.
- Model dağıtımına sahip
gpt-5-minibir Azure OpenAI kaynağı. - gibi
https://YOUR-RESOURCE-NAME.openai.azure.comAzure OpenAI kaynak uç noktanız. - Microsoft Entra ID kimlik doğrulaması için çıkarım çalıştırma iznine sahip bir kimliktir. Rol seçenekleri için bkz. Microsoft Entra ID kimlik doğrulamasını yapılandırma.
- API anahtarı kimlik doğrulaması için openAI kaynak anahtarı Azure. üretim uygulamaları için Microsoft Entra ID önerilir.
- Seçtiğiniz dil için desteklenen bir dil çalışma zamanı ve paket yöneticisi.
model Her istekteki değer, Azure modeli dağıtım adınızdır. Örneklerde kullanılır gpt-5-mini; dağıtımınızın adı farklıysa değiştirin.
Kaynak kodu | Paket | API yüzeyi
Örnekler 2.12.0, OpenAI 1.21.0 ve .NET 8 ile Azure.Identity test edilmiştir. OpenAI paketi ayrıca Standart 2.0 ve üzeri .NET .NET sürümlerini de hedefler.
Paketleri yükleme
OpenAI ve Azure Identity paketlerini yükleyin:
dotnet add package OpenAI
dotnet add package Azure.Identity
Komutlar her iki paket başvurularını da projenize ekler.
Microsoft Entra ID ile yanıt oluşturma
API anahtarını depolamadan kimlik doğrulaması yapmak için ve DefaultAzureCredential kullanınBearerTokenPolicy.
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());
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: ResponsesClient
API anahtarıyla yanıt oluşturma
API anahtarları üretim kullanımı için önerilmez. Anahtarı kaynak koda AZURE_OPENAI_API_KEY yerleştirmek yerine ortam değişkeninde depolayın.
export AZURE_OPENAI_API_KEY="<your-api-key>"
Ardından istemciyi oluşturun ve şu isteği isteyin:
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());
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: CreateResponseAsync
Sohbet Tamamlamalarını Kullanma
Yeni uygulamalar için Yanıtlar API'sini kullanın. İleti tabanlı arabirimine ihtiyacınız olduğunda veya mevcut bir uygulamanın bakımını yaparken Sohbet Tamamlamalarını kullanın.
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);
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: ChatClient
Yanıt akışı
Model bunları oluştururken metin değişim güncelleştirmelerini çağırın CreateResponseStreamingAsync ve işleyin:
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);
}
}
Aşağıdaki akışlı çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: CreateResponseStreamingAsync
Hataları ve yeniden denemeleri işleme
İstemci http 408, 429, 500, 502, 503 ve 504 yanıtlarını üstel geri alma ile otomatik olarak yeniden dener. Farklı davranışlara ihtiyacınız olduğunda istemci seçenekleri aracılığıyla yeniden deneme ilkesini yapılandırın. Başarısız bir isteğin HTTP durumunu ve hata ayrıntılarını incelemek için yakalayın ClientResultException .
Tanılama için, bir işlem tarafından döndürüleni ClientResult<T> tutun ve ham yanıt üst bilgilerini inceleyin. Başarısız işlemler aracılığıyla ClientResultExceptiondurum bilgilerini kullanıma sunar.
Başvuru: Hata işleme ve istemci sonucu ayrıntıları
Diğer SDK örnekleri
Kaynak kodu | Paket | REST API başvurusu | Go API başvurusu
Örneklerde Go 1.25 veya üzeri gerekir. 3.44.0 ve github.com/openai/openai-go/v3 1.14.0 ile azidentity test edilmiştir.
Modülleri yükleme
OpenAI ve Azure Identity modüllerini yükleyin:
go get github.com/openai/openai-go/v3
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
/v3 Go modülünün geçerli ana sürümünü tanımladığından sonek gereklidir.
Microsoft Entra ID ile yanıt oluşturma
API anahtarını depolamadan kimlik doğrulaması yapmak için ve Azure kimlik doğrulama seçeneğini kullanınDefaultAzureCredential.
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())
}
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Başvuru: ResponseService.New ve WithTokenCredentialScopes
API anahtarıyla yanıt oluşturma
API anahtarları üretim kullanımı için önerilmez. Anahtarı kaynak koda AZURE_OPENAI_API_KEY yerleştirmek yerine ortam değişkeninde depolayın.
export AZURE_OPENAI_API_KEY="<your-api-key>"
Ardından istemciyi oluşturun ve şu isteği isteyin:
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())
}
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: Responses.New
Sohbet Tamamlamalarını Kullanma
Yeni uygulamalar için Yanıtlar API'sini kullanın. İleti tabanlı arabirimine ihtiyacınız olduğunda veya mevcut bir uygulamanın bakımını yaparken Sohbet Tamamlamalarını kullanın.
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)
}
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: Chat.Completions.New
Yanıt akışı
çağrısı yapın Responses.NewStreamingve model bunları oluştururken metin deltası olaylarını işleyin:
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) }
}
Aşağıdaki akışlı çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: Responses.NewStreaming
Hataları ve yeniden denemeleri işleme
SDK, bağlantı hatalarını ve HTTP 408, 409, 429 ve 5xx yanıtlarını üstel geri alma ile iki kez yeniden dener. Varsayılanı değiştirmek için kullanın option.WithMaxRetries . Yanıtı okumadan önce döndürüleni error denetleyin ve öğesini kullanarak errors.As bir openai.Erroröğesini inceleyin.
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())
}
Başarılı bir istek için aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Başvuru: Hatalar ve yeniden denemeler
Diğer SDK örnekleri
Kaynak kodu | Paket | REST API başvurusu | API başvurusu Java
Örnekler için 8 veya sonraki Java gerekir. 4.43.0 ve openai-java 1.18.4 ile azure-identity test edilmiştir.
Paketleri yükleme
Maven
Maven projenize OpenAI ve Azure Identity bağımlılıklarını ekleyin:
<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, projeyi oluştururken paketleri ve geçişli bağımlılıklarını çözümler.
Gradle
Gradle derleme dosyanızdaki bloğa dependencies aynı paketleri ekleyin:
dependencies {
implementation("com.openai:openai-java:4.43.0")
implementation("com.azure:azure-identity:1.18.4")
}
Gradle, projeyi oluştururken paketleri çözümler.
Microsoft Entra ID ile yanıt oluşturma
API anahtarını depolamadan kimlik doğrulaması yapmak için ve DefaultAzureCredential kullanınBearerTokenCredential.
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()));
}
}
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Başvuru: AzureEntraIdExample ve ResponsesExample
API anahtarıyla yanıt oluşturma
Üretim için API anahtarlarını kullanmayın. Anahtarı kaynak koda AZURE_OPENAI_API_KEY yerleştirmek yerine ortam değişkeninde depolayın.
export AZURE_OPENAI_API_KEY="<your-api-key>"
Ardından istemciyi oluşturun ve şu isteği isteyin:
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()));
}
}
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: OpenAIOkHttpClient
Sohbet Tamamlamalarını Kullanma
Yeni uygulamalar için Yanıtlar API'sini kullanın. İleti tabanlı arabirimine ihtiyacınız olduğunda veya mevcut bir uygulamanın bakımını yaparken Sohbet Tamamlamalarını kullanın.
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);
}
}
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: ChatCompletionCreateParams
Yanıt akışı
çağrısı yapın createStreamingve model bunları oluştururken metin deltası olaylarını işleyin:
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()));
}
}
}
Aşağıdaki akışlı çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: responses.createStreaming
Hataları ve yeniden denemeleri işleme
SDK, bağlantı hatalarını ve HTTP 408, 409, 429 ve 5xx yanıtlarını üstel geri alma ile iki kez yeniden dener. Hizmet yanıtının HTTP durumunu ve hata ayrıntılarını incelemek için yakalayın OpenAIServiceException ve diğer SDK hatalarına karşı yakalayın OpenAIException .
maxRetries Varsayılanı değiştirmek için açınOpenAIOkHttpClient.builder(). Uygulamanızın durumunu günlüğe kaydedebilmesi ve meta verileri istemesi için hizmet özel durumunu koruyun.
Başvuru: Hata işleme ve yeniden denemeler
Diğer SDK örnekleri
Kaynak kodu | Paket | REST API başvurusu | OpenAI v1 yönergelerini Azure
Örnekler için Node.js 20 veya üzeri gerekir. 6.46.0 ve openai 4.13.1 ile @azure/identity test edilmiştir. bir Microsoft Entra belirteci sağlayıcısını olarak openaigeçirirken 5.18.0 veya üzerini kullanınapiKey.
Paketleri yükleme
OpenAI ve Azure Identity paketlerini yükleyin:
npm install openai @azure/identity
komutu her iki paketi de projenize ekler.
Microsoft Entra ID ile yanıt oluşturma
API anahtarını depolamadan kimlik doğrulaması yapmak için ve DefaultAzureCredential kullanıngetBearerTokenProvider. Belirteç sağlayıcısı gerektiğinde erişim belirtecini yeniler.
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);
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Başvuru: OpenAI istemci ve Azure OpenAI v1 kimlik doğrulaması
API anahtarıyla yanıt oluşturma
API anahtarları üretim kullanımı için önerilmez. Anahtarı kaynak koda AZURE_OPENAI_API_KEY yerleştirmek yerine ortam değişkeninde depolayın.
export AZURE_OPENAI_API_KEY="<your-api-key>"
Ardından istemciyi oluşturun ve şu isteği isteyin:
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);
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: responses.create
Sohbet Tamamlamalarını Kullanma
Yeni uygulamalar için Yanıtlar API'sini kullanın. İleti tabanlı arabirimine ihtiyacınız olduğunda veya mevcut bir uygulamanın bakımını yaparken Sohbet Tamamlamalarını kullanın.
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);
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
messages İsteğin içinde tutmak, değerler için role gereken bağlamsal yazmayı sağlar. Diziyi ayrı olarak tanımlarsanız, olarak OpenAI.Chat.ChatCompletionMessageParam[]bildirin.
Referans: chat.completions.create
Yanıt akışı
streamolarak ayarlayın true ve model bunları oluştururken metin değişim olaylarını işleyin:
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);
Aşağıdaki akışlı çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Başvuru: responses.create akış
Hataları ve yeniden denemeleri işleme
SDK, üstel geri alma ile bağlantı hatalarını, zaman aşımlarını, HTTP 408, 409, 429 ve 5xx yanıtlarını iki kez otomatik olarak yeniden dener. Bu davranışı değiştirmek için istemcide maxRetries ayarlayınOpenAI. Başarısız bir isteğin HTTP durumunu, istek kimliğini ve hata ayrıntılarını incelemek için yakalayın APIError .
Aşağıdaki örnek dört yeniden deneme ayarlar ve başarılı ve başarısız istekler için istek kimliğini kaydeder:
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);
Başarılı bir istek için aşağıdaki çıkış temsilidir. Yanıt metni ve istek kimliği farklılık gösterir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Request ID: <request-id>
Başvuru: İstek kimlikleri, hatalar ve yeniden denemeler
Diğer SDK örnekleri
Kaynak kodu | Paket | API başvurusu
Örnekler için Python 3.9 veya üzeri gerekir. 2.46.0 ve openai 1.25.3 ile azure-identity test edilmiştir. bir Microsoft Entra belirteci sağlayıcısını olarak openaigeçirirken 1.106.0 veya üzerini kullanınapi_key.
Paketleri yükleme
OpenAI ve Azure Identity paketlerini yükleyin:
pip install openai azure-identity
komutu her iki paketi de etkin Python ortamına yükler.
Microsoft Entra ID ile yanıt oluşturma
API anahtarını depolamadan kimlik doğrulaması yapmak için ve DefaultAzureCredential kullanınget_bearer_token_provider. Belirteç sağlayıcısı gerektiğinde erişim belirtecini yeniler.
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)
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Başvuru: OpenAI istemci ve get_bearer_token_provider
API anahtarıyla yanıt oluşturma
API anahtarları üretim kullanımı için önerilmez. Anahtarı kaynak koda AZURE_OPENAI_API_KEY yerleştirmek yerine ortam değişkeninde depolayın.
export AZURE_OPENAI_API_KEY="<your-api-key>"
Ardından istemciyi oluşturun ve şu isteği isteyin:
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)
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: responses.create
Sohbet Tamamlamalarını Kullanma
Yeni uygulamalar için Yanıtlar API'sini kullanın. İleti tabanlı arabirimine ihtiyacınız olduğunda veya mevcut bir uygulamanın bakımını yaparken Sohbet Tamamlamalarını kullanın.
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)
Aşağıdaki çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Referans: chat.completions.create
Yanıt akışı
streamolarak ayarlayın True ve model bunları oluştururken metin değişim olaylarını işleyin:
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)
Aşağıdaki akışlı çıkış temsilidir. Tam ifadeler farklılık gösterebilir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Başvuru: responses.create akış
Hataları ve yeniden denemeleri işleme
SDK, üstel geri alma ile bağlantı hatalarını, zaman aşımlarını, HTTP 408, 409, 429 ve 5xx yanıtlarını iki kez otomatik olarak yeniden dener. Bu davranışı değiştirmek için istemcide max_retries ayarlayınOpenAI. Başarısız bir isteğin HTTP durumunu, istek kimliğini ve yanıtını incelemek için yakalayın openai.APIStatusError .
Aşağıdaki örnek dört yeniden deneme ayarlar ve başarılı ve başarısız istekler için istek kimliğini kaydeder:
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
Başarılı bir istek için aşağıdaki çıkış temsilidir. Yanıt metni ve istek kimliği farklılık gösterir:
An API allows software applications to communicate and exchange data through a defined set of rules.
Request ID: <request-id>
Başvuru: İstek kimlikleri, hatalar ve yeniden denemeler
Diğer SDK örnekleri
Sorun giderme
-
401Veya403yanıtı için, hedeflenen kimliğin veya API anahtarının Azure OpenAI kaynağına erişebildiğini onaylayın. - Yanıt için
404temel URL'nin/openai/v1/sona erdiğini ve geçerli bir dağıtım adı içerdiğinimodelonaylayın. - Paket veya tür hatası için SDK'yı güncelleştirin ve yüklü sürümü bu sayfada test edilen sürümle karşılaştırın.
- Model parametresi hatası için dağıtılan modelin parametresini destekleyip desteklemediğini denetleyin. Parametre desteği model aileleri arasında farklılık gösterebilir.