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.
Bu makalede, yeni birleşik OpenAI v1 sohbet tamamlama uç noktasına nasıl geçiş yapacağınız gösterilmektedir. OpenAI ve Azure OpenAI ile çalışırken sık karşılaşılan değişiklikleri ve farklılıkları kapsar.
OpenAI ve Azure OpenAI ortak bir Python istemci kitaplığını kullansa da, uç noktalar arasında geçiş yapmak için kodunuzda yapmanız gereken küçük değişiklikler vardı. Yeni birleşik OpenAI v1 sohbet tamamlama uç noktası, Azure'a özgü ayrı kod yolları gereksinimini ortadan kaldırır.
Authentication
Microsoft Entra Kimliğini kullanarak anahtarsız kimlik doğrulaması öneririz. Bu mümkün değilse BIR API anahtarı kullanın ve Azure Key Vault'ta depolayın. Azure ortamlarınızın dışında test için bir ortam değişkeni kullanabilirsiniz.
API anahtarı kimlik doğrulaması
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY")
)
Microsoft Entra kimlik doğrulama
Microsoft Entra kimlik doğrulaması yalnızca Azure OpenAI kaynaklarıyla desteklenir. Aşağıdaki adımları tamamlayın:
Azure Identity istemci kitaplığını yükleyin:
pip install azure-identityOpenAI istemci nesnesini aşağıdaki gibi yapılandırın:
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, )Tavsiye
DefaultAzureCredentialuygulamanızın çalıştığı ortam için iyileştirilebilir. Daha fazla bilgi için bkz. DefaultAzureCredential'ı özelleştirme.Uygun Azure rol tabanlı erişim denetimi (RBAC) izinlerini atayın. Daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi (RBAC).
Azure'da çalışırken, Azure konak kaynağı tarafından kullanılan yönetilen kimliğe roller atayın. Yerel geliştirme ortamında çalışırken, uygulamayı çalıştıran kullanıcıya roller atayın.
using OpenAI;
using System;
using System.ClientModel;
string apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");
OpenAIClient client = new(new ApiKeyCredential(apiKey));
Microsoft Entra kimlik doğrulama
Microsoft Entra kimlik doğrulaması yalnızca Azure OpenAI kaynaklarıyla desteklenir. Aşağıdaki adımları tamamlayın:
Azure Identity istemci kitaplığını yükleyin:
dotnet add package Azure.IdentityOpenAIClientNesneyi aşağıdaki gibi yapılandırın: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);Tavsiye
DefaultAzureCredentialuygulamanızın çalıştığı ortam için iyileştirilebilir. Daha fazla bilgi için bkz. DefaultAzureCredential'ı özelleştirme.Uygun Azure rol tabanlı erişim denetimi (RBAC) izinlerini atayın. Daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi (RBAC).
Azure'da çalışırken, Azure konak kaynağı tarafından kullanılan yönetilen kimliğe roller atayın. Yerel geliştirme ortamında çalışırken, uygulamayı çalıştıran kullanıcıya roller atayın.
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 kimlik doğrulama
Microsoft Entra kimlik doğrulaması yalnızca Azure OpenAI kaynaklarıyla desteklenir. Aşağıdaki adımları tamamlayın:
Azure Identity istemci kitaplığını yükleyin:
npm install @azure/identityOpenAI istemci nesnesini aşağıdaki gibi yapılandırın:
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 });Tavsiye
DefaultAzureCredentialuygulamanızın çalıştığı ortam için iyileştirilebilir. Daha fazla bilgi için bkz. DefaultAzureCredential'ı özelleştirme.Uygun Azure rol tabanlı erişim denetimi (RBAC) izinlerini atayın. Daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi (RBAC).
Azure'da çalışırken, Azure konak kaynağı tarafından kullanılan yönetilen kimliğe roller atayın. Yerel geliştirme ortamında çalışırken, uygulamayı çalıştıran kullanıcıya roller atayın.
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 kimlik doğrulama
Microsoft Entra kimlik doğrulaması yalnızca Azure OpenAI kaynaklarıyla desteklenir. Aşağıdaki adımları tamamlayın:
Projenize azure-identity bağımlılığını ekleyin.
OpenAIClientNesneyi aşağıdaki gibi yapılandırın: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(); } }Tavsiye
DefaultAzureCredentialuygulamanızın çalıştığı ortam için iyileştirilebilir. Daha fazla bilgi için bkz. DefaultAzureCredential'ı özelleştirme.Uygun Azure rol tabanlı erişim denetimi (RBAC) izinlerini atayın. Daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi (RBAC).
Azure'da çalışırken, Azure konak kaynağı tarafından kullanılan yönetilen kimliğe roller atayın. Yerel geliştirme ortamında çalışırken, uygulamayı çalıştıran kullanıcıya roller atayın.
// 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 kimlik doğrulama
Microsoft Entra kimlik doğrulaması yalnızca Azure OpenAI kaynaklarıyla desteklenir. Aşağıdaki adımları tamamlayın:
Projenize azure-identity bağımlılığını ekleyin.
OpenAIClientNesneyi aşağıdaki gibi yapılandırın:// 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), )Tavsiye
DefaultAzureCredentialuygulamanızın çalıştığı ortam için iyileştirilebilir. Daha fazla bilgi için bkz. DefaultAzureCredential'ı özelleştirme.Uygun Azure rol tabanlı erişim denetimi (RBAC) izinlerini atayın. Daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi (RBAC).
Azure'da çalışırken, Azure konak kaynağı tarafından kullanılan yönetilen kimliğe roller atayın. Yerel geliştirme ortamında çalışırken, uygulamayı çalıştıran kullanıcıya roller atayın.
Modeli belirtme
OpenAI, hangi modelin model kullanılacağını belirtmek için anahtar sözcük bağımsız değişkenini kullanır. Azure OpenAI, benzersiz model dağıtımları kavramına sahiptir. Azure OpenAI kullanırken, modeli dağıtırken seçtiğiniz temel dağıtım adını referans almalısınız.
Önemli
Azure OpenAI ve OpenAI, API çağrılarında model adlarını farklı işler. OpenAI yalnızca model adına ihtiyaç duyar. Model parametresini kullandığınızda bile Azure OpenAI her zaman dağıtım adına ihtiyaç duyar. Azure OpenAI API'lerini çağırırken model adı yerine dağıtım adını kullanmanız gerekir. Belgelerimiz genellikle her API uç noktasıyla hangi modelin çalıştığını göstermek için model adlarıyla eşleşen dağıtım adlarını gösterir. Dağıtım adları için size en uygun adlandırma kurallarını seçin.
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, hangi modelin model kullanılacağını belirtmek için parametresini kullanır. Azure OpenAI, benzersiz model dağıtımları kavramına sahiptir. Azure OpenAI kullanırken, modeli dağıtırken seçtiğiniz temel dağıtım adını referans almalısınız.
Önemli
Azure OpenAI ve OpenAI, API çağrılarında model adlarını farklı işler. OpenAI yalnızca model adına ihtiyaç duyar. Model parametresini kullandığınızda bile Azure OpenAI her zaman dağıtım adına ihtiyaç duyar. Azure OpenAI API'lerini çağırırken model adı yerine dağıtım adını kullanmanız gerekir. Belgelerimiz genellikle her API uç noktasıyla hangi modelin çalıştığını göstermek için model adlarıyla eşleşen dağıtım adlarını gösterir. Dağıtım adları için size en uygun adlandırma kurallarını seçin.
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, hangi modelin model kullanılacağını belirtmek için anahtar sözcük bağımsız değişkenini kullanır. Azure OpenAI, benzersiz model dağıtımları kavramına sahiptir. Azure OpenAI kullanırken, modeli dağıtırken seçtiğiniz temel dağıtım adını referans almalısınız.
Önemli
Azure OpenAI ve OpenAI, API çağrılarında model adlarını farklı işler. OpenAI yalnızca model adına ihtiyaç duyar. Model parametresini kullandığınızda bile Azure OpenAI her zaman dağıtım adına ihtiyaç duyar. Azure OpenAI API'lerini çağırırken model adı yerine dağıtım adını kullanmanız gerekir. Belgelerimiz genellikle her API uç noktasıyla hangi modelin çalıştığını göstermek için model adlarıyla eşleşen dağıtım adlarını gösterir. Dağıtım adları için size en uygun adlandırma kurallarını seçin.
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, hangi modelin model kullanılacağını belirtmek için anahtar sözcük bağımsız değişkenini kullanır. Azure OpenAI, benzersiz model dağıtımları kavramına sahiptir. Azure OpenAI kullanırken, modeli dağıtırken seçtiğiniz temel dağıtım adını referans almalısınız.
Önemli
Azure OpenAI ve OpenAI, API çağrılarında model adlarını farklı işler. OpenAI yalnızca model adına ihtiyaç duyar. Model parametresini kullandığınızda bile Azure OpenAI her zaman dağıtım adına ihtiyaç duyar. Azure OpenAI API'lerini çağırırken model adı yerine dağıtım adını kullanmanız gerekir. Belgelerimiz genellikle her API uç noktasıyla hangi modelin çalıştığını göstermek için model adlarıyla eşleşen dağıtım adlarını gösterir. Dağıtım adları için size en uygun adlandırma kurallarını seçin.
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, hangi modelin Model kullanılacağını belirtmek için anahtar sözcük bağımsız değişkenini kullanır. Azure OpenAI, benzersiz model dağıtımları kavramına sahiptir. Azure OpenAI kullanırken, modeli dağıtırken seçtiğiniz temel dağıtım adını referans almalısınız.
Önemli
Azure OpenAI ve OpenAI, API çağrılarında model adlarını farklı işler. OpenAI yalnızca model adına ihtiyaç duyar. Model parametresini kullandığınızda bile Azure OpenAI her zaman dağıtım adına ihtiyaç duyar. Azure OpenAI API'lerini çağırırken model adı yerine dağıtım adını kullanmanız gerekir. Belgelerimiz genellikle her API uç noktasıyla hangi modelin çalıştığını göstermek için model adlarıyla eşleşen dağıtım adlarını gösterir. Dağıtım adları için size en uygun adlandırma kurallarını seçin.
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>"),
},
})
Azure OpenAI gömme birden fazla giriş desteği
OpenAI ve Azure OpenAI şu anda için text-embedding-ada-0022.048 giriş öğesine kadar giriş dizilerini desteklemektedir. Her ikisi de bu model için API isteği başına maksimum giriş belirteci sınırının 8.191'in altında kalmasını gerektirir.
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"},
},
})