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.
Azure OpenAI kullanmaya başlamak için bu makaleyi kullanın.
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun.
- Azure AI Foundry Modellerinde Azure OpenAI,
gpt-4o
veyagpt-4o-mini
modelleri dağıtılmış bir kaynaktır. İlk araştırma için standart veya genel standart model dağıtım türlerini kullanmanızı öneririz. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Azure AI Foundry'ye gidin
Azure AI Foundry portalına 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 AI Foundry'den Sohbet oyun alanı'yı seçin.
Çocuk bahçesi
Azure AI Foundry Sohbet oyun alanı aracılığıyla kod içermeyen bir yaklaşımla Azure OpenAI özelliklerini keşfetmeye başlayın. Bu sayfadan özellikleri hızla yineleyebilir ve deneyebilirsiniz.
Ayarlama
Başlamak için, birkaç önceden yüklenmiş Sistem iletisi örneğini seçmek üzere *İ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ı
İsim | 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 her ikisini birden ayarlamayı denemeyin. |
Maksimum yanıt (tokenler) | 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 düşürülmesi, modelin belirteç seçimini daha olası belirteçler olarak 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 her ikisini birden ayarlamayı denemeyin. |
Dizileri 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
View code bölümündeki örneği incelerseniz, konuşmanın üç ayrı rol olarak system
, user
, assistant
bölündüğünü fark edersiniz. Her mesaj gönderdiğinizde modele, konuşma geçmişinin tamamı o ana 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ğıtın
Deneyimden memnun olduğunuzda, "Dağıt" düğmesini seçerek doğrudan portaldan bir web uygulaması dağıtabilirsiniz.
Bu, model üzerinde kendi verilerinizi kullanıyorsanız, tek başına bir web uygulamasına veya Copilot Studio'da bir yardımcı pilota (önizleme) dağıtma 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 | Paket (NuGet) | Örnekler| Retrieval Augmented Generation (RAG) kurumsal sohbet şablonu |
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- .NET 7 SDK
- Azure AI Foundry Modellerinde
gpt-4o
modeli dağıtılmış bir Azure OpenAI kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Microsoft Entra Id önkoşulları
Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:
- Microsoft Entra ID ile anahtarsız kimlik doğrulaması için kullanılan Azure CLI'yi yükleyin.
- Rolü kullanıcı hesabınıza atayın
Cognitive Services User
. Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında rol atayabilirsiniz.
Kurulum
Yeni bir klasör
chat-quickstart
oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:mkdir chat-quickstart && cd chat-quickstart
Aşağıdaki komutla yeni bir konsol uygulaması oluşturun:
dotnet new console
OpenAI .NET istemci kitaplığınıdotnet add package komutuyla yükleyin:
dotnet add package Azure.AI.OpenAI --prerelease
Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için Azure.Identity paketini şu şekilde yükleyin:
dotnet add package Azure.Identity
Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için aşağıdaki komutu kullanarak Azure'da oturum açın:
az login
Kaynak bilgilerini alma
Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir. |
OPENAI_API_VERSION |
API Sürümleri hakkında daha fazla bilgi edinin. Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz. |
Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.
Hızlı başlangıcı çalıştırma
Bu hızlı başlangıçtaki örnek kod, önerilen anahtarsız kimlik doğrulaması için Microsoft Entra Kimliğini kullanır. API anahtarı kullanmayı tercih ederseniz, DefaultAzureCredential
nesnesini bir AzureKeyCredential
nesneyle değiştirebilirsiniz.
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
Sohbetin tamamlanmasını sağlamak için akış veya akış dışı özelliğini kullanabilirsiniz. Aşağıdaki kod örneklerinde her iki yöntemin de nasıl kullanılacağı gösterilmektedir. İlk örnekte akış dışı yöntemin nasıl kullanılacağı, ikinci örnekte ise akış yönteminin nasıl kullanılacağı gösterilmektedir.
Yanıt akışı olmadan
Hızlı başlangıcı çalıştırmak için şu adımları izleyin:
öğesinin içeriğini
Program.cs
aşağıdaki kodla değiştirin ve yer tutucu değerlerini kendi kodunuzla güncelleştirin.using Azure; using Azure.Identity; using OpenAI.Assistants; using Azure.AI.OpenAI; using OpenAI.Chat; using static System.Environment; string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/"; string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key)); // This must match the custom deployment name you chose for your model ChatClient chatClient = openAIClient.GetChatClient("gpt-4o"); 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 services support this too?") ]); Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
Uygulamayı aşağıdaki komutla çalıştırın:
dotnet run
Çıktı
Assistant: Arrr, ye be askin’ a fine question, matey! Aye, several Azure services support customer-managed keys (CMK)! This lets ye take the wheel and secure yer data with encryption keys stored in Azure Key Vault. Services such as Azure Machine Learning, Azure Cognitive Search, and others also offer CMK fer data protection. Always check the specific service's documentation fer the latest updates, as features tend to shift swifter than the tides, aye!
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 eş zamansız
Hızlı başlangıcı çalıştırmak için şu adımları izleyin:
öğesinin içeriğini
Program.cs
aşağıdaki kodla değiştirin ve yer tutucu değerlerini kendi kodunuzla güncelleştirin.using Azure; using Azure.Identity; using OpenAI.Assistants; using Azure.AI.OpenAI; using OpenAI.Chat; using static System.Environment; string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/"; string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key)); // This must match the custom deployment name you chose for your model ChatClient chatClient = openAIClient.GetChatClient("gpt-4o"); 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 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); } }
Uygulamayı aşağıdaki komutla çalıştırın:
dotnet run
Çıktı
Assistant: Arrr, ye be askin’ a fine question, matey! Aye, many Azure services support customer-managed keys (CMK)! This lets ye take the wheel and secure yer data with encryption keys stored in Azure Key Vault. Services such as Azure Machine Learning, Azure Cognitive Search, and others also offer CMK fer data protection. Always check the specific service's documentation fer the latest updates, as features tend to shift swifter than the tides, aye!
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
- .NET için kendi veri örneğinizi kullanarak sohbeti kullanmaya başlama
- Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın
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.
- Azure AI Foundry Modellerinde
gpt-4
modeli dağıtılmış bir Azure OpenAI kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Microsoft Entra Id önkoşulları
Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:
- Microsoft Entra ID ile anahtarsız kimlik doğrulaması için kullanılan Azure CLI'yi yükleyin.
- Rolü kullanıcı hesabınıza atayın
Cognitive Services User
. Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında rol atayabilirsiniz.
Kurulum
Yeni bir klasör
chat-quickstart
oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:mkdir chat-quickstart && cd chat-quickstart
Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için aşağıdaki komutu kullanarak Azure'da oturum açın:
az login
Kaynak bilgilerini alma
Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir. |
OPENAI_API_VERSION |
API Sürümleri hakkında daha fazla bilgi edinin. Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz. |
Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.
Hızlı başlangıcı çalıştırma
Bu hızlı başlangıçtaki örnek kod, önerilen anahtarsız kimlik doğrulaması için Microsoft Entra Kimliğini kullanır. API anahtarı kullanmayı tercih ediyorsanız, NewDefaultAzureCredential
uygulamasını NewKeyCredential
ile değiştirebilirsiniz.
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
credential, err := azidentity.NewDefaultAzureCredential(nil)
client, err := azopenai.NewClient(azureOpenAIEndpoint, credential, nil)
Örneği çalıştırmak için:
chat_completions_keyless.go adlı yeni bir dosya oluşturun. Aşağıdaki kodu chat_completions_keyless.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/azidentity" ) func main() { azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT") modelDeploymentID := "gpt-4o" maxTokens:= int32(400) credential, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { log.Printf("ERROR: %s", err) return } client, err := azopenai.NewClient( azureOpenAIEndpoint, credential, nil) if err != nil { log.Printf("ERROR: %s", err) return } // This is a conversation in progress. // All messages, regardless of role, count against token usage for this API. messages := []azopenai.ChatRequestMessageClassification{ // System message sets the tone and rules of the conversation. &azopenai.ChatRequestSystemMessage{ Content: azopenai.NewChatRequestSystemMessageContent( "You are a helpful assistant."), }, // The user asks a question &azopenai.ChatRequestUserMessage{ Content: azopenai.NewChatRequestUserMessageContent( "Can I use honey as a substitute for sugar?"), }, // The reply would come back from the model. You // add it to the conversation so we can maintain context. &azopenai.ChatRequestAssistantMessage{ Content: azopenai.NewChatRequestAssistantMessageContent( "Yes, you can use use honey as a substitute for sugar."), }, // The user answers the question based on the latest reply. &azopenai.ChatRequestUserMessage{ Content: azopenai.NewChatRequestUserMessageContent( "What other ingredients can I use as a substitute for sugar?"), }, // From here you can keep iterating, sending responses back from the chat model. } gotReply := false resp, err := client.GetChatCompletions(context.TODO(), azopenai.ChatCompletionsOptions{ // This is a conversation in progress. // All messages count against token usage for this API. Messages: messages, DeploymentName: &modelDeploymentID, MaxTokens: &maxTokens, }, nil) if err != nil { // Implement 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 { // The conversation for this choice 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") } }
Yeni bir Go modülü oluşturmak için aşağıdaki komutu çalıştırın:
go mod init chat_completions_keyless.go
Gerekli bağımlılıkları yüklemek için komutunu çalıştırın
go mod tidy
:go mod tidy
Örneği çalıştırmak için aşağıdaki komutu çalıştırın:
go run chat_completions_keyless.go
Çıktı
Örnek kodun çıktısı aşağıdakine benzer:
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]: There are many alternatives to sugar that you can use, depending on the type of recipe you’re making and your dietary needs or taste preferences. Here are some popular sugar substitutes:
---
### **Natural Sweeteners**
1. **Honey**
- Sweeter than sugar and adds moisture, with a distinct flavor.
- Substitution: Use ¾ cup honey for 1 cup sugar, and reduce the liquid in your recipe by 2 tablespoons. Lower the baking temperature by 25°F to prevent over-browning.
2. **Maple Syrup**
- Adds a rich, earthy sweetness with a hint of maple flavor.
- Substitution: Use ¾ cup syrup for 1 cup sugar. Reduce liquids by 3 tablespoons.
3. **Agave Nectar**
- Sweeter and milder than honey, it dissolves well in cold liquids.
- Substitution: Use ⅔ cup agave for 1 cup sugar. Reduce liquids in the recipe slightly.
4. **Molasses**
- A byproduct of sugar production with a robust, slightly bitter flavor.
- Substitution: Use 1 cup of molasses for 1 cup sugar. Reduce liquid by ¼ cup and consider combining it with other sweeteners due to its strong flavor.
5. **Coconut Sugar**
- Made from the sap of coconut palms, it has a rich, caramel-like flavor.
- Substitution: Use it in a 1:1 ratio for sugar.
6. **Date Sugar** (or Medjool Dates)
- Made from ground, dried dates, or blended into a puree, offering a rich, caramel taste.
- Substitution: Use 1:1 for sugar. Adjust liquid in recipes if needed.
---
### **Calorie-Free or Reduced-Calorie Sweeteners**
1. **Stevia**
- A natural sweetener derived from stevia leaves, hundreds of
Finish reason[0]: length
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 | Maven Yapıtı | Örnekler | Bilgi Alma Artırımlı Üretim (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.
- Azure AI Foundry Modellerinde
gpt-4
modeli dağıtılmış bir Azure OpenAI kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Microsoft Entra Id önkoşulları
Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:
- Microsoft Entra ID ile anahtarsız kimlik doğrulaması için kullanılan Azure CLI'yi yükleyin.
- Rolü kullanıcı hesabınıza atayın
Cognitive Services User
. Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında rol atayabilirsiniz.
Kurulum
Yeni bir klasör
chat-quickstart
oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:mkdir chat-quickstart && cd chat-quickstart
Apache Maven'ı yükleyin. Ardından başarılı yüklemeyi onaylamak için komutunu çalıştırın
mvn -v
.Projenizin kökünde yeni
pom.xml
bir dosya oluşturun ve içine aşağıdaki kodu kopyalayın:<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.azure.samples</groupId> <artifactId>quickstart-dall-e</artifactId> <version>1.0.0-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.azure</groupId> <artifactId>azure-ai-openai</artifactId> <version>1.0.0-beta.10</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-core</artifactId> <version>1.53.0</version> </dependency> <dependency> <groupId>com.azure</groupId> <artifactId>azure-identity</artifactId> <version>1.15.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.9</version> </dependency> </dependencies> </project>
Azure OpenAI SDK'sını ve bağımlılıklarını yükleyin.
mvn clean dependency:copy-dependencies
Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için aşağıdaki komutu kullanarak Azure'da oturum açın:
az login
Kaynak bilgilerini alma
Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir. |
OPENAI_API_VERSION |
API Sürümleri hakkında daha fazla bilgi edinin. Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz. |
Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.
Uygulamayı çalıştırma
Bu hızlı başlangıçtaki örnek kod, önerilen anahtarsız kimlik doğrulaması için Microsoft Entra Kimliğini kullanır. API anahtarı kullanmayı tercih ederseniz, DefaultAzureCredential
nesnesini bir AzureKeyCredential
nesneyle değiştirebilirsiniz.
OpenAIClient client = new OpenAIClientBuilder()
.endpoint(endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildAsyncClient();
Konuşma tanıma için bir konsol uygulaması oluşturmak için bu adımları izleyin.
Aynı proje kök dizininde Quickstart.java adlı yeni bir dosya oluşturun.
Aşağıdaki kodu Quickstart.java kopyalayın:
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.identity.DefaultAzureCredentialBuilder; import com.azure.core.util.Configuration; import java.util.ArrayList; import java.util.List; public class QuickstartEntra { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("AZURE_OPENAI_ENDPOINT"); String deploymentOrModelId = "gpt-4o"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. OpenAIClient client = new OpenAIClientBuilder() .endpoint(endpoint) .credential(new DefaultAzureCredentialBuilder().build()) .buildClient(); List<ChatRequestMessage> chatMessages = new ArrayList<>(); chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant.")); chatMessages.add(new ChatRequestUserMessage("Can I use honey as a substitute for sugar?")); chatMessages.add(new ChatRequestAssistantMessage("Yes, you can use use honey as a substitute for sugar.")); chatMessages.add(new ChatRequestUserMessage("What other ingredients can I use as a substitute for sugar?")); 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()); } }
Yeni konsol uygulamanızı çalıştırarak bir görüntü oluşturun:
javac Quickstart.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" Quickstart
Çıktı
Model ID=chatcmpl-BDgC0Yr8YNhZFhLABQYfx6QfERsVO is created at 2025-03-21T23:35:52Z.
Index: 0, Chat Role: assistant.
Message:
If you're looking to replace sugar in cooking, baking, or beverages, there are several alternatives you can use depending on your tastes, dietary needs, and the recipe. Here's a list of common sugar substitutes:
### **Natural Sweeteners**
1. **Honey**
- Sweeter than sugar, so you may need less.
- Adds moisture to recipes.
- Adjust liquids and cooking temperature when baking to avoid over-browning.
2. **Maple Syrup**
- Provides a rich, complex flavor.
- Can be used in baking, beverages, and sauces.
- Reduce the liquid content slightly in recipes.
3. **Agave Syrup**
- Sweeter than sugar and has a mild flavor.
- Works well in drinks, smoothies, and desserts.
- Contains fructose, so use sparingly.
4. **Date Sugar or Date Paste**
- Made from dates, it's a whole-food sweetener with fiber and nutrients.
- Great for baked goods and smoothies.
- May darken recipes due to its color.
5. **Coconut Sugar**
- Similar in taste and texture to brown sugar.
- Less refined than white sugar.
- Slightly lower glycemic index, but still contains calories.
6. **Molasses**
- Dark, syrupy byproduct of sugar refining.
- Strong flavor; best for specific recipes like gingerbread or BBQ sauce.
### **Artificial Sweeteners**
1. **Stevia**
- Extracted from the leaves of the stevia plant.
- Virtually calorie-free and much sweeter than sugar.
- Available as liquid, powder, or granulated.
2. **Erythritol**
- A sugar alcohol with few calories and a clean, sweet taste.
- Doesn?t caramelize like sugar.
- Often blended with other sweeteners.
3. **Xylitol**
- A sugar alcohol similar to erythritol.
- Commonly used in baking and beverages.
- Toxic to pets (especially dogs), so handle carefully.
### **Whole Fruits**
1. **Mashed Bananas**
- Natural sweetness works well in baking.
- Adds moisture to recipes.
- Can replace sugar partially or fully depending on the dish.
2. **Applesauce (Unsweetened)**
- Adds sweetness and moisture to baked goods.
- Reduce other liquids in the recipe accordingly.
3. **Pureed Dates, Figs, or Prunes**
- Dense sweetness with added fiber and nutrients.
- Ideal for energy bars, smoothies, and baking.
### **Other Options**
1. **Brown Rice Syrup**
- Less sweet than sugar, with a mild flavor.
- Good for granola bars and baked goods.
2. **Yacon Syrup**
- Extracted from the root of the yacon plant.
- Sweet and rich in prebiotics.
- Best for raw recipes.
3. **Monk Fruit Sweetener**
- Natural sweetener derived from monk fruit.
- Often mixed with erythritol for easier use.
- Provides sweetness without calories.
### **Tips for Substitution**
- Sweeteners vary in sweetness, texture, and liquid content, so adjust recipes accordingly.
- When baking, reducing liquids or fats slightly may be necessary.
- Taste test when possible to ensure the sweetness level matches your preference.
Whether you're seeking healthier options, low-calorie substitutes, or simply alternatives for flavor, these sugar substitutes can work for a wide range of recipes!
Usage: number of prompt token is 60, number of completion token is 740, and number of total tokens in request and response is 800.
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
- Java için kendi veri örneğinizi kullanarak sohbeti kullanmaya başlama
- Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın
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ı
- Azure AI Foundry Modellerinde
gpt-4
modeli dağıtılmış bir Azure OpenAI 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ştiği varsayılmaktadırgpt-4
Kurulum
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 |
Hizmet uç noktası, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, uç noktayı Azure AI Foundry portalındaki Dağıtımlar sayfasında 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 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, bunu Azure Key Vault'ta 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 API anahtarları.
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 defterine not alındı.
Spring AI, model adını varsayılan olarak olarak gpt-35-turbo
kullanır. Yalnızca farklı bir isimle bir model dağıttıysanız, SPRING_AI_AZURE_OPENAI_MODEL
değerini sağlamanız 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.3.4</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> <spring-ai.version>1.0.0-M5</spring-ai.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>${spring-ai.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </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 org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.chat.client.ChatClient; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication public class AiChatApplication { private static final Logger log = LoggerFactory.getLogger(AiChatApplication.class); public static void main(String[] args) { SpringApplication.run(AiChatApplication.class, args); } @Bean CommandLineRunner commandLineRunner(ChatClient.Builder builder) { return args -> { var chatClient = builder.build(); log.info("Sending chat prompts to AI service. One moment please..."); String response = chatClient.prompt() .user("What was Microsoft's original internal codename for the project that eventually became Azure?") .call() .content(); log.info("Response: {}", response); }; } }
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.3.4)
2025-03-14T13:35:30.145-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Starting AiChatApplication using Java 23.0.2 with PID 93252 (/Users/vega/dev/msft/spring-ai-samples/ai-chat-demo/target/classes started by vega in /Users/vega/dev/msft/spring-ai-samples/ai-chat-demo)
2025-03-14T13:35:30.146-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : No active profile set, falling back to 1 default profile: "default"
2025-03-14T13:35:30.500-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Started AiChatApplication in 0.445 seconds (process running for 0.633)
2025-03-14T13:35:30.501-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Sending chat prompts to AI service. One moment please...
2025-03-14T13:35:31.950-04:00 INFO 93252 --- [AIChat] [ main] c.example.aichatdemo.AiChatApplication : Response: Microsoft's original internal codename for the project that eventually became Azure was "Project Red Dog." This initiative ultimately led to the development and launch of the Microsoft Azure cloud computing platform.
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 defterine not alındı.
Bu kılavuz, artık Azure OpenAI'yi tam olarak destekleyen en son OpenAI npm paketini kullanır. 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
- Yerel geliştirme ortamında parolasız kimlik doğrulaması için kullanılan Azure CLI , Azure CLI ile oturum açarak gerekli bağlamı oluşturun.
- Azure AI Foundry Modellerinde bir
gpt-4
seri modeli dağıtılmış Azure OpenAI kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Microsoft Entra Id önkoşulları
Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:
- Microsoft Entra ID ile anahtarsız kimlik doğrulaması için kullanılan Azure CLI'yi yükleyin.
- Rolü kullanıcı hesabınıza atayın
Cognitive Services User
. Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında rol atayabilirsiniz.
Kurulum
Yeni bir klasör
chat-quickstart
oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:mkdir chat-quickstart && cd chat-quickstart
Aşağıdaki komutla
package.json
oluşturun:npm init -y
JavaScript için OpenAI istemci kitaplığını şu şekilde yükleyin:
npm install openai
Önerilen parolasız kimlik doğrulaması için:
npm install @azure/identity
Kaynak bilgilerini alma
Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir. |
OPENAI_API_VERSION |
API Sürümleri hakkında daha fazla bilgi edinin. Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz. |
Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.
Dikkat
SDK ile önerilen anahtarsız kimlik doğrulamasını kullanmak için ortam değişkeninin AZURE_OPENAI_API_KEY
ayarlanmamış olduğundan emin olun.
Örnek uygulama oluşturma
index.js
Dosyayı aşağıdaki kodla oluşturun:const { AzureOpenAI } = require("openai"); const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity"); // You will need to set these environment variables or edit the following values const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint"; const apiVersion = process.env.OPENAI_API_VERSION || "2024-05-01-preview"; const deployment = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4o"; //This must match your deployment name. // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); async function main() { const client = new AzureOpenAI({ endpoint, apiKey, azureADTokenProvider, deployment }); const result = await client.chat.completions.create({ 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 services support this too?" }, ], model: "", }); for (const choice of result.choices) { console.log(choice.message); } } main().catch((err) => { console.error("The sample encountered an error:", err); }); module.exports = { main };
Aşağıdaki komutla Azure'da oturum açın:
az login
JavaScript dosyasını çalıştırın.
node index.js
Çıktı
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Not defterine not alındı.
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, API anahtarı ortam değişkenine açıkça başvurmasa da, bu örneği yürüten sistemde bir anahtar 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ış
- JavaScript için kendi veri örneğinizi kullanarak sohbeti kullanmaya başlama
- Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın
Kaynak kodu | Paketi (npm) | Örnekler
Not defterine not alındı.
Bu kılavuz, artık Azure OpenAI'yi tam olarak destekleyen en son OpenAI npm paketini kullanır. 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
- Yerel geliştirme ortamında parolasız kimlik doğrulaması için kullanılan Azure CLI , Azure CLI ile oturum açarak gerekli bağlamı oluşturun.
- Azure AI Foundry Modellerinde bir
gpt-4
seri modeli dağıtılmış Azure OpenAI kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Microsoft Entra Id önkoşulları
Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:
- Microsoft Entra ID ile anahtarsız kimlik doğrulaması için kullanılan Azure CLI'yi yükleyin.
- Rolü kullanıcı hesabınıza atayın
Cognitive Services User
. Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında rol atayabilirsiniz.
Kurulum
Yeni bir klasör
chat-quickstart
oluşturun ve aşağıdaki komutu kullanarak hızlı başlangıç klasörüne gidin:mkdir chat-quickstart && cd chat-quickstart
Aşağıdaki komutla
package.json
oluşturun:npm init -y
package.json
aşağıdaki komut ile ECMAScript olarak güncelleyin:npm pkg set type=module
JavaScript için OpenAI istemci kitaplığını şu şekilde yükleyin:
npm install openai
Önerilen parolasız kimlik doğrulaması için:
npm install @azure/identity
Kaynak bilgilerini alma
Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir. |
OPENAI_API_VERSION |
API Sürümleri hakkında daha fazla bilgi edinin. Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz. |
Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.
Dikkat
SDK ile önerilen anahtarsız kimlik doğrulamasını kullanmak için ortam değişkeninin AZURE_OPENAI_API_KEY
ayarlanmamış olduğundan emin olun.
Örnek uygulama oluşturma
index.ts
Dosyayı aşağıdaki kodla oluşturun:import { AzureOpenAI } from "openai"; import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; 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 || "Your endpoint"; // Required Azure OpenAI deployment name and API version const apiVersion = process.env.OPENAI_API_VERSION || "2024-08-01-preview"; const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4o-mini"; //This must match your deployment name. // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, 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 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); });
tsconfig.json
dosyasını oluşturup TypeScript kodunu dönüştürmek için ECMAScript için aşağıdaki kodu kopyalayın.{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }
TypeScript'ten JavaScript'e dönüştürme.
tsc
Kodu aşağıdaki komutla çalıştırın:
node index.js
Çıktı
== Chat Completions Sample ==
{
content: 'Yes, several other Azure services also support customer managed keys for enhanced security and control over encryption keys.',
role: 'assistant'
}
Not defterine not alındı.
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, API anahtarı ortam değişkenine açıkça başvurmasa da, bu örneği yürüten sistemde bir anahtar 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 | Paket (PyPi) | Geri Getirme Artırmalı Üretim (RAG) kurumsal sohbet şablonu |
Ö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.
- Azure AI Foundry Modellerinde, ya
gpt-35-turbo
ya dagpt-4
modelleri dağıtılmış bir Azure OpenAI kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Kurulum
OpenAI Python istemci kitaplığını şu şekilde yükleyin:
pip install openai
Not defterine not alındı.
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 |
Hizmet uç noktası, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, uç noktayı Azure AI Foundry portalındaki Dağıtımlar sayfasında 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
Kimlik bilgilerini bulutta çalışan uygulamalarınızla depolamaktan kaçınmak için Azure kaynakları için yönetilen kimliklerle Microsoft Entra Id kimlik doğrulaması yapmanızı öneririz.
API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault'ta güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak Azure Key Vault'a erişimi kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz . Azure Key Vault ile API anahtarları.
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.
GPT-3.5-Turbo veya GPT-4 modellerini dağıtırken seçtiğiniz dağıtım adına model
değişkenini ayarlamanız 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 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 bu 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 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 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.
messages
değişkeni, konuşma kapsamında sistem, kullanıcı ve yardımcı tarafından ayrılmış farklı rollere sahip bir dizi sözlüğü aktarır. 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.
- Python için kendi veri örneğinizi kullanarak sohbeti kullanmaya başlama
- Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun.
- Azure AI Foundry Modellerinde, ya
gpt-35-turbo
ya dagpt-4
modelleri dağıtılmış bir Azure OpenAI kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Kurulum
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 |
Hizmet uç noktası, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, uç noktayı Azure AI Foundry portalındaki Dağıtımlar sayfasında 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
Kimlik bilgilerini bulutta çalışan uygulamalarınızla depolamaktan kaçınmak için Azure kaynakları için yönetilen kimliklerle Microsoft Entra Id kimlik doğrulaması yapmanızı öneririz.
API anahtarlarını dikkatli kullanın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin. API anahtarlarını kullanıyorsanız, bunları Azure Key Vault'ta güvenli bir şekilde depolayın, anahtarları düzenli olarak döndürün ve rol tabanlı erişim denetimi ve ağ erişim kısıtlamalarını kullanarak Azure Key Vault'a erişimi kısıtlayın. Uygulamalarınızda API anahtarlarını güvenli bir şekilde kullanma hakkında daha fazla bilgi için bkz . Azure Key Vault ile API anahtarları.
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. GPT-35-Turbo veya GPT-4 modellerini dağıtırken seçtiğiniz dağıtım adıyla gpt-35-turbo
değerini değiştirmeniz gerekecek. 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 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, uç noktanızla /
arasındaki /openai/deployments
'nin iki katına çıkmadığından emin olmak için iki kez kontrol edin.
Bu komutu normal bir Windows komut isteminde çalıştırmak istiyorsanız, metni \
ve satır sonlarını kaldırarak 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 bu 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, many other Azure services also support customer managed keys. Azure OpenAI offers 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.
messages
değişkeni, konuşma kapsamında sistem, kullanıcı ve yardımcı tarafından ayrılmış farklı rollere sahip bir dizi sözlüğü aktarır. 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.
- Bir modelin dağıtılacağı Azure AI Foundry Modellerinde Azure OpenAI kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
- Modelin dağıtıldığı
gpt-4o
yüklü bir Azure OpenAI kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
Microsoft Entra Id önkoşulları
Microsoft Entra Id ile önerilen anahtarsız kimlik doğrulaması için şunları yapmanız gerekir:
- Microsoft Entra ID ile anahtarsız kimlik doğrulaması için kullanılan Azure CLI'yi yükleyin.
- Rolü kullanıcı hesabınıza atayın
Cognitive Services User
. Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında rol atayabilirsiniz.
Kaynak bilgilerini alma
Azure OpenAI kaynağınızla uygulamanızın kimliğini doğrulamak için aşağıdaki bilgileri almanız gerekir:
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi> altında bulunabilir. |
OPENAI_API_VERSION |
API Sürümleri hakkında daha fazla bilgi edinin. Koddaki sürümü değiştirebilir veya bir ortam değişkeni kullanabilirsiniz. |
Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.
Yeni bir PowerShell betiği oluşturma
Microsoft Entra ID ile önerilen anahtarsız kimlik doğrulaması için aşağıdaki komutu kullanarak Azure'da oturum açın:
az login
quickstart.ps1adlı 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. GPT-4o modelini dağıtırken seçtiğiniz dağıtım adına
engine
değişkenini ayarlamanız gerekir. Temel alınan model adıyla aynı olan bir dağıtım adı seçmediğiniz sürece model adının girilmesi hatayla sonuçlanır.# Azure OpenAI metadata variables $openai = @{ api_base = $Env:AZURE_OPENAI_ENDPOINT api_version = '2024-10-21' # This can change in the future. name = 'gpt-4o' # The name you chose for your model deployment. } # Use the recommended keyless authentication via bearer token. $headers = [ordered]@{ #'api-key' = $Env:AZURE_OPENAI_API_KEY 'Authorization' = "Bearer $($Env:DEFAULT_AZURE_CREDENTIAL_TOKEN)" } # Completion text $messages = @() $messages += @{ role = 'system' content = 'You are a helpful assistant.' } $messages += @{ role = 'user' content = 'Can I use honey as a substitute for sugar?' } $messages += @{ role = 'assistant' content = 'Yes, you can use honey as a substitute for sugar.' } $messages += @{ role = 'user' content = 'What other ingredients can I use as a substitute for sugar?' } # 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 bu güvenlik makalesine bakın.
Betiği PowerShell kullanarak çalıştırın. Bu örnekte, çıkışın kesilmediğinden emin olmak için
-Depth
parametresini kullanıyoruz../quickstart.ps1 | ConvertTo-Json -Depth 4
Çıktı
Betiğin çıktısı, Azure OpenAI'den gelen yanıtı içeren bir JSON nesnesidir. Çıktı, aşağıdaki gibi görünür:
{
"choices": [
{
"content_filter_results": {
"custom_blocklists": {
"filtered": false
},
"hate": {
"filtered": false,
"severity": "safe"
},
"protected_material_code": {
"filtered": false,
"detected": false
},
"protected_material_text": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
},
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"message": {
"content": "There are many alternatives to sugar that can be used in cooking and baking, depending on your dietary needs, taste preferences, and the type of recipe you're making. Here are some popular sugar substitutes:\n\n---\n\n### 1. **Natural Sweeteners**\n - **Maple Syrup**: A natural sweetener with a rich, distinct flavor. Use about ¾ cup of maple syrup for every cup of sugar, and reduce the liquid in the recipe slightly.\n - **Agave Nectar**: A liquid sweetener that’s sweeter than sugar. Use about ⅔ cup of agave nectar for each cup of sugar, and reduce the liquid in the recipe.\n - **Coconut Sugar**: Made from the sap of the coconut palm, it has a mild caramel flavor. Substitute in a 1:1 ratio for sugar.\n - **Molasses**: A by-product of sugar production, molasses is rich in flavor and best for recipes like gingerbread or barbecue sauce. Adjust quantities based on the recipe.\n - **Stevia (Natural)**: Derived from the stevia plant, it's intensely sweet and available in liquid or powder form. Use sparingly, as a little goes a long way.\n\n---\n\n### 2. **Fruit-Based Sweeteners**\n - **Ripe Bananas**: Mashed bananas work well for baking recipes like muffins or pancakes. Use about ½ cup of mashed banana for every cup of sugar and reduce the liquid slightly.\n - **Applesauce**: Unsweetened applesauce adds sweetness and moisture to baked goods. Replace sugar in a 1:1 ratio, but reduce the liquid by ¼ cup.\n - **Dates/Date Paste**: Blend dates with water to make a paste, which works well in recipes like energy bars, cakes, or smoothies. Use in a 1:1 ratio for sugar.\n - **Fruit Juices (e.g., orange juice)**: Can be used to impart natural sweetness but is best suited for specific recipes like marinades or desserts.\n\n---\n\n### 3. **Artificial and Low-Calorie Sweeteners**\n - **Erythritol**: A sugar alcohol with no calories. Substitute in equal amounts, but be careful as it may cause a cooling sensation in some recipes.\n - **Xylitol**: Another sugar alcohol, often used in gum and candies. It’s a 1:1 sugar substitute but may affect digestion if consumed in large quantities.\n - **Monk Fruit Sweetener**: A natural, calorie-free sweetener that’s significantly sweeter than sugar. Follow the product packaging for exact substitution measurements.\n - **Aspartame, Sucralose, or Saccharin** (Artificial Sweeteners): Often used for calorie reduction in beverages or desserts. Follow package instructions for substitution.\n\n---\n\n### 4. **Other Natural Alternatives**\n - **Brown Rice Syrup**: A sticky, malt-flavored syrup used in granolas or desserts. Substitute 1 ¼ cups of brown rice syrup for every cup of sugar.\n - **Barley Malt Syrup**: A thick, dark syrup with a distinct flavor. It can replace sugar but might require recipe adjustments due to its strong taste.\n - **Yacon Syrup**: Made from the root of the yacon plant, it’s similar in texture to molasses and has a mild sweetness.\n\n---\n\n### General Tips for Substituting Sugar:\n- **Adjust Liquids:** Many liquid sweeteners (like honey or maple syrup) require reducing the liquid in the recipe to maintain texture.\n- **Baking Powder Adjustment:** If replacing sugar with an acidic sweetener (e.g., honey or molasses), you might need to add a little baking soda to neutralize acidity.\n- **Flavor Changes:** Some substitutes, like molasses or coconut sugar, have distinct flavors that can influence the taste of your recipe.\n- **Browning:** Sugar contributes to caramelization and browning in baked goods. Some alternatives may yield lighter-colored results.\n\nBy trying out different substitutes, you can find what works best for your recipes!",
"refusal": null,
"role": "assistant"
}
}
],
"created": 1742602230,
"id": "chatcmpl-BDgjWjEboQ0z6r58pvSBgH842JbB2",
"model": "gpt-4o-2024-11-20",
"object": "chat.completion",
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"custom_blocklists": {
"filtered": false
},
"hate": {
"filtered": false,
"severity": "safe"
},
"jailbreak": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"system_fingerprint": "fp_a42ed5ff0c",
"usage": {
"completion_tokens": 836,
"completion_tokens_details": {
"accepted_prediction_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 0,
"rejected_prediction_tokens": 0
},
"prompt_tokens": 60,
"prompt_tokens_details": {
"audio_tokens": 0,
"cached_tokens": 0
},
"total_tokens": 896
}
}
Açıklamalar
Ham çıkışı görmek istiyorsanız adımı atlayabilirsiniz ConvertTo-Json
.
./quickstart.ps1
Çıkış şuna benzer:
choices : {@{content_filter_results=; finish_reason=stop; index=0; logprobs=; message=}}
created : 1742602727
id : chatcmpl-BDgrX0BF38mZuszFeyU1NKZSiRpSX
model : gpt-4o-2024-11-20
object : chat.completion
prompt_filter_results : {@{prompt_index=0; content_filter_results=}}
system_fingerprint : fp_b705f0c291
usage : @{completion_tokens=944; completion_tokens_details=; prompt_tokens=60; prompt_tokens_details=; total_tokens=1004}
powershell.ps1 betiğinin içeriğini düzenleyerek nesnenin tamamını veya belirli bir özelliği döndürebilirsiniz. Örneğin, döndürülen metni döndürmek için betiğinreturn $response
() son satırını aşağıdakilerle değiştirebilirsiniz:
return $response.choices.message.content
Ardından betiği yeniden çalıştırın.
./quickstart.ps1
Çıkış şuna benzer:
There are several ingredients that can be used as substitutes for sugar, depending on the recipe and your dietary preferences. Here are some popular options:
---
### **Natural Sweeteners**
1. **Maple Syrup**
- Flavor: Rich and slightly caramel-like.
- Use: Works well in baking, sauces, oatmeal, and beverages.
- Substitution: Replace sugar in a 1:1 ratio but reduce the liquid in your recipe by about 3 tablespoons per cup of maple syrup.
2. **Agave Nectar**
- Flavor: Mildly sweet, less pronounced than honey.
- Use: Good for beverages, desserts, and dressings.
- Substitution: Use about 2/3 cup of agave nectar for every 1 cup of sugar, and reduce other liquids slightly.
3. **Molasses**
- Flavor: Strong, earthy, and slightly bitter.
- Use: Perfect for gingerbread, cookies, and marinades.
- Substitution: Replace sugar in equal amounts, but adjust for the strong flavor.
4. **Date Paste**
- Flavor: Naturally sweet with hints of caramel.
- Use: Works well in energy bars, smoothies, or baking recipes.
- Substitution: Blend pitted dates with water to create paste (about 1:1 ratio). Use equal amounts in recipes.
5. **Coconut Sugar**
- Flavor: Similar to brown sugar, mildly caramel-like.
- Use: Excellent for baking.
- Substitution: Replace sugar in a 1:1 ratio.
---
### **Low-Calorie Sweeteners**
1. **Stevia**
- Flavor: Very sweet but can have a slightly bitter aftertaste.
- Use: Works in beverages, desserts, and some baked goods.
- Substitution: Use less—around 1 teaspoon of liquid stevia or 1/2 teaspoon stevia powder for 1 cup of sugar. Check the package for exact conversion.
2. **Erythritol**
- Flavor: Similar to sugar but less sweet.
- Use: Perfect for baked goods and beverages.
- Substitution: Replace sugar using a 1:1 ratio, though you may need to adjust for less sweetness.
3. **Xylitol**
- Flavor: Similar to sugar.
- Use: Great for baking or cooking but avoid using it for recipes requiring caramelization.
- Substitution: Use a 1:1 ratio.
---
### **Fruit-Based Sweeteners**
1. **Mashed Bananas**
- Flavor: Sweet with a fruity note.
- Use: Great for muffins, cakes, and pancakes.
- Substitution: Use 1 cup mashed banana for 1 cup sugar, but reduce liquid slightly in the recipe.
2. **Applesauce**
- Flavor: Mildly sweet.
- Use: Excellent for baked goods like muffins or cookies.
- Substitution: Replace sugar 1:1, but reduce other liquids slightly.
3. **Fruit Juice Concentrates**
- Flavor: Sweet with fruity undertones.
- Use: Works well in marinades, sauces, and desserts.
- Substitution: Use equal amounts, but adjust liquid content.
---
### **Minimal-Processing Sugars**
1. **Raw Honey**
- Flavor: Sweet with floral undertones.
- Use: Good for baked goods and beverages.
- Substitution: Replace sugar in a 1:1 ratio, but reduce other liquids slightly.
2. **Brown Rice Syrup**
- Flavor: Mildly sweet with a hint of nuttiness.
- Use: Suitable for baked goods and granola bars.
- Substitution: Use 1-1/4 cups of syrup for 1 cup of sugar, and decrease liquid in the recipe.
---
### Tips for Substitution:
- Adjust for sweetness: Some substitutes are sweeter or less sweet than sugar, so amounts may need tweaking.
- Baking considerations: Sugar affects texture, browning, and moisture. If you replace it, you may need to experiment to get the desired result.
- Liquid adjustments: Many natural sweeteners are liquid, so you’ll often need to reduce the amount of liquid in your recipe.
Would you like help deciding the best substitute for a specific recipe?
İleti yapısını anlama
GPT-4 modelleri, konuşma olarak biçimlendirilmiş girişlerle çalışacak şekilde iyileştirilmiştir.
messages
değişkeni, konuşma kapsamında sistem, kullanıcı ve yardımcı tarafından ayrılmış farklı rollere sahip bir dizi sözlüğü aktarır. 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-4 nasıl yapılır kılavuzu, bu 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-4 modelleriyle çalışma hakkında daha fazla bilgi edinin.
- Daha fazla örnek için Azure OpenAI Örnekleri GitHub deposuna göz atın