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.
Yalnızca şunlar için geçerlidir:Dökümhane (klasik) portalı. Bu makale yeni Dökümhane portalında kullanılamaz.
Yeni portal hakkında daha fazla bilgi edinin.
Uyarı
Bu makaledeki bağlantılar, şu anda görüntülediğiniz Dökümhane (klasik) belgeleri yerine yeni Microsoft Foundry belgelerinde içerik açabilir.
Önemli
En son API örnekleri için API yaşam döngüsü makalesine bakın.
İstemcinin kimliğini doğrulama
Azure OpenAI'ye yapılan API isteklerinin kimliğini doğrulamak için birkaç yol vardır. Microsoft Entra ID belirteçlerini kullanmanızı şiddetle tavsiye ederiz. Daha fazla bilgi için Azure Identity belgelerine bakın.
Microsoft Entra ID
Microsoft Entra ID belirteçleri kullanarak Azure OpenAI ile kimlik doğrulaması yapmanın çeşitli yolları vardır. Varsayılan yol, DefaultAzureCredential paketinden @azure/identity sınıfını kullanmaktır, ancak uygulamanız farklı bir kimlik bilgisi sınıfı kullanıyor olabilir. Bu kılavuzun amaçları doğrultusunda sınıfını kullandığınızı DefaultAzureCredential varsayıyoruz. Kimlik bilgileri aşağıdaki gibi oluşturulabilir:
import { DefaultAzureCredential } from "@azure/identity";
const credential = new DefaultAzureCredential();
Bu nesneyi OpenAIClient oluşturucusunun ikinci bağımsız değişkenine iletin.
Ancak AzureOpenAI istemcisinin kimliğini doğrulamak için getBearerTokenProvider paketinden @azure/identity işlevini kullanmamız gerekir. Bu işlev, her istek için belirteçleri dahili olarak almak üzere AzureOpenAI kullanan bir belirteç sağlayıcısı oluşturur. Belirteç sağlayıcısı aşağıdaki gibi oluşturulur:
import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
const credential = new DefaultAzureCredential();
const scope = "https://ai.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);
azureADTokenProvider seçenekler nesnesine, AzureOpenAI istemcisi oluşturulurken geçirilir.
(Kesinlikle Önerilmez) API Anahtarı
Diğer kimlik doğrulama yöntemlerinden daha az güvenli olduklarından üretimde API anahtarlarını kullanmayın. Daha önce, kimlik doğrulaması OpenAIClientyapmak için nesneleri aşağıdaki gibi oluşturdunuzAzureKeyCredential:
import { AzureKeyCredential } from "@azure/openai";
const apiKey = new AzureKeyCredential("your API key");
Öte yandan, AzureOpenAI ortam değişkeni ayarlanarak AZURE_OPENAI_API_KEY veya istemci oluşturulurken apiKey options nesnesinde dize özelliği ayarlanarak AzureOpenAI bir API anahtarıyla kimlik doğrulaması yapılabilir.
Önemli
API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarı kullanıyorsanız, Azure Key Vault güvenli bir şekilde depolayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz. Azure Key Vault ile
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz. Azure Yapay Zeka Hizmetleri istekleri doğrulama.
İstemciyi oluşturma
import { AzureOpenAI } from "openai";
const deployment = "Your Azure OpenAI deployment";
const apiVersion = "2024-04-01-preview";
const options = { azureADTokenProvider, deployment, apiVersion }
const client = new AzureOpenAI(options);
Azure OpenAI kaynağının uç noktası endpoint seçeneği ayarlanarak belirtilebilir, ancak istemci tarafından AZURE_OPENAI_ENDPOINT ortam değişkeninden de yüklenebilir. İstemcinin kodunda değişiklik yapmadan farklı ortamlarda kullanılmasına ve ayrıca uç noktayı kodda ifşa edilmeden korumasına izin verdiğinden, uç noktayı ayarlamak için önerilen yöntem budur.
API sürümünün belirtilmesi gerekir; mevcut kodun önizleme API sürümleri arasında bozulmadığından emin olmak için bu gereklidir. Azure OpenAI API sürümleri hakkında daha fazla bilgi edinmek için API sürüm oluşturma belgelerine bakın. Ayrıca özelliği deployment gerekli değildir ancak ayarlanması önerilir. Ayarlandıktan sonra deployment , bunu gerektiren tüm işlemler için varsayılan dağıtım olarak kullanılır. İstemci seçeneğiyle deployment oluşturulmadıysa seçenekler model nesnesindeki özellik dağıtım adıyla ayarlanmalıdır. Ancak, audio.transcriptions.create gibi ses işlemleri, istemcinin seçenek olarak dağıtım adına ayarlanmış deployment ile oluşturulmasını gerektirir.
API farklılıkları
OpenAIClient ve AzureOpenAI istemcilerinin önemli farklılıkları vardır:
-
OpenAIClient, işlemlericlient.getChatCompletionsgibi düz bir yöntem listesi halinde sunar.AzureOpenAI, işlemlericlient.chat.completions.creategibi iç içe gruplar halinde gruplandırır. -
OpenAIClientAzure OpenAI API'sinden farklı adlar kullanır. Örneğin, API snake case kullanırken istemci camel case kullanır.AzureOpenAIAzure OpenAI API ile aynı adları kullanır.
Geçiş örnekleri
Aşağıdaki bölümlerde,'den OpenAIClient 'e AzureOpenAIgeçişe ilişkin örnekler verilmiştir.
Sohbet bitişleri
const result = await client.chat.completions.create({ messages, model: '', max_tokens: 100 });
Aşağıdakilere dikkat edin:
-
getChatCompletionsyöntemichat.completions.createyöntemiyle değiştirildi. -
messagesparametresi artıkmessagesözelliği ile options nesnesine geçirilir. -
max_tokensözelliğinimaxTokensolarak yeniden adlandırın vedeploymentNameparametresini kaldırın. Genellikle, nesnedekioptionsözelliklerin adları Azure OpenAI API'sindekiyle aynıdır. API,OpenAIClientiçinde kullanılan camelCase adlandırma kuralı yerine snake_case adlandırmasını kullanır. Bu adlandırma kuralı, istemcideki tüm istekler ve yanıtlar genelindekiAzureOpenAItüm özellikler için geçerlidir. -
deploymentNameparametresi, istemcideploymentseçeneğiyle oluşturulduysa gerekli değildir. İstemci seçeneğiyledeploymentoluşturulmadıysa,modelseçenek nesnesindeki özellik dağıtım adıyla ayarlanmalıdır.
Sohbet akış tamamlama işlemleri
const stream = await client.chat.completions.create({ model: '', messages, max_tokens: 100, stream: true });
Azure'un Verileriniz Üzerindeki Kullanımı
import "@azure/openai/types";
const azureSearchEndpoint = "Your Azure Search resource endpoint";
const azureSearchIndexName = "Your Azure Search index name";
const result = await client.chat.completions.create({ model: '', messages, data_sources: [{
type: "azure_search",
parameters: {
endpoint: azureSearchEndpoint,
index_name: azureSearchIndexName,
authentication: {
type: "system_assigned_managed_identity",
}
}
}]
});
-
"@azure/openai/types", istemci türlerine Azure'a özgü tanımlar (örneğin,data_sources) eklemek için içe aktarılır. -
azureExtensionOptionsözelliği, içdata_sourcesözelliğiyle değiştirildi. -
parametersözelliği, Azure OpenAI API'sinin şemasını yansıtan uzantının parametrelerini sarmalayan eklenmiştir. - Deve olayı özellikleri, yılan kasası özellikleriyle değiştirilmiştir.
Sesin metne dönüştürülmesi
import { createReadStream } from "fs";
const result = await client.audio.transcriptions.create({
model: '',
file: createReadStream(audioFilePath),
});
-
getAudioTranscriptionyöntemiaudio.transcriptions.createyöntemiyle değiştirildi. -
AzureOpenAI,deploymentseçeneği dağıtım adına ayarlanmış olarak oluşturulmalıdır; bu sayedeaudio.transcriptions.creategibi ses işlemleri kullanılabilir. - Özelliğin
modeloptions nesnesinde ayarlanması gerekir, ancak değeri işlemde kullanılmaz, bu nedenle herhangi bir değere ayarlamaktan çekinmeyin. -
fileözelliği ,Buffervefs.ReadaStreamgibiBlobçeşitli türleri kabul eder, ancak bu örnekte kullanılarak disktenfs.createReadStreambir dosya akışı yapılır.
Ses çevirisi
import { createReadStream } from "fs";
const result = await client.audio.translations.create({
model: '',
file: createReadStream(audioFilePath),
});
-
getAudioTranslationyöntemiaudio.translations.createyöntemiyle değiştirildi. - Diğer tüm değişiklikler ses transkripsiyonu örneğindekiyle aynıdır.
Eklemeler
Aşağıdaki örnek, getEmbeddings yöntem çağrısının nasıl taşınacağını gösterir.
const embeddings = await client.embeddings.create({ input, model: '' });
-
getEmbeddingsyöntemiembeddings.createyöntemiyle değiştirildi. -
inputparametresi artıkinputözelliği ile options nesnesine geçirilir. -
deploymentNameparametresi kaldırıldı.deploymentNameparametresi, istemcideploymentseçeneğiyle oluşturulduysa gerekli değildir. İstemci seçeneğiyledeploymentoluşturulmadıysa,modelseçenek nesnesindeki özellik dağıtım adıyla ayarlanmalıdır.
Görüntü oluşturma
Aşağıdaki örnek, getImages yöntem çağrısının nasıl taşınacağını gösterir.
const results = await client.images.generate({ prompt, model: '', n, size });
-
getImagesyöntemiimages.generateyöntemiyle değiştirildi. -
promptparametresi artıkpromptözelliği ile options nesnesine geçirilir. -
deploymentNameparametresi kaldırıldı.deploymentNameparametresi, istemcideploymentseçeneğiyle oluşturulduysa gerekli değildir. İstemci seçeneğiyledeploymentoluşturulmadıysa,modelseçenek nesnesindeki özellik dağıtım adıyla ayarlanmalıdır.
İçerik filtresi
İçerik filtresi sonuçları, içindeki OpenAIClientsohbet tamamlama yanıt türlerinin bir parçasıdır. Ancak, AzureOpenAI arabirimdeki contentFilterResults özelliğine ChatCompletion.Choice doğrudan eşdeğeri yoktur. İçerik filtresi sonuçlarına "@azure/openai/types" içeri aktarılarak ve content_filter_results özelliğine erişilerek erişilebilir. Aşağıdaki örnek, içerik filtresi sonuçlarına nasıl erişileceğini göstermektedir.
import "@azure/openai/types";
const result = await client.chat.completions.create({ model: '', messages });
for (const choice of results.choices) {
const filterResults = choice.content_filter_results;
if (!filterResults) {
console.log("No content filter is found");
return;
}
if (filterResults.error) {
console.log(
`Content filter ran into the error ${filterResults.error.code}: ${filterResults.error.message}`);
}
const { hate, sexual, self_harm, violence } = filterResults;
...
}
- Deve olayı özellikleri, yılan kasası özellikleriyle değiştirilmiştir.
-
"@azure/openai/types", istemci türlerine Azure'a özgü tanımlar (örneğin, content_filter_results) eklenerek içeri aktarılır; daha fazla bilgi için Azure türleri bölümüne bakın.
Türleri Karşılaştırma
Aşağıdaki tabloda @azure/openai'den çeşitli tür adları incelenerek en yakın openai eşdeğeri gösterilmektedir. Ad farklılıkları, yukarıda bahsedilen değişikliklerin birkaçını gösterir. Bu tablo bir genel bakış sağlar ve aşağıdaki bölümlerde daha fazla ayrıntı ve kod örneği sağlanır.
| Eski Tür Adı | En Yakın Yeni Tür | Simge Türü | Açıklamayı değiştir |
|---|---|---|---|
OpenAIClient |
AzureOpenAI |
Sınıf | Bu sınıf, öncekinin yerini alır ve onunla ortak bir yöntemi yoktur. Aşağıdaki AzureOpenAI bölümüne bakın. |
AudioResult |
Transcription/Transcription |
Arayüz | Çağırma işlemine bağlı olarak, iki arabirim eskisinin yerini alır |
AudioResultFormat |
özelliğin response_format satır içi birleşim türü |
Diğer ad | Mevcut değil |
AudioResultSimpleJson |
Transcription/Transcription |
Arayüz | Çağırma işlemine bağlı olarak, iki arabirim eskisinin yerini alır |
AudioResultVerboseJson |
Mevcut Değil | Arayüz | |
AudioSegment |
Mevcut Değil | Arayüz | |
AudioTranscriptionTask |
Mevcut Değil | Diğer ad | |
tr-TR: AzureChatEnhancementConfiguration, AzureChatEnhancements, AzureChatExtensionConfiguration, AzureChatExtensionConfigurationUnion, AzureChatExtensionDataSourceResponseCitation, AzureChatExtensionsMessageContext, AzureChatExtensionType, AzureChatGroundingEnhancementConfiguration, AzureChatOCREnhancementConfiguration, AzureCosmosDBChatExtensionConfiguration, AzureCosmosDBFieldMappingOptions, AzureExtensionsOptions, AzureGroundingEnhancement, AzureGroundingEnhancementCoordinatePoint, AzureGroundingEnhancementLine, AzureGroundingEnhancementLineSpan, AzureMachineLearningIndexChatExtensionConfiguration, AzureSearchChatExtensionConfiguration, AzureSearchIndexFieldMappingOptions, AzureSearchQueryType, ContentFilterBlocklistIdResult, ContentFilterCitedDetectionResult, ContentFilterDetectionResult, ContentFilterErrorResults, ContentFilterResult, ContentFilterResultDetailsForPrompt, ContentFilterResultsForChoice, ContentFilterSeverity, ContentFilterResultsForPrompt, ContentFilterSuccessResultDetailsForPrompt, ContentFilterSuccessResultsForChoice, ElasticsearchChatExtensionConfiguration, ElasticsearchIndexFieldMappingOptions, ElasticsearchQueryType, ImageGenerationContentFilterResults, ImageGenerationPromptFilterResults, OnYourDataAccessTokenAuthenticationOptions, OnYourDataApiKeyAuthenticationOptions, OnYourDataAuthenticationOptions, OnYourDataAuthenticationOptionsUnion, OnYourDataConnectionStringAuthenticationOptions, OnYourDataDeploymentNameVectorizationSource, OnYourDataEncodedApiKeyAuthenticationOptions, OnYourDataEndpointVectorizationSource, OnYourDataKeyAndKeyIdAuthenticationOptions, OnYourDataModelIdVectorizationSource, OnYourDataSystemAssignedManagedIdentityAuthenticationOptions, OnYourDataUserAssignedManagedIdentityAuthenticationOptions, OnYourDataVectorizationSource, OnYourDataVectorizationSourceType, OnYourDataVectorizationSourceUnion, PineconeChatExtensionConfiguration, PineconeFieldMappingOptions |
Mevcut Değil | Arabirimler ve Takma İsimler | Aşağıdaki Azure türleri bölümüne bakın |
AzureKeyCredential |
Mevcut Değil | Sınıf | API anahtarı dize değeri olarak sağlanabilir |
ChatChoice |
ChatCompletion.Choice |
Arayüz | |
ChatChoiceLogProbabilityInfo |
Logprobs |
Arayüz | |
ChatCompletions |
ChatCompletion ve ChatCompletionChunk |
Arayüz | |
ChatCompletionsFunctionToolCall |
ChatCompletionMessageToolCall |
Arayüz | |
ChatRequestFunctionMessage |
ChatCompletionFunctionMessageParam |
Arayüz | |
ChatRequestMessage |
ChatCompletionMessageParam |
Arayüz | |
ChatRequestMessageUnion |
ChatCompletionMessageParam |
||
ChatRequestSystemMessage |
ChatCompletionSystemMessageParam |
Arayüz | |
ChatRequestToolMessage |
ChatCompletionToolMessageParam |
Arayüz | |
ChatRequestUserMessage |
ChatCompletionUserMessageParam |
Arayüz | |
ChatResponseMessage |
Delta / ChatCompletionMessage |
Arayüz | |
ChatRole |
Mevcut Değil | Diğer ad | |
ChatTokenLogProbabilityInfo |
TopLogprob |
Arayüz | |
ChatTokenLogProbabilityResult |
ChatCompletionTokenLogprob |
Arayüz | |
Choice |
Choice |
Arayüz | |
Completions |
Completion |
Arayüz | |
CompletionsFinishReason |
Mevcut Değil | Diğer ad | |
CompletionsLogProbabilityModel |
Logprobs |
Arayüz | |
CompletionsUsage |
CompletionUsage |
Arayüz | |
EmbeddingItem |
Embedding |
Arayüz | |
Embeddings |
CreateEmbeddingResponse |
Arayüz | |
EmbeddingsUsage |
CreateEmbeddingResponse.Usage |
Arayüz | |
EventStream |
Stream |
Arayüz | |
FunctionCall |
FunctionCall |
Arayüz | |
FunctionCallPreset |
Mevcut Değil | Diğer ad | |
FunctionDefinition |
Function |
Arayüz | |
FunctionName |
Mevcut Değil | Diğer ad | |
GetAudioTranscriptionOptions |
TranscriptionCreateParams |
Arayüz | |
GetAudioTranslationOptions |
TranslationCreateParams |
Arayüz | |
GetChatCompletionsOptions |
ChatCompletionCreateParamsNonStreaming ve ChatCompletionCreateParamsStreaming |
Arayüz | |
GetCompletionsOptions |
CompletionCreateParams |
Arayüz | |
GetEmbeddingsOptions |
EmbeddingCreateParams |
Arayüz | |
GetImagesOptions |
ImageGenerateParams |
Arayüz | |
ImageGenerationData |
Image |
Arayüz | |
ImageGenerationQuality |
Mevcut Değil | Diğer ad | |
ImageGenerationResponseFormat |
Mevcut Değil | Diğer ad | |
ImageGenerations |
ImagesResponse |
Arayüz | |
ImageGenerationStyle |
Mevcut Değil | Diğer ad | |
ImageSize |
Mevcut Değil | Diğer ad | |
MaxTokensFinishDetails |
Mevcut Değil | Arayüz | |
OpenAIClientOptions |
AzureClientOptions |
Arayüz | |
OpenAIError |
OpenAIError |
Arayüz | |
OpenAIKeyCredential |
Mevcut Değil | Sınıf | |
StopFinishDetails |
Mevcut Değil | Arayüz |
Azure türleri
AzureOpenAI Azure OpenAI'ye bağlanır ve hizmette kullanılabilen tüm işlemleri çağırabilir. Ancak, istek ve yanıt türleri OpenAI devralındı ve henüz yalnızca Azure OpenAI hizmeti tarafından desteklenen ek özellikleri yansıtacak şekilde güncellenmedi. TypeScript kullanıcılarının "@azure/openai/types"'dan @azure/openai@2.0.0-beta.1 içeri aktarması gerekir ve bu da Azure özgü tanımları var olan türlerle birleştirir.
Geçiş örnekleri bölümündeki örnekler bunun nasıl yapılacağını gösterir.