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.

  • İstenen Azure aboneliğinde Azure OpenAI'ye erişim izni verilir.

    Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI'ye erişim için başvurabilirsiniz. Sorun yaşıyorsanız bizimle iletişime geçmek için bu depoda bir sorun açın.

  • 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 kaynak dağıtım kılavuzuna bakın.

İpucu

Birden çok Azure AI hizmetindeki özellikleri bir araya getiren yeni birleşik Azure AI Studio'yu (önizleme) deneyin.

Azure OpenAI Studio'ya gidin

adresinden Azure OpenAI Studio'ya https://oai.azure.com/ gidin ve 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.

Sohbet oyun alanının vurgulandığı Azure OpenAI Studio giriş sayfasının ekran görüntüsü.

Ç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.

Sohbet oyun alanı sayfasının ekran görüntüsü.

Yardımcı kurulumu

Başlamak üzere önceden yüklenmiş birkaç Sistem iletisi örneği seçmek için Yardımcı kurulum 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, neleri yanıtlaması ve neleri yanıtlamaması gerektiğini söyleyebilir ve yanıtları nasıl biçimlendirebileceğini anlatabilirsiniz.

Birkaç çekim örneği eklemek, model tarafından bağlam içi öğrenme için kullanılan konuşma örnekleri sağlamanıza olanak tanır.

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

Gönder düğmesi seçildiğinde, girilen metin tamamlanmalar API'sine gönderilir 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.

Ayarlar

Ad Açıklama
Dağıtımlar Belirli bir modelle ilişkili dağıtım adınız.
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 uzunluk (belirteçler) Model yanıtı başına belirteç sayısı için bir sınır ayarlayın. API, istem (sistem iletisi, örnekler, ileti geçmişi ve kullanıcı sorgusu dahil) ile modelin yanıtı arasında paylaşılan en fazla 4096 belirteci destekler. Belirteçlerden biri, tipik İngilizce metinler için yaklaşık dört karakterdir.
En yüksek olasılıklar 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.
Çok aşamalı konuşmalar Her yeni API isteğine eklenecek geçmiş iletilerin sayısını seçin. Bu, yeni kullanıcı sorguları için model bağlamı oluşturmaya yardımcı olur. Bu sayıyı 10 olarak ayarlamak beş kullanıcı sorgusuna ve beş sistem yanıtına neden olur.
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.

Panelleri göster

Varsayılan olarak üç panel vardır: yardımcı kurulumu, sohbet oturumu ve ayarlar. Panelleri göster, panelleri eklemenize, kaldırmanıza ve yeniden düzenlemenize olanak tanır. Bir paneli kapatırsanız ve geri almanız gerekirse kayıp paneli geri yüklemek için Panelleri göster'i kullanın.

Sohbet oturumu başlatma

  1. Yardımcı kurulumu açılan listesinden Xbox müşteri destek temsilcisi'ni seçin

  2. Sistem iletisini güncelleştirmek isteyip istemediğiniz sorulur ve Devam'ı seçin.

  3. Sohbet oturumu bölmesinde şu soruyu girin: "Yeni bir Xbox satın almak istiyorum" ve Gönder'i seçin.

  4. Şuna benzer bir yanıt alırsınız:

    Oyun alanında ilk sorunun ve yanıtın ekran görüntüsü.

  5. Aşağıdaki gibi bir soru girin: "Hangi modeller 4K'yı destekler?"

    Oyun alanında takip sorusu ve yanıtının ekran görüntüsü.

  6. Artık temel bir konuşma yaptığınıza göre Yardımcı kurulumu bölümünden Kodu görüntüle'yi seçin ve şu ana kadar konuşmanın tamamında kodun yeniden oynatıldığını göreceksiniz:

#Note: The openai-python library support for Azure OpenAI is in preview.
import os
import openai
openai.api_type = "azure"
openai.api_base = "https://docs-test-001.openai.azure.com/"
openai.api_version = "2023-05-15"
openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.ChatCompletion.create(
  engine="gpt-35-turbo", # replace this value with the deployment name you chose when you deployed the associated model.
  messages = [{"role":"system","content":"You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."},{"role":"user","content":"How much is a PS5?"},{"role":"assistant","content":"I apologize, but I do not have information about the prices of other gaming devices such as the PS5. My primary focus is to assist with issues regarding Xbox devices. Is there a specific issue you are having with your Xbox device that I may be able to help with?"},{"role":"user","content":"I am interested in buying an Xbox?"},{"role":"assistant","content":"Great! There are several Xbox models available in the market, including the Xbox Series X, Xbox Series S, and Xbox One. The Xbox Series X is the latest and most powerful console, while the Xbox Series S is a more affordable option that still offers great performance. The Xbox One is the previous generation console, but it still has a large library of games available to play.\n\nBefore purchasing an Xbox, you may want to consider factors such as your budget, the types of games you want to play, and whether you want to play games in 4K resolution. Once you have decided on a console, you can purchase it from a retailer or directly from the Xbox website. Let me know if you have any other questions or concerns!"},{"role":"user","content":"Which models are 4K?"},{"role":"assistant","content":"Both the Xbox Series X and Xbox One X support 4K resolution gaming. The Xbox Series S, on the other hand, supports up to 1440p resolution gaming, but it can upscale games to 4K. It's worth noting that in order to take advantage of 4K gaming, you'll need a 4K TV or monitor that supports HDR (High Dynamic Range) and HDMI 2.0 or higher."}],
  temperature=0,
  max_tokens=350,
  top_p=0.95,
  frequency_penalty=0,
  presence_penalty=0,
  stop=None)

İstem yapısını anlama

Kodu görüntüle bölümünden örneği incelerseniz, tipik bir GPT tamamlama çağrısının parçası olmayan bazı benzersiz belirteçler görürsünüz. GPT-35-Turbo, istemin farklı bölümlerini ayırt etmek için özel belirteçler kullanmak üzere eğitildi. ve belirteçleri arasında <|im_start|><|im_end|> modele içerik sağlanır. İstem, modelin bağlamını veya yönergelerini ekleyerek modelin temellerini oluşturmak için kullanılabilecek bir sistem iletisiyle başlar. Bundan sonra, istem kullanıcı ve yardımcı arasında bir dizi ileti içerir.

Ardından yardımcının istem yanıtı belirtecin altında <|im_start|>assistant döndürülür ve yardımcının yanıtını tamamlamış olduğunu belirterek biter <|im_end|> . Bu belirteçleri sohbet oturumu panelinde görüntülemek için Ham söz dizimini göster iki durumlu düğmesini de kullanabilirsiniz.

GPT-35-Turbo & GPT-4 nasıl yapılır kılavuzu, yeni istem yapısına ve modelin etkili bir şekilde nasıl kullanılacağına gpt-35-turbo 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.

Azure OpenAI Studio'da model dağıtım düğmesini gösteren ekran görüntüsü.

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 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
  • İstenen Azure aboneliğinde Azure OpenAI hizmetine erişim izni verilir. Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI Hizmeti'ne erişim için başvurabilirsiniz.
  • .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 kaynak dağıtım kılavuzuna bakın.

Ayarlama

Yeni .NET Core uygulaması oluşturma

Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı azure-openai-quickstartyeni 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. 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.

Azure portalında uç nokta ve erişim anahtarları konumu kırmızıyla daire içine alınmış bir OpenAI Kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

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");

OpenAIClient client = new(new Uri(endpoint), new AzureKeyCredential(key));

var chatCompletionsOptions = new ChatCompletionsOptions()
{
    DeploymentName = "gpt-35-turbo", //This must match the custom deployment name you chose for your model
    Messages =
    {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("Does Azure OpenAI support customer managed keys?"),
        new ChatRequestAssistantMessage("Yes, customer managed keys are supported by Azure OpenAI."),
        new ChatRequestUserMessage("Do other Azure AI services support this too?"),
    },
    MaxTokens = 100
};

Response<ChatCompletions> response = client.GetChatCompletions(chatCompletionsOptions);

Console.WriteLine(response.Value.Choices[0].Message.Content);

Console.WriteLine();

Ö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ı

Yes, many of the Azure AI services support customer managed keys. Some examples include Text Analytics, Speech Services, and Translator. However, it's important to note that not all services support customer managed keys, so it's best to check the documentation for each individual service to see if it is supported.

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 static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");

OpenAIClient client = new(new Uri(endpoint), new AzureKeyCredential(key));

var chatCompletionsOptions = new ChatCompletionsOptions()
{
    DeploymentName= "gpt-35-turbo", //This must match the custom deployment name you chose for your model
    Messages =
    {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("Does Azure OpenAI support customer managed keys?"),
        new ChatRequestAssistantMessage("Yes, customer managed keys are supported by Azure OpenAI."),
        new ChatRequestUserMessage("Do other Azure AI services support this too?"),
    },
    MaxTokens = 100
};

await foreach (StreamingChatCompletionsUpdate chatUpdate in client.GetChatCompletionsStreaming(chatCompletionsOptions))
{
    if (chatUpdate.Role.HasValue)
    {
        Console.Write($"{chatUpdate.Role.Value.ToString().ToUpperInvariant()}: ");
    }
    if (!string.IsNullOrEmpty(chatUpdate.ContentUpdate))
    {
        Console.Write(chatUpdate.ContentUpdate);
    }
}

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 (Go)| Örnekleri

Önkoşullar

  • Azure aboneliği - Ücretsiz bir abonelik oluşturun
  • İstenen Azure aboneliğinde Azure OpenAI hizmetine erişim izni verilir. Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI Hizmeti'ne erişim için başvurabilirsiniz.
  • 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 kaynak dağıtım kılavuzuna bakın.

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. 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.

Azure portalında uç nokta ve erişim anahtarları konumu kırmızıyla daire içine alınmış bir OpenAI Kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

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/to"
)

func main() {
	azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
    //modelDeploymentID = deployment name, if model name and deployment name do not match change this value to name chosen when you deployed the model.
	modelDeploymentID := "gpt-35-turbo" 

	// 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, err := azopenai.NewKeyCredential(azureOpenAIKey)

	if err != nil {
		//  TODO: Update the following line with your application specific error handling logic
		log.Fatalf("ERROR: %s", err)
	}

	client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)

	if err != nil {
		//  TODO: Update the following line with your application specific error handling logic
		log.Fatalf("ERROR: %s", err)
	}

	// This is a conversation in progress.
	// NOTE: all messages, regardless of role, count against token usage for this API.
	messages := []azopenai.ChatMessage{
		// You set the tone and rules of the conversation with a prompt as the system role.
		{Role: to.Ptr(azopenai.ChatRoleSystem), Content: to.Ptr("You are a helpful assistant.")},

		// The user asks a question
		{Role: to.Ptr(azopenai.ChatRoleUser), Content: to.Ptr("Does Azure OpenAI support customer managed keys?")},

		// The reply would come back from the Azure OpenAI model. You'd add it to the conversation so we can maintain context.
		{Role: to.Ptr(azopenai.ChatRoleAssistant), Content: to.Ptr("Yes, customer managed keys are supported by Azure OpenAI")},

		// The user answers the question based on the latest reply.
		{Role: to.Ptr(azopenai.ChatRoleUser), Content: to.Ptr("Do other Azure AI services support this too?")},

		// from here you'd keep iterating, sending responses back from the chat completions API
	}

	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,
		Deployment: modelDeploymentID,
	}, nil)

	if err != nil {
		//  TODO: Update the following line with your application specific error handling logic
		log.Fatalf("ERROR: %s", err)
	}

	for _, choice := range resp.Choices {
		fmt.Fprintf(os.Stderr, "Content[%d]: %s\n", *choice.Index, *choice.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.

Ş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[0]: Yes, many Azure AI services also support customer managed keys. These services enable you to bring your own encryption keys for data at rest, which provides you with more control over the security of your data.

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
  • İstenen Azure aboneliğinde Azure OpenAI hizmetine erişim izni verilir. Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI Hizmeti'ne erişim için başvurabilirsiniz.
  • 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 kaynak dağıtım kılavuzuna bakın.

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. 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.

Azure portalında uç nokta ve erişim anahtarları konumu kırmızıyla daire içine alınmış bir OpenAI Kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

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.3")
    implementation("org.slf4j:slf4j-simple:1.7.9")
}

Örnek uygulama oluşturma

  1. 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.

  2. tercih ettiğiniz düzenleyicide veya IDE'de OpenAIQuickstart.java açın ve aşağıdaki kodu yapıştırı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.ChatMessage;
    import com.azure.ai.openai.models.ChatRole;
    import com.azure.ai.openai.models.CompletionsUsage;
    import com.azure.core.credential.AzureKeyCredential;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class GetChatCompletionsSample {
    
        public static void main(String[] args) {
            String azureOpenaiKey = System.getenv("AZURE_OPENAI_API_KEY");;
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");;
            String deploymentOrModelId = "gpt-35-turbo";
    
          OpenAIClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new AzureKeyCredential(azureOpenaiKey))
                .buildClient();
    
            List<ChatMessage> chatMessages = new ArrayList<>();
            chatMessages.add(new ChatMessage(ChatRole.SYSTEM, "You are a helpful assistant"));
            chatMessages.add(new ChatMessage(ChatRole.USER, "Does Azure OpenAI support customer managed keys?"));
            chatMessages.add(new ChatMessage(ChatRole.ASSISTANT, "Yes, customer managed keys are supported by Azure OpenAI?"));
            chatMessages.add(new ChatMessage(ChatRole.USER, "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()) {
                ChatMessage 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());
        }
    }  
    

    Ö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.

  3. 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

  • 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
  • İstenen Azure aboneliğinde Azure OpenAI hizmetine erişim izni verilir. Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI Hizmeti'ne erişim için başvurabilirsiniz.
  • 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 kaynak dağıtım kılavuzuna bakın.

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. 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.

Azure portalında uç nokta ve erişim anahtarları konumu kırmızıyla daire içine alınmış bir OpenAI Kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

Not

Spring AI, model adını varsayılan olarak olarak gpt-35-turbokullanı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

  1. 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>
    
  2. 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()));
              });
        }
    
    }
    

    Ö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.

  3. 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 | Alma Artırılmış Nesil (RAG) kurumsal sohbet şablonu|

Önkoşullar

  • Azure aboneliği - Ücretsiz bir abonelik oluşturun
  • İstenen Azure aboneliğinde Azure OpenAI hizmetine erişim izni verilir. Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI Hizmeti'ne erişim için başvurabilirsiniz.
  • Node.js LTS sürümleri
  • 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 kaynak dağıtım kılavuzuna bakın.

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. 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.

Azure portalında uç nokta ve erişim anahtarları konumu kırmızıyla daire içine alınmış bir OpenAI Kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

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. Ardından komutunu çalıştırarak npm init package.json dosyasıyla bir düğüm uygulaması oluşturun.

npm init

İstemci kitaplığını yükleme

npm ile JavaScript için Azure OpenAI istemci kitaplığını yükleyin:

npm install @azure/openai

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.

const { OpenAIClient, AzureKeyCredential } = require("@azure/openai");
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] ;
const azureApiKey = process.env["AZURE_OPENAI_API_KEY"] ;

const 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" },
];

async function main() {
  console.log("== Chat Completions Sample ==");

  const client = new OpenAIClient(endpoint, new AzureKeyCredential(azureApiKey));
  const deploymentId = "gpt-35-turbo";
  const result = await client.getChatCompletions(deploymentId, messages);

  for (const choice of result.choices) {
    console.log(choice.message);
  }
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

module.exports = { main };

Ö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.

Betiği aşağıdaki komutla çalıştırın:

node.exe ChatCompletion.js

Çıktı

== Chat Completions Sample ==
{
  role: 'assistant',
  content: 'Yes, most Azure AI services support customer managed keys. It is always best to check the specific service documentation to confirm this.'
}

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

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
  • İstenen Azure aboneliğinde Azure OpenAI Hizmetine erişim izni verilir. Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI Hizmeti'ne erişim için başvurabilirsiniz.
  • 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 kaynak dağıtım kılavuzuna bakın.

Ayarlama

OpenAI Python istemci kitaplığını şu şekilde yükleyin:

pip install openai

Not

Bu kitaplık OpenAI tarafından korunur ve şu anda önizleme aşamasındadır. Kitaplıkta yapılan en son güncelleştirmeleri izlemek için yayın geçmişine veya version.py işleme 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. 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.

Azure portalında uç nokta ve erişim anahtarları konumu kırmızıyla daire içine alınmış bir OpenAI Kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

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

  1. quickstart.py adlı yeni bir Python dosyası oluşturun. Ardından tercih ettiğiniz düzenleyicide veya IDE'de açın.

  2. 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.

  1. 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

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

REST API Belirtimi |

Önkoşullar

  • Azure aboneliği - Ücretsiz bir abonelik oluşturun.
  • İstenen Azure aboneliğinde Azure OpenAI Hizmetine erişim izni verilir. Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI Hizmeti'ne erişim için başvurabilirsiniz.
  • 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 kaynak dağıtım kılavuzuna bakın.

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. 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.

Azure portalında uç nokta ve erişim anahtarları konumu kırmızıyla daire içine alınmış bir OpenAI Kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Ortam değişkenleri

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

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/deploymentsarası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

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
  • İstenen Azure aboneliğinde Azure OpenAI Hizmetine erişim izni verilir. Şu anda bu hizmete erişim yalnızca uygulama tarafından sağlanmaktadır. adresinden formu https://aka.ms/oai/accesstamamlayarak Azure OpenAI Hizmeti'ne erişim için başvurabilirsiniz.
  • 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 kaynak dağıtım kılavuzuna bakın.
  • 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 kaynak dağıtım kılavuzuna 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. 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.

Azure portalında uç nokta ve erişim anahtarları konumu kırmızıyla daire içine alınmış bir OpenAI Kaynağının genel bakış kullanıcı arabiriminin ekran görüntüsü.

Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.

Ortam değişkenleri

$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'

Yeni bir PowerShell betiği oluşturma

  1. quickstart.ps1 adlı yeni bir PowerShell dosyası oluşturun. Ardından tercih ettiğiniz düzenleyicide veya IDE'de açın.

  2. 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 = '2023-05-15' # 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.

  3. 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

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