Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Obsługa wersji interfejsu API usługi Azure OpenAI
- Interfejs API ogólnie dostępnej wersji 1 umożliwia teraz dostęp do operacji ogólnodostępnych i w wersji zapoznawczej. Aby dowiedzieć się więcej, zobacz przewodnik cyklu życia wersji interfejsu API.
Instalacja
dotnet add package OpenAI
Uwierzytelnianie
Bezpieczne, bezkluczane podejście do uwierzytelniania polega na użyciu identyfikatora Entra firmy Microsoft (dawniej Azure Active Directory) za pośrednictwem biblioteki tożsamości platformy Azure. Aby użyć biblioteki:
dotnet add package Azure.Identity
Użyj żądanego typu poświadczeń z biblioteki. Na przykład : DefaultAzureCredential
using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default");
ChatClient client = new(
model: "gpt-4.1-nano",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions() {
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
ChatCompletion completion = client.CompleteChat("Tell me about the bitter lesson.'");
Console.WriteLine($"[ASSISTANT]: {completion.Content[0].Text}");
Aby uzyskać więcej informacji na temat uwierzytelniania bez klucza usługi Azure OpenAI, zobacz artykuł Szybki start "Rozpoczynanie pracy z blokiem konstrukcyjnym zabezpieczeń usługi Azure OpenAI".
Rozmowa
Przykład żądania ukończenia czatu do modelu rozumowania.
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001 //currently required for token based authentication
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default");
ChatClient client = new(
model: "o4-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
ChatCompletionOptions options = new ChatCompletionOptions
{
ReasoningEffortLevel = ChatReasoningEffortLevel.Low,
MaxOutputTokenCount = 100000
};
ChatCompletion completion = client.CompleteChat(
new DeveloperChatMessage("You are a helpful assistant"),
new UserChatMessage("Tell me about the bitter lesson")
);
Console.WriteLine($"[ASSISTANT]: {completion.Content[0].Text}");
Osadzanie
using OpenAI;
using OpenAI.Embeddings;
using System.ClientModel;
string apiKey = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY")
?? throw new InvalidOperationException("AZURE_OPENAI_API_KEY environment variable is not set");
EmbeddingClient client = new(
"text-embedding-3-large",
credential: new ApiKeyCredential(apiKey),
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
string input = "This is a test";
OpenAIEmbedding embedding = client.GenerateEmbedding(input);
ReadOnlyMemory<float> vector = embedding.ToFloats();
Console.WriteLine($"Embeddings: [{string.Join(", ", vector.ToArray())}]");
Odpowiedzi API
using OpenAI;
using OpenAI.Responses;
using System.ClientModel.Primitives;
using Azure.Identity;
#pragma warning disable OPENAI001 //currently required for token based authentication
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default");
OpenAIResponseClient client = new(
model: "o4-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
OpenAIResponse response = await client.CreateResponseAsync(
userInputText: "What's the optimal strategy to win at poker?",
new ResponseCreationOptions()
{
ReasoningOptions = new ResponseReasoningOptions()
{
ReasoningEffortLevel = ResponseReasoningEffortLevel.High,
},
});
Console.WriteLine(response.GetOutputText());
Przesyłanie strumieniowe
using OpenAI;
using OpenAI.Responses;
using System.ClientModel.Primitives;
using Azure.Identity;
#pragma warning disable OPENAI001 //currently required for token based authentication
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default");
#pragma warning disable OPENAI001
OpenAIResponseClient client = new(
model: "o4-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
await foreach (StreamingResponseUpdate update
in client.CreateResponseStreamingAsync(
userInputText: "What's the optimal strategy to win at poker?",
new ResponseCreationOptions()
{
ReasoningOptions = new ResponseReasoningOptions()
{
ReasoningEffortLevel = ResponseReasoningEffortLevel.High,
},
}))
{
if (update is StreamingResponseOutputItemAddedUpdate itemUpdate
&& itemUpdate.Item is ReasoningResponseItem reasoningItem)
{
Console.WriteLine($"[Reasoning] ({reasoningItem.Status})");
}
else if (update is StreamingResponseOutputTextDeltaUpdate delta)
{
Console.Write(delta.Delta);
}
}
Serwer MCP
using OpenAI;
using OpenAI.Responses;
using System.ClientModel.Primitives;
using Azure.Identity;
#pragma warning disable OPENAI001 //currently required for token based authentication
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default");
OpenAIResponseClient client = new(
model: "o4-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
ResponseCreationOptions options = new();
options.Tools.Add(ResponseTool.CreateMcpTool(
serverLabel: "microsoft_learn",
serverUri: new Uri("https://learn.microsoft.com/api/mcp"),
toolCallApprovalPolicy: new McpToolCallApprovalPolicy(GlobalMcpToolCallApprovalPolicy.NeverRequireApproval)
));
OpenAIResponse response = (OpenAIResponse)client.CreateResponse([
ResponseItem.CreateUserMessageItem([
ResponseContentPart.CreateInputTextPart("Search for information about Azure Functions")
])
], options);
Console.WriteLine(response.GetOutputText());
Obsługa błędów
Kody błędów
| Kod stanu | Typ błędu |
|---|---|
| 400 | Bad Request Error |
| 401 | Authentication Error |
| 403 | Permission Denied Error |
| 404 | Not Found Error |
| 422 | Unprocessable Entity Error |
| 429 | Rate Limit Error |
| 500 | Internal Server Error |
| 503 | Service Unavailable |
| 504 | Gateway Timeout |
Ponowne próby
Klasy klientów będą automatycznie ponawiać następujące błędy maksymalnie trzy razy przy użyciu wycofywania wykładniczego:
- 408 - Limit czasu żądania
- 429 Zbyt wiele żądań
- 500 Wewnętrzny błąd serwera
- 502 Niewłaściwa brama
- Usługa 503 jest niedostępna
- 504 — limit czasu bramy
Kod źródłowy | Pakiet (pkg.go.dev) | Dokumentacja referencyjna interfejsu | API RESTDokumentacja referencyjna pakietu
Obsługa wersji interfejsu API usługi Azure OpenAI
- Interfejs API ogólnie dostępnej wersji 1 umożliwia teraz dostęp do operacji ogólnodostępnych i w wersji zapoznawczej. Aby dowiedzieć się więcej, zobacz przewodnik cyklu życia wersji interfejsu API.
Instalacja
Zainstaluj moduły openai i azidentity za pomocą polecenia go get.
go get -u 'github.com/openai/openai-go@v2.1.1'
# optional
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
Uwierzytelnianie
Moduł azidentity jest używany do uwierzytelniania identyfikatora Entra firmy Microsoft w usłudze Azure OpenAI.
package main
import (
"context"
"fmt"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/openai/openai-go/v2"
"github.com/openai/openai-go/v2/azure"
"github.com/openai/openai-go/v2/option"
)
func main() {
// Create an Azure credential
tokenCredential, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
panic(fmt.Sprintf("Failed to create credential: %v", err))
}
// Create a client with Azure OpenAI endpoint and token credential
client := openai.NewClient(
option.WithBaseURL("https://YOUR-RESOURCE_NAME.openai.azure.com/openai/v1/"),
azure.WithTokenCredential(tokenCredential),
)
// Make a completion request
chatCompletion, err := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("Explain what the bitter lesson is?"),
},
Model: "o4-mini", // Use your deployed model name on Azure
})
if err != nil {
panic(err.Error())
}
fmt.Println(chatCompletion.Choices[0].Message.Content)
}
Aby uzyskać więcej informacji na temat uwierzytelniania bez klucza usługi Azure OpenAI, zobacz Używanie interfejsu Azure OpenAI bez kluczy.
Osadzanie
package main
import (
"context"
"fmt"
"os"
"github.com/openai/openai-go/v2"
"github.com/openai/openai-go/v2/option"
)
func main() {
// Get API key from environment variable
apiKey := os.Getenv("AZURE_OPENAI_API_KEY")
if apiKey == "" {
panic("AZURE_OPENAI_API_KEY environment variable is not set")
}
// Create a client with Azure OpenAI endpoint and API key
client := openai.NewClient(
option.WithBaseURL("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"),
option.WithAPIKey(apiKey),
)
ctx := context.Background()
text := "The attention mechanism revolutionized natural language processing"
// Make an embedding request
embedding, err := client.Embeddings.New(ctx, openai.EmbeddingNewParams{
Input: openai.EmbeddingNewParamsInputUnion{OfString: openai.String(text)},
Model: "text-embedding-3-small", // Use your deployed model name on Azure
})
if err != nil {
panic(err.Error())
}
// Print embedding information
fmt.Printf("Model: %s\n", embedding.Model)
fmt.Printf("Number of embeddings: %d\n", len(embedding.Data))
fmt.Printf("Embedding dimensions: %d\n", len(embedding.Data[0].Embedding))
fmt.Printf("Usage - Prompt tokens: %d, Total tokens: %d\n", embedding.Usage.PromptTokens, embedding.Usage.TotalTokens)
// Print first few values of the embedding vector
fmt.Printf("First 10 embedding values: %v\n", embedding.Data[0].Embedding[:10])
}
Responses
package main
import (
"context"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/openai/openai-go/v2"
"github.com/openai/openai-go/v2/azure"
"github.com/openai/openai-go/v2/option"
"github.com/openai/openai-go/v2/responses"
)
func main() {
// Create Azure token credential
tokenCredential, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
panic(err)
}
// Create client with Azure endpoint and token credential
client := openai.NewClient(
option.WithBaseURL("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/"),
azure.WithTokenCredential(tokenCredential),
)
ctx := context.Background()
question := "Tell me about the attention is all you need paper"
resp, err := client.Responses.New(ctx, responses.ResponseNewParams{
Input: responses.ResponseNewParamsInputUnion{OfString: openai.String(question)},
Model: "o4-mini",
})
if err != nil {
panic(err)
}
println(resp.OutputText())
}
Kod źródłowy |Dokumentacja referencyjna interfejsu | API RESTDokumentacja referencyjna | pakietuMaven Central
Obsługa wersji interfejsu API usługi Azure OpenAI
- Interfejs API ogólnie dostępnej wersji 1 umożliwia teraz dostęp do operacji ogólnodostępnych i w wersji zapoznawczej. Aby dowiedzieć się więcej, zobacz przewodnik cyklu życia wersji interfejsu API.
Instalacja
Gradle
implementation("com.openai:openai-java:4.0.1")
Maven
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>4.0.1</version>
</dependency>
Uwierzytelnianie
Uwierzytelnianie przy użyciu identyfikatora Entra firmy Microsoft wymaga wstępnej konfiguracji:
Dodaj pakiet tożsamości platformy Azure:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.0</version>
</dependency>
Po skonfigurowaniu można wybrać, który typ poświadczenia z azure.identity chcesz używać. Na przykład DefaultAzureCredential można użyć do uwierzytelniania klienta: ustaw wartości dla identyfikatora klienta, identyfikatora dzierżawy oraz tajnego klienta aplikacji Microsoft Entra ID jako zmienne środowiskowe: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.
Autoryzacja jest najłatwiejsza przy użyciu polecenia DefaultAzureCredential. Znajduje najlepsze poświadczenie do użycia w środowisku uruchomieniowym, chociaż użycie DefaultAzureCredential jest zalecane tylko do testowania, a nie w środowisku produkcyjnym.
Credential tokenCredential = BearerTokenCredential.create(
AuthenticationUtil.getBearerTokenSupplier(
new DefaultAzureCredentialBuilder().build(),
"https://cognitiveservices.azure.com/.default"));
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/")
.credential(tokenCredential)
.build();
Aby uzyskać więcej informacji na temat uwierzytelniania bez klucza usługi Azure OpenAI, zobacz Używanie interfejsu Azure OpenAI bez kluczy.
Responses
package com.example;
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.ChatModel;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
import com.azure.core.credential.AzureKeyCredential;
public class OpenAITest {
public static void main(String[] args) {
// Get API key from environment variable for security
String apiKey = System.getenv("OPENAI_API_KEY");
String resourceName = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1";
String modelDeploymentName = "gpt-4.1"; //replace with you model deployment name
try {
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl(resourceName)
.apiKey(apiKey)
.build();
ResponseCreateParams params = ResponseCreateParams.builder()
.input("Tell me about the bitter lesson?")
.model(modelDeploymentName)
.build();
Response response = client.responses().create(params);
System.out.println("Response: " + response);
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
}
}
}
Dokumentacja pakietu kodu źródłowego | (npm)Reference | |
Obsługa wersji interfejsu API usługi Azure OpenAI
- Interfejs API ogólnie dostępnej wersji 1 umożliwia teraz dostęp do operacji ogólnodostępnych i w wersji zapoznawczej. Aby dowiedzieć się więcej, zobacz przewodnik cyklu życia wersji interfejsu API.
Instalacja
npm install openai
Uwierzytelnianie
npm install @azure/identity
Aby uwierzytelnić OpenAI klienta, musimy jednak użyć getBearerTokenProvider funkcji z @azure/identity pakietu. Ta funkcja tworzy dostawcę tokenów, który OpenAI używa wewnętrznie do uzyskiwania tokenów dla każdego żądania. Dostawca tokenu jest tworzony w następujący sposób:
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import { OpenAI } from "openai";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
'https://cognitiveservices.azure.com/.default');
const client = new OpenAI({
baseURL: "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
apiKey: tokenProvider
});
Aby uzyskać więcej informacji na temat uwierzytelniania bez klucza usługi Azure OpenAI, zobacz artykuł Szybki start "Rozpoczynanie pracy z blokiem konstrukcyjnym zabezpieczeń usługi Azure OpenAI".
Responses
responses.create
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import { OpenAI } from "openai";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
'https://cognitiveservices.azure.com/.default');
const client = new OpenAI({
baseURL: "https://YOUR-RESORCE-NAME.openai.azure.com/openai/v1/",
apiKey: tokenProvider
});
const response = await client.responses.create({
model: 'gpt-4.1-nano', //model deployment name
instructions: 'You are a helpful AI agent',
input: 'Tell me about the bitter lesson?',
});
console.log(response.output_text);
Przesyłanie strumieniowe
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import { OpenAI } from "openai";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
'https://cognitiveservices.azure.com/.default');
const client = new OpenAI({
baseURL: "https://YOUR-RESORCE-NAME.openai.azure.com/openai/v1/",
apiKey: tokenProvider
});
const stream = await client.responses.create({
model: 'gpt-4.1-nano', // model deployment name
input: 'Provide a brief history of the attention is all you need paper.',
stream: true,
});
for await (const event of stream) {
if (event.type === 'response.output_text.delta' && event.delta) {
process.stdout.write(event.delta);
}
}
Serwer MCP
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import { OpenAI } from "openai";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
'https://cognitiveservices.azure.com/.default');
const client = new OpenAI({
baseURL: "https://YOUR-RESORCE-NAME.openai.azure.com/openai/v1/",
apiKey: tokenProvider
});
const resp = await client.responses.create({
model: "gpt-5",
tools: [
{
type: "mcp",
server_label: "microsoft_learn",
server_description: "Microsoft Learn MCP server for searching and fetching Microsoft documentation.",
server_url: "https://learn.microsoft.com/api/mcp",
require_approval: "never",
},
],
input: "Search for information about Azure Functions",
});
console.log(resp.output_text);
Rozmowa
chat.completions.create
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import { OpenAI } from "openai";
const tokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
'https://cognitiveservices.azure.com/.default');
const client = new OpenAI({
baseURL: "https://france-central-test-001.openai.azure.com/openai/v1/",
apiKey: tokenProvider
});
const messages = [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'Tell me about the attention is all you need paper' }
];
// Make the API request with top-level await
const result = await client.chat.completions.create({
messages,
model: 'gpt-4.1-nano', // model deployment name
max_tokens: 100
});
// Print the full response
console.log('Full response:', result);
// Print just the message content from the response
console.log('Response content:', result.choices[0].message.content);
Obsługa błędów
Kody błędów
| Kod stanu | Typ błędu |
|---|---|
| 400 | Bad Request Error |
| 401 | Authentication Error |
| 403 | Permission Denied Error |
| 404 | Not Found Error |
| 422 | Unprocessable Entity Error |
| 429 | Rate Limit Error |
| 500 | Internal Server Error |
| 503 | Service Unavailable |
| 504 | Gateway Timeout |
Ponowne próby
Następujące błędy są domyślnie automatycznie wygaszane dwukrotnie z krótkim wykładniczym opóźnieniem.
- Błędy Połączenia
- 408 - Limit czasu żądania
- 429 Ograniczenie częstotliwości
-
>=500 Błędy wewnętrzne
Użyj maxRetries polecenia , aby ustawić/wyłączyć zachowanie ponawiania prób:
// Configure the default for all requests:
const client = new OpenAI({
maxRetries: 0, // default is 2
});
// Or, configure per-request:
await client.chat.completions.create({ messages: [{ role: 'user', content: 'How can I get the name of the current day in Node.js?' }], model: '' }, {
maxRetries: 5,
});
Kod źródłowy biblioteki | Pakiet (PyPi) | |
Uwaga / Notatka
Ta biblioteka jest utrzymywana przez OpenAI. Zapoznaj się z historyją wydań, aby śledzić najnowsze aktualizacje biblioteki.
Obsługa wersji interfejsu API usługi Azure OpenAI
- Interfejs API ogólnie dostępnej wersji 1 umożliwia teraz dostęp do operacji ogólnodostępnych i w wersji zapoznawczej. Aby dowiedzieć się więcej, zobacz przewodnik cyklu życia wersji interfejsu API.
Instalacja
pip install openai
Najnowsza wersja:
pip install openai --upgrade
Uwierzytelnianie
Punkty końcowe i klucze interfejsu API dla zasobów można pobrać z portalu Azure lub AI Foundry:
- Zaloguj się do Azure portal>, wybierz swój zasób, >Zarządzanie zasobami>Klucze i punkt końcowy
- Zaloguj się do portalu AI Foundry>, a następnie wybierz zasób
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key = token_provider
)
Odpowiedzi API
responses.create()
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
response = client.responses.create(
model="gpt-4.1-nano",
input= "This is a test"
)
print(response.model_dump_json(indent=2))
Aby uzyskać więcej przykładów, zobacz dokumentację API odpowiedzi.
responses.create() za pomocą narzędzia serwera MCP
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
resp = client.responses.create(
model="gpt-5",
tools=[
{
"type": "mcp",
"server_label": "microsoft_learn",
"server_description": "Microsoft Learn MCP server for searching and fetching Microsoft documentation.",
"server_url": "https://learn.microsoft.com/api/mcp",
"require_approval": "never",
},
],
input="Search for information about Azure Functions",
)
print(resp.output_text)
Aby uzyskać więcej przykładów, zobacz dokumentację API odpowiedzi.
Rozmowa
chat.completions.create()
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
completion = client.chat.completions.create(
model="gpt-4o", # Replace with your model deployment name.
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "When was Microsoft founded?"}
]
)
#print(completion.choices[0].message)
print(completion.model_dump_json(indent=2))
chat.completions.create() — przesyłanie strumieniowe
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
completion = client.chat.completions.create(
model="gpt-4o", # Replace with your model deployment name.
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "When was Microsoft founded?"}
],
stream=True
)
for chunk in completion:
if chunk.choices and chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end='',)
chat.completions.create() — dane wejściowe obrazu
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
completion = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-foundry/openai/media/how-to/generated-seattle.png",
}
},
],
}
],
max_tokens=300,
)
print(completion.model_dump_json(indent=2))
Osadzanie
embeddings.create()
Osadzenia obecnie nie obsługują Microsoft Entra ID w połączeniu z usługą Azure OpenAI i interfejsu API w wersji 1.
Precyzyjne dostosowanie
Artykuł instruktażowy o dostrajaniu z użyciem Pythona
Obsługa błędów
# from openai import OpenAI
# client = OpenAI()
import openai
try:
client.fine_tuning.jobs.create(
model="gpt-4o",
training_file="file-test",
)
except openai.APIConnectionError as e:
print("The server could not be reached")
print(e.__cause__) # an underlying Exception, likely raised within httpx.
except openai.RateLimitError as e:
print("A 429 status code was received; we should back off a bit.")
except openai.APIStatusError as e:
print("Another non-200-range status code was received")
print(e.status_code)
print(e.response)
Kody błędów
| Kod stanu | Typ błędu |
|---|---|
| 400 | BadRequestError |
| 401 | AuthenticationError |
| 403 | PermissionDeniedError |
| 404 | NotFoundError |
| 422 | UnprocessableEntityError |
| 429 | RateLimitError |
| >=500 | InternalServerError |
| N/A | APIConnectionError |
Identyfikatory żądań
Aby pobrać identyfikator żądania, możesz użyć _request_id właściwości odpowiadającej nagłówkowi x-request-id odpowiedzi.
print(completion._request_id)
print(legacy_completion._request_id)
Ponowne próby
Następujące błędy są domyślnie automatycznie wygaszane dwukrotnie z krótkim wykładniczym opóźnieniem.
- Błędy Połączenia
- 408 - Limit czasu żądania
- 429 Ograniczenie częstotliwości
-
>=500 Błędy wewnętrzne
Użyj max_retries polecenia , aby ustawić/wyłączyć zachowanie ponawiania prób:
# For all requests
from openai import OpenAI
client = OpenAI(
max_retries=0
)
# max retires for specific requests
client.with_options(max_retries=5).chat.completions.create(
messages=[
{
"role": "user",
"content": "When was Microsoft founded?",
}
],
model="gpt-4o",
)
Dalsze kroki
- Aby zobaczyć, jakie modele są obecnie obsługiwane, zapoznaj się ze stroną Modeli usługi Azure OpenAI