Hızlı Başlangıç: Azure OpenAI Hizmeti ile GPT-35-Turbo ve GPT-4 kullanmaya başlama
Azure OpenAI kullanmaya başlamak için bu makaleyi kullanın.
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun.
- Ya da
gpt-4o
modelleri dağıtılangpt-4o-mini
bir Azure OpenAI Hizmeti kaynağı. İlk araştırma için standart veya genel standart model dağıtım tpye'lerini kullanmanızı öneririz. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Azure OpenAI Studio'ya gidin
adresinden Azure OpenAI Studio'ya https://oai.azure.com/ gidin ve Azure OpenAI kaynağınıza erişimi olan kimlik bilgileriyle oturum açın. Oturum açma iş akışı sırasında veya sonrasında uygun dizini, Azure aboneliğini ve Azure OpenAI kaynağını seçin.
Azure OpenAI Studio giriş sayfasında Sohbet oyun alanı'nı seçin.
Çocuk bahçesi
Azure OpenAI Studio Sohbet oyun alanı aracılığıyla kod içermeyen bir yaklaşımla OpenAI özelliklerini keşfetmeye başlayın. Bu sayfadan özellikleri hızla yineleyebilir ve deneyebilirsiniz.
Ayarlama
Başlamak üzere önceden yüklenmiş birkaç Sistem iletisi örneği seçmek için *İstem örnekleri açılan listesini kullanabilirsiniz.
Sistem iletileri modele nasıl davranması gerektiği ve yanıt oluştururken başvurması gereken bağlamlar hakkında yönergeler verir. Yardımcının kişiliğini açıklayabilir, neye cevap verip vermemesi gerektiğini söyleyebilir ve yanıtları nasıl biçimlendireceğini anlatabilirsiniz.
Sohbet oyun alanınızı kullanırken istediğiniz zaman Kodu görüntüle'yi seçerek Python, curl ve json kod örneklerinin geçerli sohbet oturumunuza ve ayarlar seçimlerine göre önceden doldurulmuş olduğunu görebilirsiniz. Daha sonra bu kodu alabilir ve oyun alanında gerçekleştirmekte olduğunuz görevi tamamlamak için bir uygulama yazabilirsiniz.
Sohbet oturumu
Enter düğmesinin seçilmesi veya sağ ok simgesinin seçilmesi, girilen metni sohbet tamamlamaları API'sine gönderir ve sonuçlar metin kutusuna geri döndürülür.
Geçerli konuşma geçmişini silmek için Sohbeti temizle düğmesini seçin.
Anahtar ayarları
Ad | Açıklama |
---|---|
Dağıtımlar | Belirli bir modelle ilişkilendirilmiş dağıtım adınız. |
Verilerinizi ekleme | |
Parametreler | Model yanıtlarını değiştiren özel parametreler. Başlarken çoğu parametre için varsayılan değerleri kullanmanızı öneririz |
Sıcaklık | Rastgeleliği denetler. Sıcaklığı düşürmek, modelin daha yinelenen ve belirleyici yanıtlar ürettiği anlamına gelir. Sıcaklığın artırılması beklenmeyen veya yaratıcı yanıtlara neden olur. Sıcaklığı veya Üst P'yi ayarlamayı deneyin, ancak ikisini birden ayarlamayı deneyin. |
Maksimum yanıt (belirteçler) | Model yanıtı başına belirteç sayısı için bir sınır ayarlayın. En son modellerdeki API, istem (sistem iletisi, örnekler, ileti geçmişi ve kullanıcı sorgusu dahil) ile modelin yanıtı arasında paylaşılan en fazla 128.000 belirteci destekler. Belirteçlerden biri, tipik İngilizce metinler için yaklaşık dört karakterdir. |
Üst p | Sıcaklığa benzer şekilde, bu rastgeleliği denetler ancak farklı bir yöntem kullanır. Üst P'nin indirilmesi, modelin belirteç seçimini daha benzer belirteçler olacak şekilde daraltıyor. İlk P'yi artırmak, modelin hem yüksek hem de düşük olasılığı olan belirteçler arasından seçim yapmasını sağlar. Sıcaklığı veya Üst P'yi ayarlamayı deneyin, ancak ikisini birden ayarlamayı deneyin. |
Sıraları durdurma | Durdurma sırası, modelin yanıtını istenen noktada sonlandırmasını sağlar. Model yanıtı belirtilen diziden önce sona erdiğinden durdurma dizisi metnini içermez. GPT-35-Turbo'nun kullanılması <|im_end|> , model yanıtının bir izleme kullanıcı sorgusu oluşturmamasını sağlar. En fazla dört durdurma dizisi ekleyebilirsiniz. |
Kodu görüntüleme
Modelle sohbet etme denemeleri yaptıktan sonra / Kodu Görüntüle düğmesini seçin<.> Bu, şu ana kadar yaptığınız konuşmanın tamamının arkasındaki kodu yeniden yürütmenizi sağlar:
İstem yapısını anlama
Kodu görüntüle bölümünden örneği incelerseniz, konuşmanın üç ayrı role system
(, assistant
) user
bölündüğünü fark edersiniz. Modele her ileti göndermede konuşma geçmişinin tamamı bu noktaya kadar yeniden gönderilir. Sohbet tamamlama API'sini kullanırken modelde geçmişte gönderdiğiniz öğelere ilişkin gerçek bellek yoktur, bu nedenle modelin düzgün yanıt vermesine izin vermek için bağlam için konuşma geçmişini sağlarsınız.
Sohbet tamamlamaları nasıl yapılır kılavuzu , yeni istem yapısına ve sohbet tamamlama modellerinin etkili bir şekilde nasıl kullanılacağına ilişkin ayrıntılı bir giriş sağlar.
Modelinizi dağıtma
Azure OpenAI studio deneyiminden memnun olduktan sonra, Dağıtılacak yer düğmesini seçerek doğrudan Studio'dan bir web uygulaması dağıtabilirsiniz.
Bu, tek başına bir web uygulamasına dağıtma veya modelde kendi verilerinizi kullanıyorsanız Copilot Studio'da bir yardımcı pilot (önizleme) seçeneği sunar.
Örneğin, bir web uygulaması dağıtmayı seçerseniz:
Bir web uygulamasını ilk kez dağıttığınızda Yeni web uygulaması oluştur'u seçmelisiniz. Uygulama URL'sinin bir parçası olacak uygulama için bir ad seçin. Örneğin, https://<appname>.azurewebsites.net
.
Yayımlanan uygulama için aboneliğinizi, kaynak grubunuzu, konumunuzu ve fiyatlandırma planınızı seçin. Mevcut bir uygulamayı güncelleştirmek için Mevcut bir web uygulamasında yayımla'yı seçin ve açılan menüden önceki uygulamanızın adını seçin.
Bir web uygulamasını dağıtmayı seçerseniz, bu uygulamayı kullanmak için dikkat edilmesi gereken önemli noktalara bakın.
Kaynakları temizleme
Sohbet oyun alanını test ettikten sonra Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.
Sonraki adımlar
- GPT-35-Turbo & GPT-4 nasıl yapılır kılavuzuyla yeni
gpt-35-turbo
modelle çalışma hakkında daha fazla bilgi edinin. - Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın
Kaynak kodu | Paketi (NuGet) | Örnekler| Alma Artırılmış Nesil (RAG) kurumsal sohbet şablonu |
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- .NET 7 SDK
- veya
gpt-4
modellerinin dağıtılacağı bir Azure OpenAI Hizmeti kaynağıgpt-35-turbo
. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Ayarlama
Yeni .NET Core uygulaması oluşturma
Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı azure-openai-quickstart
yeni bir konsol uygulaması oluşturmak için komutunu kullanındotnet new
. Bu komut, tek bir C# kaynak dosyasıyla basit bir "Merhaba Dünya" projesi oluşturur: Program.cs.
dotnet new console -n azure-openai-quickstart
Dizininizi yeni oluşturulan uygulama klasörüyle değiştirin. Uygulamayı şu şekilde oluşturabilirsiniz:
dotnet build
Derleme çıkışı hiçbir uyarı veya hata içermemelidir.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
OpenAI .NET istemci kitaplığını şu şekilde yükleyin:
dotnet add package Azure.AI.OpenAI --prerelease
Anahtarı ve uç noktayı alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.
Değişken adı | Değer |
---|---|
ENDPOINT |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure OpenAI Studio>Oyun Alanı>Kod Görünümü'nde bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
Azure portalında kaynağınıza gidin. Anahtarlar ve Uç Nokta bölümü Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Örnek uygulama oluşturma
Proje dizininden program.cs dosyasını açın ve öğesini aşağıdaki kodla değiştirin:
Yanıt akışı olmadan
using Azure;
using Azure.AI.OpenAI;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
AzureOpenAIClient azureClient = new(
new Uri(endpoint),
new AzureKeyCredential(key));
// This must match the custom deployment name you chose for your model
ChatClient chatClient = azureClient.GetChatClient("gpt-35-turbo");
ChatCompletion completion = chatClient.CompleteChat(
[
new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
new UserChatMessage("Does Azure OpenAI support customer managed keys?"),
new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"),
new UserChatMessage("Do other Azure AI services support this too?")
]);
Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
Önemli
Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.
dotnet run program.cs
Çıktı
Assistant : Yes, many other Azure AI services also support customer managed keys, including Azure Cognitive Services, Azure Machine Learning, and Azure Databricks. By using customer managed keys, you can retain complete control over your encryption keys and provide an additional layer of security for your AI assets.
Bu işlem, sonuçları yazdırmadan önce modelin tüm yanıtını oluşturmasını bekler. Alternatif olarak, yanıtı zaman uyumsuz olarak akışa almak ve sonuçları yazdırmak istiyorsanız, program.cs içeriğini sonraki örnekteki kodla değiştirebilirsiniz.
Akışla zaman uyumsuz
using Azure;
using Azure.AI.OpenAI;
using OpenAI.Chat;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
AzureOpenAIClient azureClient = new(
new Uri(endpoint),
new AzureKeyCredential(key));
// This must match the custom deployment name you chose for your model
ChatClient chatClient = azureClient.GetChatClient("gpt-35-turbo");
var chatUpdates = chatClient.CompleteChatStreamingAsync(
[
new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
new UserChatMessage("Does Azure OpenAI support customer managed keys?"),
new AssistantChatMessage("Yes, customer managed keys are supported by Azure OpenAI"),
new UserChatMessage("Do other Azure AI services support this too?")
]);
await foreach(var chatUpdate in chatUpdates)
{
if (chatUpdate.Role.HasValue)
{
Console.Write($"{chatUpdate.Role} : ");
}
foreach(var contentPart in chatUpdate.ContentUpdate)
{
Console.Write(contentPart.Text);
}
}
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.
Sonraki adımlar
Kaynak kodu | Paketi (Go)| Örnekleri
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Yerel olarak yüklenen 1.21.0 veya üzeri bir sürüme geçin.
- Modelin
gpt-35-turbo
dağıtılacağı bir Azure OpenAI Hizmeti kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Ayarlama
Anahtarı ve uç noktayı alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.
Değişken adı | Değer |
---|---|
ENDPOINT |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure OpenAI Studio>Oyun Alanı>Kod Görünümü'nde bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
Azure portalında kaynağınıza gidin. Anahtarlar ve Uç Nokta bölümü Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Örnek uygulama oluşturma
chat_completions.go adlı yeni bir dosya oluşturun. Aşağıdaki kodu chat_completions.go dosyasına kopyalayın.
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
)
func main() {
azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
modelDeploymentID := os.Getenv("YOUR_MODEL_DEPLOYMENT_NAME")
maxTokens:= int32(400)
// Ex: "https://<your-azure-openai-host>.openai.azure.com"
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" {
fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
return
}
keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
// In Azure OpenAI you must deploy a model before you can use it in your client. For more information
// see here: https://learn.microsoft.com/azure/cognitive-services/openai/how-to/create-resource
client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
if err != nil {
// TODO: Update the following line with your application specific error handling logic
log.Printf("ERROR: %s", err)
return
}
// This is a conversation in progress.
// NOTE: all messages, regardless of role, count against token usage for this API.
messages := []azopenai.ChatRequestMessageClassification{
// You set the tone and rules of the conversation with a prompt as the system role.
&azopenai.ChatRequestSystemMessage{Content: to.Ptr("You are a helpful assistant.")},
// The user asks a question
&azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("Does Azure OpenAI support customer managed keys?")},
// The reply would come back from the model. You'd add it to the conversation so we can maintain context.
&azopenai.ChatRequestAssistantMessage{Content: to.Ptr("Yes, customer managed keys are supported by Azure OpenAI")},
// The user answers the question based on the latest reply.
&azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("What other Azure Services support customer managed keys?")},
// from here you'd keep iterating, sending responses back from ChatGPT
}
gotReply := false
resp, err := client.GetChatCompletions(context.TODO(), azopenai.ChatCompletionsOptions{
// This is a conversation in progress.
// NOTE: all messages count against token usage for this API.
Messages: messages,
DeploymentName: &modelDeploymentID,
MaxTokens: &maxTokens,
}, nil)
if err != nil {
// TODO: Update the following line with your application specific error handling logic
log.Printf("ERROR: %s", err)
return
}
for _, choice := range resp.Choices {
gotReply = true
if choice.ContentFilterResults != nil {
fmt.Fprintf(os.Stderr, "Content filter results\n")
if choice.ContentFilterResults.Error != nil {
fmt.Fprintf(os.Stderr, " Error:%v\n", choice.ContentFilterResults.Error)
}
fmt.Fprintf(os.Stderr, " Hate: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Hate.Severity, *choice.ContentFilterResults.Hate.Filtered)
fmt.Fprintf(os.Stderr, " SelfHarm: sev: %v, filtered: %v\n", *choice.ContentFilterResults.SelfHarm.Severity, *choice.ContentFilterResults.SelfHarm.Filtered)
fmt.Fprintf(os.Stderr, " Sexual: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Sexual.Severity, *choice.ContentFilterResults.Sexual.Filtered)
fmt.Fprintf(os.Stderr, " Violence: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Violence.Severity, *choice.ContentFilterResults.Violence.Filtered)
}
if choice.Message != nil && choice.Message.Content != nil {
fmt.Fprintf(os.Stderr, "Content[%d]: %s\n", *choice.Index, *choice.Message.Content)
}
if choice.FinishReason != nil {
// this choice's conversation is complete.
fmt.Fprintf(os.Stderr, "Finish reason[%d]: %s\n", *choice.Index, *choice.FinishReason)
}
}
if gotReply {
fmt.Fprintf(os.Stderr, "Received chat completions reply\n")
}
}
Önemli
Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.
Şimdi bir komut istemi açın ve şunu çalıştırın:
go mod init chat_completions.go
Sonraki çalıştırma:
go mod tidy
go run chat_completions.go
Çıktı
Content filter results
Hate: sev: safe, filtered: false
SelfHarm: sev: safe, filtered: false
Sexual: sev: safe, filtered: false
Violence: sev: safe, filtered: false
Content[0]: As of my last update in early 2023, in Azure, several AI services support the use of customer-managed keys (CMKs) through Azure Key Vault. This allows customers to have control over the encryption keys used to secure their data at rest. The services that support this feature typically fall under Azure's range of cognitive services and might include:
1. Azure Cognitive Search: It supports using customer-managed keys to encrypt the index data.
2. Azure Form Recognizer: For data at rest, you can use customer-managed keys for added security.
3. Azure Text Analytics: CMKs can be used for encrypting your data at rest.
4. Azure Blob Storage: While not exclusively an AI service, it's often used in conjunction with AI services to store data, and it supports customer-managed keys for encrypting blob data.
Note that the support for CMKs can vary by service and sometimes even by the specific feature within the service. Additionally, the landscape of cloud services is fast evolving, and new features, including security capabilities, are frequently added. Therefore, it's recommended to check the latest Azure documentation or contact Azure support for the most current information about CMK support for any specific Azure AI service.
Finish reason[0]: stop
Received chat completions reply
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.
Sonraki adımlar
Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın
Kaynak kodu | Yapıtı (Maven) | Örnekler | Alma Artırılmış Nesil (RAG) kurumsal sohbet şablonu | IntelliJ IDEA
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Java Geliştirme Seti'nin (JDK) geçerli sürümü
- Gradle derleme aracı veya başka bir bağımlılık yöneticisi.
- veya
gpt-4
modellerinin dağıtılacağı bir Azure OpenAI Hizmeti kaynağıgpt-35-turbo
. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Ayarlama
Anahtarı ve uç noktayı alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.
Değişken adı | Değer |
---|---|
ENDPOINT |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure OpenAI Studio>Oyun Alanı>Kod Görünümü'nde bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
Azure portalında kaynağınıza gidin. Anahtarlar ve Uç Nokta bölümü Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Yeni java uygulaması oluşturma
Yeni bir Gradle projesi oluşturun.
Konsol penceresinde (cmd, PowerShell veya Bash gibi), uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.
mkdir myapp && cd myapp
gradle init
Komutunu çalışma dizininizden çalıştırın. Bu komut, uygulamanızı oluşturmak ve yapılandırmak için çalışma zamanında kullanılan build.gradle.kts de dahil olmak üzere Gradle için temel derleme dosyaları oluşturur.
gradle init --type basic
DSL seçmeniz istendiğinde Kotlin'i seçin.
Java SDK'sını yükleme
Bu hızlı başlangıçta Gradle bağımlılık yöneticisi kullanılır. Maven Central Repository'de diğer bağımlılık yöneticilerinin istemci kitaplığını ve bilgilerini bulabilirsiniz.
build.gradle.kts dosyasını bulun ve tercih ettiğiniz IDE veya metin düzenleyici ile açın. Ardından aşağıdaki derleme yapılandırmasını kopyalayın. Bu yapılandırma, projeyi giriş noktası OpenAIQuickstart sınıfı olan bir Java uygulaması olarak tanımlar. Azure AI Vision kitaplığını içeri aktarır.
plugins {
java
application
}
application {
mainClass.set("OpenAIQuickstart")
}
repositories {
mavenCentral()
}
dependencies {
implementation(group = "com.azure", name = "azure-ai-openai", version = "1.0.0-beta.10")
implementation("org.slf4j:slf4j-simple:1.7.9")
}
Örnek uygulama oluşturma
Bir Java dosyası oluşturun.
Çalışma dizininizden aşağıdaki komutu çalıştırarak bir proje kaynak klasörü oluşturun:
mkdir -p src/main/java
Yeni klasöre gidin ve OpenAIQuickstart.java adlı bir dosya oluşturun.
tercih ettiğiniz düzenleyicide veya IDE'de OpenAIQuickstart.java açın ve aşağıdaki kodu yapıştırın.
package com.azure.ai.openai.usage; import com.azure.ai.openai.OpenAIClient; import com.azure.ai.openai.OpenAIClientBuilder; import com.azure.ai.openai.models.ChatChoice; import com.azure.ai.openai.models.ChatCompletions; import com.azure.ai.openai.models.ChatCompletionsOptions; import com.azure.ai.openai.models.ChatRequestAssistantMessage; import com.azure.ai.openai.models.ChatRequestMessage; import com.azure.ai.openai.models.ChatRequestSystemMessage; import com.azure.ai.openai.models.ChatRequestUserMessage; import com.azure.ai.openai.models.ChatResponseMessage; import com.azure.ai.openai.models.CompletionsUsage; import com.azure.core.credential.AzureKeyCredential; import com.azure.core.util.Configuration; import java.util.ArrayList; import java.util.List; public class OpenAIQuickstart { public static void main(String[] args) { String azureOpenaiKey = Configuration.getGlobalConfiguration().get("AZURE_OPENAI_API_KEY"); String endpoint = Configuration.getGlobalConfiguration().get("AZURE_OPENAI_ENDPOINT"); String deploymentOrModelId = "{azure-open-ai-deployment-model-id}"; OpenAIClient client = new OpenAIClientBuilder() .endpoint(endpoint) .credential(new AzureKeyCredential(azureOpenaiKey)) .buildClient(); List<ChatRequestMessage> chatMessages = new ArrayList<>(); chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant.")); chatMessages.add(new ChatRequestUserMessage("Does Azure OpenAI support customer managed keys?")); chatMessages.add(new ChatRequestAssistantMessage("Yes, customer managed keys are supported by Azure OpenAI?")); chatMessages.add(new ChatRequestUserMessage("Do other Azure AI services support this too?")); ChatCompletions chatCompletions = client.getChatCompletions(deploymentOrModelId, new ChatCompletionsOptions(chatMessages)); System.out.printf("Model ID=%s is created at %s.%n", chatCompletions.getId(), chatCompletions.getCreatedAt()); for (ChatChoice choice : chatCompletions.getChoices()) { ChatResponseMessage message = choice.getMessage(); System.out.printf("Index: %d, Chat Role: %s.%n", choice.getIndex(), message.getRole()); System.out.println("Message:"); System.out.println(message.getContent()); } System.out.println(); CompletionsUsage usage = chatCompletions.getUsage(); System.out.printf("Usage: number of prompt token is %d, " + "number of completion token is %d, and number of total tokens in request and response is %d.%n", usage.getPromptTokens(), usage.getCompletionTokens(), usage.getTotalTokens()); } }
Proje kök klasörüne geri dönün ve aşağıdakilerle uygulamayı derleyin:
gradle build
Ardından komutuyla
gradle run
çalıştırın:gradle run
Çıktı
Model ID=chatcmpl-7JYnyE4zpd5gaIfTRH7hNpeVsvAw4 is created at 1684896378.
Index: 0, Chat Role: assistant.
Message:
Yes, most of the Azure AI services support customer managed keys. However, there may be some exceptions, so it is best to check the documentation of each specific service to confirm.
Usage: number of prompt token is 59, number of completion token is 36, and number of total tokens in request and response is 95.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.
Sonraki adımlar
Kaynak kodu | Yapıtları (Maven) | Örnek
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Java Geliştirme Seti'nin (JDK) geçerli sürümü
- Spring Boot CLI aracı
- Modelin
gpt-35-turbo
dağıtılacağı bir Azure OpenAI Hizmeti kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu. Bu örnekte, dağıtım adınızın model adıyla eşleşirgpt-35-turbo
Ayarlama
Anahtarı ve uç noktayı alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.
Değişken adı | Değer |
---|---|
ENDPOINT |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure OpenAI Studio>Oyun Alanı>Kod Görünümü'nde bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
Azure portalında kaynağınıza gidin. Anahtarlar ve Uç Nokta bölümü Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
Not
Spring AI, model adını varsayılan olarak olarak gpt-35-turbo
kullanır. Yalnızca farklı bir ada sahip bir model dağıttıysanız değeri sağlamanız SPRING_AI_AZURE_OPENAI_MODEL
gerekir.
export SPRING_AI_AZURE_OPENAI_API_KEY="REPLACE_WITH_YOUR_KEY_VALUE_HERE"
export SPRING_AI_AZURE_OPENAI_ENDPOINT="REPLACE_WITH_YOUR_ENDPOINT_HERE"
export SPRING_AI_AZURE_OPENAI_MODEL="REPLACE_WITH_YOUR_MODEL_NAME_HERE"
Yeni bir Spring uygulaması oluşturma
Yeni bir Spring projesi oluşturun.
Bash penceresinde uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.
mkdir ai-chat-demo && cd ai-chat-demo
spring init
Komutunu çalışma dizininizden çalıştırın. Bu komut, Spring projeniz için ana Java sınıf kaynak dosyası ve Maven tabanlı projeleri yönetmek için kullanılan pom.xml dosyası da dahil olmak üzere standart bir dizin yapısı oluşturur.
spring init -a ai-chat-demo -n AIChat --force --build maven -x
Oluşturulan dosya ve klasörler aşağıdaki yapıya benzer:
ai-chat-demo/
|-- pom.xml
|-- mvn
|-- mvn.cmd
|-- HELP.md
|-- src/
|-- main/
| |-- resources/
| | |-- application.properties
| |-- java/
| |-- com/
| |-- example/
| |-- aichatdemo/
| |-- AiChatApplication.java
|-- test/
|-- java/
|-- com/
|-- example/
|-- aichatdemo/
|-- AiChatApplicationTests.java
Spring uygulamasını düzenleme
pom.xml dosyasını düzenleyin.
Proje dizininin kökünden pom.xml dosyasını tercih ettiğiniz düzenleyicide veya IDE'de açın ve dosyanın üzerine aşağıdaki içeriği yazın:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>ai-chat-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>AIChat</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.experimental.ai</groupId> <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId> <version>0.7.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories> </project>
src/main/java/com/example/aichatdemo klasöründen tercih ettiğiniz düzenleyicide veya IDE'de AiChatApplication.java açın ve aşağıdaki kodu yapıştırın:
package com.example.aichatdemo; import java.util.ArrayList; import java.util.List; import org.springframework.ai.client.AiClient; import org.springframework.ai.prompt.Prompt; import org.springframework.ai.prompt.messages.ChatMessage; import org.springframework.ai.prompt.messages.Message; import org.springframework.ai.prompt.messages.MessageType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class AiChatApplication implements CommandLineRunner { private static final String ROLE_INFO_KEY = "role"; @Autowired private AiClient aiClient; public static void main(String[] args) { SpringApplication.run(AiChatApplication.class, args); } @Override public void run(String... args) throws Exception { System.out.println(String.format("Sending chat prompts to AI service. One moment please...\r\n")); final List<Message> msgs = new ArrayList<>(); msgs.add(new ChatMessage(MessageType.SYSTEM, "You are a helpful assistant")); msgs.add(new ChatMessage(MessageType.USER, "Does Azure OpenAI support customer managed keys?")); msgs.add(new ChatMessage(MessageType.ASSISTANT, "Yes, customer managed keys are supported by Azure OpenAI?")); msgs.add(new ChatMessage(MessageType.USER, "Do other Azure AI services support this too?")); final var resps = aiClient.generate(new Prompt(msgs)); System.out.println(String.format("Prompt created %d generated response(s).", resps.getGenerations().size())); resps.getGenerations().stream() .forEach(gen -> { final var role = gen.getInfo().getOrDefault(ROLE_INFO_KEY, MessageType.ASSISTANT.getValue()); System.out.println(String.format("Generated respose from \"%s\": %s", role, gen.getText())); }); } }
Proje kök klasörüne geri dönün ve aşağıdaki komutu kullanarak uygulamayı çalıştırın:
./mvnw spring-boot:run
Çıktı
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.1.5)
2023-11-07T13:31:10.884-06:00 INFO 6248 --- [ main] c.example.aichatdemo.AiChatApplication : No active profile set, falling back to 1 default profile: "default"
2023-11-07T13:31:11.595-06:00 INFO 6248 --- [ main] c.example.aichatdemo.AiChatApplication : Started AiChatApplication in 0.994 seconds (process running for 1.28)
Sending chat prompts to AI service. One moment please...
Prompt created 1 generated response(s).
Generated respose from "assistant": Yes, other Azure AI services also support customer managed keys. Azure AI Services, Azure Machine Learning, and other AI services in Azure provide options for customers to manage and control their encryption keys. This allows customers to have greater control over their data and security.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.
Sonraki adımlar
Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın
Kaynak kodu | Paketi (npm) | Örnekler
Not
Bu makale, artık Azure OpenAI'yi tam olarak destekleyen en son OpenAI npm paketini kullanacak şekilde güncelleştirildi. Eski Azure OpenAI JavaScript SDK'sı için kod örnekleri arıyorsanız, bunlar şu anda bu depoda hala kullanılabilir durumdadır.
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Node.js LTS sürümleri
- TypeScript
- Veya
gpt-4
serisi modelleri dağıtılmış birgpt-35-turbo
Azure OpenAI Hizmeti kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Ayarlama
Anahtarı ve uç noktayı alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.
Değişken adı | Değer |
---|---|
ENDPOINT |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure OpenAI Studio>Oyun Alanı>Kod Görünümü'nde bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
Azure portalında kaynağınıza gidin. Anahtarlar ve Uç Nokta bölümü Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Node uygulaması oluşturma
Konsol penceresinde (cmd, PowerShell veya Bash gibi), uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.
İstemci kitaplığını yükleme
Yeni dizininiz bağlamından npm ile JavaScript için gerekli paketleri yükleyin:
npm install openai dotenv @azure/identity
Uygulamanızın package.json dosyası bağımlılıklarla güncelleştirilir.
Örnek uygulama oluşturma
Yeni projeyi istediğiniz bir komut istemi açın ve ChatCompletion.js adlı yeni bir dosya oluşturun. Aşağıdaki kodu ChatCompletion.js dosyasına kopyalayın.
import "dotenv/config";
import { AzureOpenAI } from "openai";
import type {
ChatCompletion,
ChatCompletionCreateParamsNonStreaming,
} from "openai/resources/index";
// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
const apiKey = process.env["AZURE_OPENAI_API_KEY"] || "<api key>";
// Required Azure OpenAI deployment name and API version
const apiVersion = "2024-08-01-preview";
const deploymentName = "gpt-4o-mini"; //This must match your deployment name.
function getClient(): AzureOpenAI {
return new AzureOpenAI({
endpoint,
apiKey,
apiVersion,
deployment: deploymentName,
});
}
function createMessages(): ChatCompletionCreateParamsNonStreaming {
return {
messages: [
{ role: "system", content: "You are a helpful assistant." },
{
role: "user",
content: "Does Azure OpenAI support customer managed keys?",
},
{
role: "assistant",
content: "Yes, customer managed keys are supported by Azure OpenAI?",
},
{ role: "user", content: "Do other Azure AI services support this too?" },
],
model: "",
};
}
async function printChoices(completion: ChatCompletion): Promise<void> {
for (const choice of completion.choices) {
console.log(choice.message);
}
}
export async function main() {
const client = getClient();
const messages = createMessages();
const result = await client.chat.completions.create(messages);
await printChoices(result);
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Betiği aşağıdaki komutla oluşturun:
tsc
Betiği aşağıdaki komutla çalıştırın:
node.exe Completion.js
Çıktı
== Chat Completions Sample ==
{
content: 'Yes, several other Azure AI services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Microsoft Entra Kimlik
Önemli
Önceki örnekte anahtar tabanlı kimlik doğrulamasını göstereceğiz. Anahtar tabanlı kimlik doğrulamasını başarıyla test ettikten sonra, sonraki kod örneğinde gösterilen kimlik doğrulaması için daha güvenli Microsoft Entra Kimliğini kullanmanızı öneririz. [Microsoft Entra Id] kullanmaya başlamak için bazı ek önkoşullar gerekir.
import {
DefaultAzureCredential,
getBearerTokenProvider,
} from "@azure/identity";
import "dotenv/config";
import { AzureOpenAI } from "openai";
import type {
ChatCompletion,
ChatCompletionCreateParamsNonStreaming,
} from "openai/resources/index";
// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
// Required Azure OpenAI deployment name and API version
const apiVersion = "2024-08-01-preview";
const deploymentName = "gpt-4o-mini"; //This must match your deployment name.
function getClient(): AzureOpenAI {
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(
new DefaultAzureCredential(),
scope
);
return new AzureOpenAI({
endpoint,
azureADTokenProvider,
deployment: deploymentName,
apiVersion,
});
}
function createMessages(): ChatCompletionCreateParamsNonStreaming {
return {
messages: [
{ role: "system", content: "You are a helpful assistant." },
{
role: "user",
content: "Does Azure OpenAI support customer managed keys?",
},
{
role: "assistant",
content: "Yes, customer managed keys are supported by Azure OpenAI?",
},
{ role: "user", content: "Do other Azure AI services support this too?" },
],
model: "",
};
}
async function printChoices(completion: ChatCompletion): Promise<void> {
for (const choice of completion.choices) {
console.log(choice.message);
}
}
export async function main() {
const client = getClient();
const messages = createMessages();
const result = await client.chat.completions.create(messages);
await printChoices(result);
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Not
Hata alırsanız: Hata oluştu: OpenAIError: apiKey
ve azureADTokenProvider
bağımsız değişkenleri birbirini dışlar; aynı anda yalnızca bir tane geçirilebilir. API anahtarı için önceden var olan bir ortam değişkenini sisteminizden kaldırmanız gerekebilir. Microsoft Entra Id kod örneği AÇıKÇA API anahtar ortam değişkenine başvurmasa da, bu örneği yürüten sistemde varsa, bu hata yine de oluşturulur.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.
Sonraki adımlar
- Azure OpenAI'ye Genel Bakış
- Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın
Kitaplık kaynak kodu | Paketi (PyPi) | Artırılmış Nesil (RAG) kurumsal sohbet şablonu alma |
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Python 3.8 veya sonraki bir sürümü.
- Aşağıdaki Python kitaplıkları: os.
- veya
gpt-4
modellerinin dağıtılacağı bir Azure OpenAI Hizmeti kaynağıgpt-35-turbo
. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Ayarlama
OpenAI Python istemci kitaplığını şu şekilde yükleyin:
pip install openai
Not
Bu kitaplık OpenAI tarafından korunur. Kitaplığın en son güncelleştirmelerini izlemek için sürüm geçmişine bakın.
Anahtarı ve uç noktayı alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.
Değişken adı | Değer |
---|---|
ENDPOINT |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure OpenAI Studio>Oyun Alanı>Kod Görünümü'nde bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
Azure portalında kaynağınıza gidin. Anahtarlar ve Uç Nokta bölümü Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Yeni Python uygulaması oluşturma
quickstart.py adlı yeni bir Python dosyası oluşturun. Ardından tercih ettiğiniz düzenleyicide veya IDE'de açın.
quickstart.py içeriğini aşağıdaki kodla değiştirin.
DEĞIŞKENI GPT-3.5-Turbo veya GPT-4 modellerini dağıtırken seçtiğiniz dağıtım adına ayarlamanız model
gerekir. Temel alınan model adıyla aynı olan bir dağıtım adı seçmediğiniz sürece model adının girilmesi hataya neden olur.
import os
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-01"
)
response = client.chat.completions.create(
model="gpt-35-turbo", # model = "deployment_name".
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
{"role": "user", "content": "Do other Azure AI services support this too?"}
]
)
print(response.choices[0].message.content)
Önemli
Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.
Uygulamayı hızlı başlangıç dosyanızda komutuyla
python
çalıştırın:python quickstart.py
Çıktı
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "Yes, most of the Azure AI services support customer managed keys. However, not all services support it. You can check the documentation of each service to confirm if customer managed keys are supported.",
"role": "assistant"
}
}
],
"created": 1679001781,
"id": "chatcmpl-6upLpNYYOx2AhoOYxl9UgJvF4aPpR",
"model": "gpt-3.5-turbo-0301",
"object": "chat.completion",
"usage": {
"completion_tokens": 39,
"prompt_tokens": 58,
"total_tokens": 97
}
}
Yes, most of the Azure AI services support customer managed keys. However, not all services support it. You can check the documentation of each service to confirm if customer managed keys are supported.
İleti yapısını anlama
GPT-35-Turbo ve GPT-4 modelleri, konuşma olarak biçimlendirilmiş girişlerle çalışacak şekilde iyileştirilmiştir. değişkeni, messages
konuşmada sistem, kullanıcı ve yardımcı tarafından ayrılmış farklı rollere sahip bir dizi sözlük geçirir. Sistem iletisi, modelin nasıl yanıt vermesi gerektiğine ilişkin bağlam veya yönergeler ekleyerek modelin temellerini almak için kullanılabilir.
GPT-35-Turbo & GPT-4 nasıl yapılır kılavuzu, bu yeni modellerle iletişim kurma seçeneklerine ayrıntılı bir giriş sağlar.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.
Sonraki adımlar
- Nasıl yapılır kılavuzumuzla GPT-35-Turbo ve GPT-4 modelleriyle çalışma hakkında daha fazla bilgi edinin.
- Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun.
- veya
gpt-4
modellerinin dağıtılacağı bir Azure OpenAI Hizmeti kaynağıgpt-35-turbo
. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Ayarlama
Anahtarı ve uç noktayı alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.
Değişken adı | Değer |
---|---|
ENDPOINT |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure OpenAI Studio>Oyun Alanı>Kod Görünümü'nde bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
Azure portalında kaynağınıza gidin. Anahtarlar ve Uç Nokta bölümü Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST API
Bash kabuğunda aşağıdaki komutu çalıştırın. değerini GPT-35-Turbo veya GPT-4 modellerini dağıtırken seçtiğiniz dağıtım adıyla değiştirmeniz gpt-35-turbo
gerekir. Temel alınan model adıyla aynı olan bir dağıtım adı seçmediğiniz sürece model adının girilmesi hataya neden olur.
curl $AZURE_OPENAI_ENDPOINT/openai/deployments/gpt-35-turbo/chat/completions?api-version=2024-02-01 \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure AI services support this too?"}]}'
Komutun ilk satırının biçimi örnek uç noktayla birlikte aşağıdaki curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/chat/completions?api-version=2024-02-01 \
gibi görünür. Hatayla karşılaşırsanız, ile uç noktanız /openai/deployments
arasındaki ayrım sırasında iki katına çıkmadığınızdan /
emin olmak için iki kez kontrol edin.
Bu komutu normal bir Windows komut isteminde çalıştırmak istiyorsanız ve satır sonlarını kaldırmak \
için metni değiştirmeniz gerekir.
Önemli
Üretim için Azure Key Vault gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.
Çıktı
{"id":"chatcmpl-6v7mkQj980V1yBec6ETrKPRqFjNw9",
"object":"chat.completion","created":1679072642,
"model":"gpt-35-turbo",
"usage":{"prompt_tokens":58,
"completion_tokens":68,
"total_tokens":126},
"choices":[{"message":{"role":"assistant",
"content":"Yes, other Azure AI services also support customer managed keys. Azure AI services offer multiple options for customers to manage keys, such as using Azure Key Vault, customer-managed keys in Azure Key Vault or customer-managed keys through Azure Storage service. This helps customers ensure that their data is secure and access to their services is controlled."},"finish_reason":"stop","index":0}]}
Okuma kolaylığı için ayarlanan çıkış biçimlendirmesi, gerçek çıktı satır sonları olmayan tek bir metin bloğudur.
İleti yapısını anlama
GPT-35-Turbo ve GPT-4 modelleri, konuşma olarak biçimlendirilmiş girişlerle çalışacak şekilde iyileştirilmiştir. değişkeni, messages
konuşmada sistem, kullanıcı ve yardımcı tarafından ayrılmış farklı rollere sahip bir dizi sözlük geçirir. Sistem iletisi, modelin nasıl yanıt vermesi gerektiğine ilişkin bağlam veya yönergeler ekleyerek modelin temellerini almak için kullanılabilir.
GPT-35-Turbo & GPT-4 nasıl yapılır kılavuzu, bu yeni modellerle iletişim kurma seçeneklerine ayrıntılı bir giriş sağlar.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.
Sonraki adımlar
- Nasıl yapılır kılavuzumuzla GPT-35-Turbo ve GPT-4 modelleriyle çalışma hakkında daha fazla bilgi edinin.
- Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- En son sürümü, PowerShell 7'yi veya Windows PowerShell 5.1'i kullanabilirsiniz.
- Modeli dağıtılan bir Azure OpenAI Hizmeti kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
- veya
gpt-4
modellerinin dağıtılacağı bir Azure OpenAI Hizmeti kaynağıgpt-35-turbo
. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Anahtarı ve uç noktayı alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için bir uç nokta ve anahtar gerekir.
Değişken adı | Değer |
---|---|
ENDPOINT |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure OpenAI Studio>Oyun Alanı>Kod Görünümü'nde bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
Azure portalında kaynağınıza gidin. Uç Nokta ve Anahtarlar Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'
Yeni bir PowerShell betiği oluşturma
quickstart.ps1 adlı yeni bir PowerShell dosyası oluşturun. Ardından tercih ettiğiniz düzenleyicide veya IDE'de açın.
quickstart.ps1 dosyasının içeriğini aşağıdaki kodla değiştirin. DEĞIŞKENI GPT-35-Turbo veya GPT-4 modellerini dağıtırken seçtiğiniz dağıtım adına ayarlamanız
engine
gerekir. Temel alınan model adıyla aynı olan bir dağıtım adı seçmediğiniz sürece model adının girilmesi hataya neden olur.# Azure OpenAI metadata variables $openai = @{ api_key = $Env:AZURE_OPENAI_API_KEY api_base = $Env:AZURE_OPENAI_ENDPOINT # your endpoint should look like the following https://YOUR_RESOURCE_NAME.openai.azure.com/ api_version = '2024-02-01' # this may change in the future name = 'YOUR-DEPLOYMENT-NAME-HERE' #This will correspond to the custom name you chose for your deployment when you deployed a model. } # Completion text $messages = @() $messages += @{ role = 'system' content = 'You are a helpful assistant.' } $messages += @{ role = 'user' content = 'Does Azure OpenAI support customer managed keys?' } $messages += @{ role = 'assistant' content = 'Yes, customer managed keys are supported by Azure OpenAI.' } $messages += @{ role = 'user' content = 'Do other Azure AI services support this too?' } # Header for authentication $headers = [ordered]@{ 'api-key' = $openai.api_key } # Adjust these values to fine-tune completions $body = [ordered]@{ messages = $messages } | ConvertTo-Json # Send a request to generate an answer $url = "$($openai.api_base)/openai/deployments/$($openai.name)/chat/completions?api-version=$($openai.api_version)" $response = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json' return $response
Önemli
Üretim için Azure Key Vault ile PowerShell Gizli Dizi Yönetimi gibi kimlik bilgilerinizi depolamanın ve bunlara erişmenin güvenli bir yolunu kullanın. Kimlik bilgisi güvenliği hakkında daha fazla bilgi için Azure AI hizmetleri güvenlik makalesine bakın.
Betiği PowerShell kullanarak çalıştırın:
./quickstart.ps1
Çıktı
# the output of the script will be a .NET object containing the response
id : chatcmpl-7sdJJRC6fDNGnfHMdfHXvPkYFbaVc
object : chat.completion
created : 1693255177
model : gpt-35-turbo
choices : {@{index=0; finish_reason=stop; message=}}
usage : @{completion_tokens=67; prompt_tokens=55; total_tokens=122}
# convert the output to JSON
./quickstart.ps1 | ConvertTo-Json -Depth 3
# or to view the text returned, select the specific object property
$reponse = ./quickstart.ps1
$response.choices.message.content
İleti yapısını anlama
GPT-35-Turbo ve GPT-4 modelleri, konuşma olarak biçimlendirilmiş girişlerle çalışacak şekilde iyileştirilmiştir. değişkeni, messages
konuşmada sistem, kullanıcı ve yardımcı tarafından ayrılmış farklı rollere sahip bir dizi sözlük geçirir. Sistem iletisi, modelin nasıl yanıt vermesi gerektiğine ilişkin bağlam veya yönergeler ekleyerek modelin temellerini almak için kullanılabilir.
GPT-35-Turbo & GPT-4 nasıl yapılır kılavuzu, bu yeni modellerle iletişim kurma seçeneklerine ayrıntılı bir giriş sağlar.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız kaynağı silebilirsiniz. Kaynağı silmeden önce dağıtılan modelleri silmeniz gerekir.
Sonraki adımlar
- Nasıl yapılır kılavuzumuzla GPT-35-Turbo ve GPT-4 modelleriyle çalışma hakkında daha fazla bilgi edinin.
- Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın