Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperlihatkan kepada Anda cara beralih ke titik akhir penyelesaian obrolan OpenAI v1 terpadu yang baru. Ini mencakup perubahan dan perbedaan umum saat Anda bekerja dengan OpenAI dan Azure OpenAI.
Meskipun OpenAI dan Azure OpenAI mengandalkan pustaka klien Python yang sama, ada beberapa perubahan kecil yang perlu Anda lakukan pada kode Anda untuk berpindah bolak-balik antara endpoint. Titik akhir penyelesaian obrolan OpenAI v1 terpadu baru menghilangkan kebutuhan akan jalur kode khusus Azure yang terpisah.
Authentication
Kami merekomendasikan autentikasi tanpa kunci menggunakan ID Microsoft Entra. Jika tidak memungkinkan, gunakan kunci API dan simpan di Azure Key Vault. Anda dapat menggunakan variabel lingkungan untuk pengujian di luar lingkungan Azure Anda.
Autentikasi kunci API
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY")
)
Microsoft Entra otentikasi
Autentikasi Microsoft Entra hanya didukung dengan sumber daya Azure OpenAI. Selesaikan langkah-langkah berikut:
Instal pustaka klien Azure Identity:
pip install azure-identityKonfigurasikan objek klien OpenAI sebagai berikut:
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, )Petunjuk / Saran
DefaultAzureCredentialdapat dioptimalkan untuk lingkungan tempat aplikasi Anda berjalan. Untuk informasi selengkapnya, lihat Cara menyesuaikan DefaultAzureCredential.Tetapkan izin kontrol akses berbasis peran (RBAC) Azure yang sesuai. Untuk informasi selengkapnya, lihat Kontrol akses berbasis peran Azure (RBAC).
Ketika dijalankan di Azure, tugaskan peran kepada identitas terkelola yang digunakan oleh sumber daya host Azure. Saat berjalan di lingkungan pengembangan lokal, tetapkan peran kepada pengguna yang menjalankan aplikasi.
using OpenAI;
using System;
using System.ClientModel;
string apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");
OpenAIClient client = new(new ApiKeyCredential(apiKey));
Microsoft Entra otentikasi
Autentikasi Microsoft Entra hanya didukung dengan sumber daya Azure OpenAI. Selesaikan langkah-langkah berikut:
Instal pustaka klien Azure Identity:
dotnet add package Azure.IdentityKonfigurasikan
OpenAIClientobjek sebagai berikut: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);Petunjuk / Saran
DefaultAzureCredentialdapat dioptimalkan untuk lingkungan tempat aplikasi Anda berjalan. Untuk informasi selengkapnya, lihat Cara menyesuaikan DefaultAzureCredential.Tetapkan izin kontrol akses berbasis peran (RBAC) Azure yang sesuai. Untuk informasi selengkapnya, lihat Kontrol akses berbasis peran Azure (RBAC).
Ketika dijalankan di Azure, tugaskan peran kepada identitas terkelola yang digunakan oleh sumber daya host Azure. Saat berjalan di lingkungan pengembangan lokal, tetapkan peran kepada pengguna yang menjalankan aplikasi.
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 otentikasi
Autentikasi Microsoft Entra hanya didukung dengan sumber daya Azure OpenAI. Selesaikan langkah-langkah berikut:
Instal pustaka klien Azure Identity:
npm install @azure/identityKonfigurasikan objek klien OpenAI sebagai berikut:
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 });Petunjuk / Saran
DefaultAzureCredentialdapat dioptimalkan untuk lingkungan tempat aplikasi Anda berjalan. Untuk informasi selengkapnya, lihat Cara menyesuaikan DefaultAzureCredential.Tetapkan izin kontrol akses berbasis peran (RBAC) Azure yang sesuai. Untuk informasi selengkapnya, lihat Kontrol akses berbasis peran Azure (RBAC).
Ketika dijalankan di Azure, tugaskan peran kepada identitas terkelola yang digunakan oleh sumber daya host Azure. Saat berjalan di lingkungan pengembangan lokal, tetapkan peran kepada pengguna yang menjalankan aplikasi.
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 otentikasi
Autentikasi Microsoft Entra hanya didukung dengan sumber daya Azure OpenAI. Selesaikan langkah-langkah berikut:
Sertakan dependensi azure-identity dalam proyek Anda.
Konfigurasikan
OpenAIClientobjek sebagai berikut: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(); } }Petunjuk / Saran
DefaultAzureCredentialdapat dioptimalkan untuk lingkungan tempat aplikasi Anda berjalan. Untuk informasi selengkapnya, lihat Cara menyesuaikan DefaultAzureCredential.Tetapkan izin kontrol akses berbasis peran (RBAC) Azure yang sesuai. Untuk informasi selengkapnya, lihat Kontrol akses berbasis peran Azure (RBAC).
Ketika dijalankan di Azure, tugaskan peran kepada identitas terkelola yang digunakan oleh sumber daya host Azure. Saat berjalan di lingkungan pengembangan lokal, tetapkan peran kepada pengguna yang menjalankan aplikasi.
// 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 otentikasi
Autentikasi Microsoft Entra hanya didukung dengan sumber daya Azure OpenAI. Selesaikan langkah-langkah berikut:
Sertakan dependensi azure-identity dalam proyek Anda.
Konfigurasikan
OpenAIClientobjek sebagai berikut:// 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), )Petunjuk / Saran
DefaultAzureCredentialdapat dioptimalkan untuk lingkungan tempat aplikasi Anda berjalan. Untuk informasi selengkapnya, lihat Cara menyesuaikan DefaultAzureCredential.Tetapkan izin kontrol akses berbasis peran (RBAC) Azure yang sesuai. Untuk informasi selengkapnya, lihat Kontrol akses berbasis peran Azure (RBAC).
Ketika dijalankan di Azure, tugaskan peran kepada identitas terkelola yang digunakan oleh sumber daya host Azure. Saat berjalan di lingkungan pengembangan lokal, tetapkan peran kepada pengguna yang menjalankan aplikasi.
Tentukan model
OpenAI menggunakan model argumen kata kunci untuk menentukan model apa yang akan digunakan. Azure OpenAI memiliki konsep penyebaran model unik. Saat Anda menggunakan Azure OpenAI, model harus merujuk ke nama penyebaran yang mendasari yang Anda pilih saat Anda menyebarkan model.
Penting
Azure OpenAI dan OpenAI menangani nama model secara berbeda dalam panggilan API. OpenAI hanya membutuhkan nama model. Azure OpenAI selalu memerlukan nama penyebaran, bahkan ketika Anda menggunakan parameter model. Anda harus menggunakan nama penyebaran alih-alih nama model saat memanggil API Azure OpenAI. Dokumentasi kami sering menunjukkan nama penyebaran yang cocok dengan nama model untuk menunjukkan model mana yang berfungsi dengan setiap titik akhir API. Pilihlah konvensi penamaan apa saja untuk nama penyebaran yang paling sesuai bagi Anda.
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 menggunakan model parameter untuk menentukan model apa yang akan digunakan. Azure OpenAI memiliki konsep penyebaran model unik. Saat Anda menggunakan Azure OpenAI, model harus merujuk ke nama penyebaran yang mendasari yang Anda pilih saat Anda menyebarkan model.
Penting
Azure OpenAI dan OpenAI menangani nama model secara berbeda dalam panggilan API. OpenAI hanya membutuhkan nama model. Azure OpenAI selalu memerlukan nama penyebaran, bahkan ketika Anda menggunakan parameter model. Anda harus menggunakan nama penyebaran alih-alih nama model saat memanggil API Azure OpenAI. Dokumentasi kami sering menunjukkan nama penyebaran yang cocok dengan nama model untuk menunjukkan model mana yang berfungsi dengan setiap titik akhir API. Pilihlah konvensi penamaan apa saja untuk nama penyebaran yang paling sesuai bagi Anda.
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 menggunakan model argumen kata kunci untuk menentukan model apa yang akan digunakan. Azure OpenAI memiliki konsep penyebaran model unik. Saat Anda menggunakan Azure OpenAI, model harus merujuk ke nama penyebaran yang mendasari yang Anda pilih saat Anda menyebarkan model.
Penting
Azure OpenAI dan OpenAI menangani nama model secara berbeda dalam panggilan API. OpenAI hanya membutuhkan nama model. Azure OpenAI selalu memerlukan nama penyebaran, bahkan ketika Anda menggunakan parameter model. Anda harus menggunakan nama penyebaran alih-alih nama model saat memanggil API Azure OpenAI. Dokumentasi kami sering menunjukkan nama penyebaran yang cocok dengan nama model untuk menunjukkan model mana yang berfungsi dengan setiap titik akhir API. Pilihlah konvensi penamaan apa saja untuk nama penyebaran yang paling sesuai bagi Anda.
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 menggunakan model argumen kata kunci untuk menentukan model apa yang akan digunakan. Azure OpenAI memiliki konsep penyebaran model unik. Saat Anda menggunakan Azure OpenAI, model harus merujuk ke nama penyebaran yang mendasari yang Anda pilih saat Anda menyebarkan model.
Penting
Azure OpenAI dan OpenAI menangani nama model secara berbeda dalam panggilan API. OpenAI hanya membutuhkan nama model. Azure OpenAI selalu memerlukan nama penyebaran, bahkan ketika Anda menggunakan parameter model. Anda harus menggunakan nama penyebaran alih-alih nama model saat memanggil API Azure OpenAI. Dokumentasi kami sering menunjukkan nama penyebaran yang cocok dengan nama model untuk menunjukkan model mana yang berfungsi dengan setiap titik akhir API. Pilihlah konvensi penamaan apa saja untuk nama penyebaran yang paling sesuai bagi Anda.
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 menggunakan Model argumen kata kunci untuk menentukan model apa yang akan digunakan. Azure OpenAI memiliki konsep penyebaran model unik. Saat Anda menggunakan Azure OpenAI, Model harus merujuk ke nama penyebaran yang mendasari yang Anda pilih saat Anda menyebarkan model.
Penting
Azure OpenAI dan OpenAI menangani nama model secara berbeda dalam panggilan API. OpenAI hanya membutuhkan nama model. Azure OpenAI selalu memerlukan nama penyebaran, bahkan ketika Anda menggunakan parameter model. Anda harus menggunakan nama penyebaran alih-alih nama model saat memanggil API Azure OpenAI. Dokumentasi kami sering menunjukkan nama penyebaran yang cocok dengan nama model untuk menunjukkan model mana yang berfungsi dengan setiap titik akhir API. Pilihlah konvensi penamaan apa saja untuk nama penyebaran yang paling sesuai bagi Anda.
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>"),
},
})
Penyematan Azure OpenAI dukung input berganda
OpenAI dan Azure OpenAI saat ini mendukung array input hingga 2.048 item input untuk text-embedding-ada-002. Keduanya memerlukan batas token input maksimum per permintaan API agar tetap di bawah 8.191 untuk model ini.
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"},
},
})