Hızlı Başlangıç: Kendi verilerinizi kullanarak Azure OpenAI modelleriyle sohbet edin
Bu hızlı başlangıçta Azure OpenAI modelleriyle kendi verilerinizi kullanabilirsiniz. Verilerinizde Azure OpenAI'nin modellerini kullanmak size daha hızlı ve daha doğru iletişim sağlayan güçlü bir konuşma yapay zekası platformu sağlayabilir.
Önkoşullar
Aşağıdaki kaynaklar:
- Azure OpenAI
- Azure Blob Depolama
- Azure AI Arama
- Desteklenen bir bölgede ve desteklenen bir modelle dağıtılan bir Azure OpenAI kaynağı.
- Azure OpenAI kaynağı için en azından Bilişsel Hizmetler Katkıda Bulunanı rolüne atandığınızdan emin olun.
- Kendi verileriniz yoksa GitHub'dan örnek verileri indirin.
Azure OpenAI Studio kullanarak verilerinizi ekleme
İpucu
Verilerinizde Azure OpenAI için gerekli kaynakları program aracılığıyla oluşturmak için Azure Geliştirici CLI'sini kullanabilirsiniz
Azure OpenAI Studio'ya 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.
Kendi verilerinizi getirin kutucuğunu seçin
Sohbet oyun alanında Verilerinizi ekleyin'i ve ardından Veri kaynağı ekle'yi seçin
Görüntülenen bölmede Veri kaynağı seç'in altında Dosyaları karşıya yükle (önizleme) öğesini seçin. Azure OpenAI'ın verilerinize erişmek ve verileri dizine eklemek için hem depolama kaynağına hem de arama kaynağına ihtiyacı vardır.
İpucu
- Daha fazla bilgi için aşağıdaki kaynağa bakın:
- Uzun metin içeren belgeler ve veri kümeleri için kullanılabilir veri hazırlama betiğini kullanmanızı öneririz.
Azure OpenAI'nin depolama hesabınıza erişmesi için Çıkış noktaları arası kaynak paylaşımını (CORS) açmanız gerekir. Azure Blob Depolama kaynağı için CORS henüz açık değilse CORS'yi aç'ı seçin.
Azure AI Search kaynağınızı seçin ve bu kaynağı bağlamanın hesabınızda kullanıma neden olacağı onayını seçin. Sonra İleri'yi seçin.
Dosyaları karşıya yükle bölmesinde Dosyaya gözat'ı seçin ve önkoşullar bölümünden veya kendi verilerinizden indirdiğiniz dosyaları seçin. Ardından Dosyaları karşıya yükle'yi seçin. Sonra İleri'yi seçin.
Veri yönetimi bölmesinde, dizininiz için anlamsal aramayı mı yoksa vektör aramasını mı etkinleştirebileceğinizi seçebilirsiniz.
Önemli
- Anlamsal arama ve vektör araması ek fiyatlandırmaya tabidir. Anlamsal aramayı veya vektör aramasını etkinleştirmek için Temel veya daha yüksek SKU'yu seçmeniz gerekir. Daha fazla bilgi için bkz . fiyatlandırma katmanı farkı ve hizmet sınırları .
- Bilgi alma ve model yanıtının kalitesini artırmaya yardımcı olmak için şu veri kaynağı dilleri için anlamsal aramayı etkinleştirmenizi öneririz: İngilizce, Fransızca, İspanyolca, Portekizce, İtalyanca, Almanya, Çince (Zh), Japonca, Korece, Rusça ve Arapça.
Girdiğiniz ayrıntıları gözden geçirin ve Kaydet ve kapat'ı seçin. Artık modelle sohbet edebilirsiniz ve yanıt oluşturmak için verilerinizden alınan bilgileri kullanır.
Sohbet oyun alanı
Sohbet oyun alanı aracılığıyla kod içermeyen bir yaklaşımla Azure OpenAI özelliklerini keşfetmeye başlayın. Bu, tamamlama oluşturmak için bir istem gönderebileceğiniz bir metin kutusu. Bu sayfadan özellikleri hızla yineleyebilir ve deneyebilirsiniz.
Oyun alanı, sohbet deneyiminizi uyarlamak için seçenekler sunar. Sağ tarafta Dağıtım'ı seçerek dizininizdeki arama sonuçlarını kullanarak hangi modelin yanıt oluşturabileceğini belirleyebilirsiniz. Gelecekte oluşturulan yanıtlar için konuşma geçmişi olarak eklenecek geçmiş iletilerin sayısını seçersiniz. Konuşma geçmişi, ilgili yanıtları oluşturmak için bağlam sağlar, ancak belirteç kullanımını da kullanır. Giriş belirteci ilerleme durumu göstergesi, gönderdiğiniz sorunun belirteç sayısını izler.
Soldaki Gelişmiş ayarlar, verilerinizden ilgili bilgileri alma ve arama üzerinde denetim sahibi olmanıza izin veren çalışma zamanı parametreleridir. İyi bir kullanım örneği, yanıtların yalnızca verilerinize göre oluşturulduğundan emin olmak istemeniz veya modelin verilerinizde mevcut bilgilere dayalı bir yanıt oluşturamadığını bulmanızdır.
Katılık , sistemin benzerlik puanlarına göre arama belgelerini filtrelemedeki kararlılığını belirler. Katılığı 5 olarak ayarlamak, sistemin belgeleri agresif bir şekilde filtreleyerek çok yüksek bir benzerlik eşiği uygulayacağını gösterir. Sıralama modelleri sorgunun amacını çıkarsama konusunda daha iyi bir iş çıkardığından bu senaryoda anlamsal arama yararlı olabilir. Düşük katılık düzeyleri daha ayrıntılı yanıtlar üretir, ancak dizininizde olmayan bilgileri de içerebilir. Bu, varsayılan olarak 3 olarak ayarlanır.
Alınan belgeler 3, 5, 10 veya 20 olarak ayarlanabilen bir tamsayıdır ve son yanıtı formüle etmek için büyük dil modeline sağlanan belge öbeklerinin sayısını denetler. Varsayılan olarak, bu değer 5 olarak ayarlanır.
Verilerinize yanıtları sınırla etkinleştirildiğinde, model yalnızca yanıtlar için belgelerinize güvenmeye çalışır. Bu, varsayılan olarak true olarak ayarlanır.
İlk sorgunuzu gönderin. Sohbet modelleri söz konusu ve yanıt alıştırmalarında en iyi performansı gösterir. Örneğin, "Kullanılabilir sistem durumu planlarım nelerdir?" veya "Sistem durumu artı seçeneği nedir?".
Veri analizi gerektiren sorgular büyük olasılıkla "En popüler sistem durumu planı hangisidir?" gibi başarısız olabilir. Tüm verileriniz hakkında bilgi gerektiren sorgular da büyük olasılıkla "Kaç belge yükledim?" gibi başarısız olur. Arama altyapısının sorguyla ilgili tam veya benzer terimlere, tümceciklere veya yapıya sahip öbekleri aradığını unutmayın. Model soruyu anlayabilir ancak arama sonuçları veri kümesinden alınan öbeklerse, bu tür bir soruyu yanıtlamak doğru bilgi değildir.
Sohbetler yanıtta döndürülen belge sayısıyla (öbekler) kısıtlanır (Azure OpenAI Studio oyun alanında 3-20 ile sınırlıdır). Tahmin edebileceğiniz gibi, "tüm başlıklar" hakkında soru sorulabilmesi için vektör deposunun tamamının tam taraması gerekir.
Modelinizi dağıtma
Azure OpenAI studio deneyiminden memnun olduktan sonra, Dağıtılacak yer düğmesini seçerek doğrudan Studio'dan bir web uygulaması dağıtabilirsiniz.
Bu, tek başına bir web uygulamasına dağıtma veya modelde kendi verilerinizi kullanıyorsanız Copilot Studio'da bir yardımcı pilot (önizleme) seçeneği sunar.
Örneğin, bir web uygulaması dağıtmayı seçerseniz:
Bir web uygulamasını ilk kez dağıttığınızda Yeni web uygulaması oluştur'u seçmelisiniz. Uygulama URL'sinin bir parçası olacak uygulama için bir ad seçin. Örneğin, https://<appname>.azurewebsites.net
.
Yayımlanan uygulama için aboneliğinizi, kaynak grubunuzu, konumunuzu ve fiyatlandırma planınızı seçin. Mevcut bir uygulamayı güncelleştirmek için Mevcut bir web uygulamasında yayımla'yı seçin ve açılan menüden önceki uygulamanızın adını seçin.
Bir web uygulamasını dağıtmayı seçerseniz, bu uygulamayı kullanmak için dikkat edilmesi gereken önemli noktalara bakın.
Önkoşullar
Aşağıdaki kaynaklar:
- Azure OpenAI
- Azure Blob Depolama
- Azure AI Arama
- Desteklenen bir bölgede ve desteklenen bir modelle dağıtılan bir Azure OpenAI kaynağı.
- Azure OpenAI kaynağı için en azından Bilişsel Hizmetler Katkıda Bulunanı rolüne atandığınızdan emin olun.
- Kendi verileriniz yoksa GitHub'dan örnek verileri indirin.
- .NET 8 SDK
Azure OpenAI Studio kullanarak verilerinizi ekleme
İpucu
Verilerinizde Azure OpenAI için gerekli kaynakları program aracılığıyla oluşturmak için Azure Geliştirici CLI'sini kullanabilirsiniz
Azure OpenAI Studio'ya 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.
Kendi verilerinizi getirin kutucuğunu seçin
Sohbet oyun alanında Verilerinizi ekleyin'i ve ardından Veri kaynağı ekle'yi seçin
Görüntülenen bölmede Veri kaynağı seç'in altında Dosyaları karşıya yükle (önizleme) öğesini seçin. Azure OpenAI'ın verilerinize erişmek ve verileri dizine eklemek için hem depolama kaynağına hem de arama kaynağına ihtiyacı vardır.
İpucu
- Daha fazla bilgi için aşağıdaki kaynağa bakın:
- Uzun metin içeren belgeler ve veri kümeleri için kullanılabilir veri hazırlama betiğini kullanmanızı öneririz.
Azure OpenAI'nin depolama hesabınıza erişmesi için Çıkış noktaları arası kaynak paylaşımını (CORS) açmanız gerekir. Azure Blob Depolama kaynağı için CORS henüz açık değilse CORS'yi aç'ı seçin.
Azure AI Search kaynağınızı seçin ve bu kaynağı bağlamanın hesabınızda kullanıma neden olacağı onayını seçin. Sonra İleri'yi seçin.
Dosyaları karşıya yükle bölmesinde Dosyaya gözat'ı seçin ve önkoşullar bölümünden veya kendi verilerinizden indirdiğiniz dosyaları seçin. Ardından Dosyaları karşıya yükle'yi seçin. Sonra İleri'yi seçin.
Veri yönetimi bölmesinde, dizininiz için anlamsal aramayı mı yoksa vektör aramasını mı etkinleştirebileceğinizi seçebilirsiniz.
Önemli
- Anlamsal arama ve vektör araması ek fiyatlandırmaya tabidir. Anlamsal aramayı veya vektör aramasını etkinleştirmek için Temel veya daha yüksek SKU'yu seçmeniz gerekir. Daha fazla bilgi için bkz . fiyatlandırma katmanı farkı ve hizmet sınırları .
- Bilgi alma ve model yanıtının kalitesini artırmaya yardımcı olmak için şu veri kaynağı dilleri için anlamsal aramayı etkinleştirmenizi öneririz: İngilizce, Fransızca, İspanyolca, Portekizce, İtalyanca, Almanya, Çince (Zh), Japonca, Korece, Rusça ve Arapça.
Girdiğiniz ayrıntıları gözden geçirin ve Kaydet ve kapat'ı seçin. Artık modelle sohbet edebilirsiniz ve yanıt oluşturmak için verilerinizden alınan bilgileri kullanır.
Gerekli değişkenleri alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değişkenlere ihtiyacınız vardır. Bu hızlı başlangıçta verilerinizi bir Azure blob depolama hesabına yüklediğiniz ve bir Azure AI Search dizini oluşturduğunuz varsayılır. Bkz. Azure AI Studio kullanarak verilerinizi ekleme
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Azure portalından Azure OpenAI kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure AI Studio>Sohbet oyun alanı>Kod görünümünde bulabilirsiniz. Örnek uç nokta: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Bu değer, Azure portaldan Azure OpenAI kaynağınızı incelerken Kaynak yönetimi>Anahtarları ve Uç Nokta bölümünde bulunabilir. 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_OPENAI_DEPLOYMENT_ID |
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>Dağıtımları altında veya alternatif olarak Azure AI Studio'daki Yönetim>Dağıtımları altında bulunabilir. |
AZURE_AI_SEARCH_ENDPOINT |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulunabilir. |
AZURE_AI_SEARCH_API_KEY |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Ayarlar>Anahtarları bölümünde bulunabilir. Birincil yönetici anahtarını veya ikincil yönetici anahtarını 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_AI_SEARCH_INDEX |
Bu değer, verilerinizi depolamak için oluşturduğunuz dizinin adına karşılık gelir. Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulabilirsiniz. |
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Yeni .NET Core uygulaması oluşturma
Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı azure-openai-quickstart
yeni bir konsol uygulaması oluşturmak için komutunu kullanındotnet new
. Bu komut, tek bir C# kaynak dosyasıyla basit bir "Merhaba Dünya" projesi oluşturur: Program.cs.
dotnet new console -n azure-openai-quickstart
Dizininizi yeni oluşturulan uygulama klasörüyle değiştirin. Uygulamayı şu şekilde oluşturabilirsiniz:
dotnet build
Derleme çıkışı hiçbir uyarı veya hata içermemelidir.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
OpenAI .NET istemci kitaplığını şu şekilde yükleyin:
dotnet add package Azure.AI.OpenAI --prerelease
Proje dizininden Program.cs dosyasını açın ve içeriğini aşağıdaki kodla değiştirin:
Yanıt akışı olmadan
using Azure;
using Azure.AI.OpenAI;
using Azure.AI.OpenAI.Chat;
using OpenAI.Chat;
using System.Text.Json;
using static System.Environment;
string azureOpenAIEndpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string azureOpenAIKey = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
string deploymentName = GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_ID");
string searchEndpoint = GetEnvironmentVariable("AZURE_AI_SEARCH_ENDPOINT");
string searchKey = GetEnvironmentVariable("AZURE_AI_SEARCH_API_KEY");
string searchIndex = GetEnvironmentVariable("AZURE_AI_SEARCH_INDEX");
#pragma warning disable AOAI001
AzureOpenAIClient azureClient = new(
new Uri(azureOpenAIEndpoint),
new AzureKeyCredential(azureOpenAIKey));
ChatClient chatClient = azureClient.GetChatClient(deploymentName);
ChatCompletionOptions options = new();
options.AddDataSource(new AzureSearchChatDataSource()
{
Endpoint = new Uri(searchEndpoint),
IndexName = searchIndex,
Authentication = DataSourceAuthentication.FromApiKey(searchKey),
});
ChatCompletion completion = chatClient.CompleteChat(
[
new UserChatMessage("What are my available health plans?"),
], options);
Console.WriteLine(completion.Content[0].Text);
AzureChatMessageContext onYourDataContext = completion.GetAzureMessageContext();
if (onYourDataContext?.Intent is not null)
{
Console.WriteLine($"Intent: {onYourDataContext.Intent}");
}
foreach (AzureChatCitation citation in onYourDataContext?.Citations ?? [])
{
Console.WriteLine($"Citation: {citation.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.
dotnet run program.cs
Çıktı
Contoso Electronics offers two health plans: Northwind Health Plus and Northwind Standard [doc1]. Northwind Health Plus is a comprehensive plan that provides coverage for medical, vision, and dental services, prescription drug coverage, mental health and substance abuse coverage, and coverage for preventive care services. It also offers coverage for emergency services, both in-network and out-of-network. On the other hand, Northwind Standard is a basic plan that provides coverage for medical, vision, and dental services, prescription drug coverage, and coverage for preventive care services. However, it does not offer coverage for emergency services, mental health and substance abuse coverage, or out-of-network services [doc1].
Intent: ["What are the available health plans?", "List of health plans available", "Health insurance options", "Types of health plans offered"]
Citation:
Contoso Electronics plan and benefit packages
Thank you for your interest in the Contoso electronics plan and benefit packages. Use this document to
learn more about the various options available to you...// Omitted for brevity
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 Azure.AI.OpenAI.Chat;
using OpenAI.Chat;
using static System.Environment;
string azureOpenAIEndpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string azureOpenAIKey = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
string deploymentName = GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_ID");
string searchEndpoint = GetEnvironmentVariable("AZURE_AI_SEARCH_ENDPOINT");
string searchKey = GetEnvironmentVariable("AZURE_AI_SEARCH_API_KEY");
string searchIndex = GetEnvironmentVariable("AZURE_AI_SEARCH_INDEX");
#pragma warning disable AOAI001
AzureOpenAIClient azureClient = new(
new Uri(azureOpenAIEndpoint),
new AzureKeyCredential(azureOpenAIKey));
ChatClient chatClient = azureClient.GetChatClient(deploymentName);
ChatCompletionOptions options = new();
options.AddDataSource(new AzureSearchChatDataSource()
{
Endpoint = new Uri(searchEndpoint),
IndexName = searchIndex,
Authentication = DataSourceAuthentication.FromApiKey(searchKey),
});
var chatUpdates = chatClient.CompleteChatStreamingAsync(
[
new UserChatMessage("What are my available health plans?"),
], options);
AzureChatMessageContext onYourDataContext = null;
await foreach (var chatUpdate in chatUpdates)
{
if (chatUpdate.Role.HasValue)
{
Console.WriteLine($"{chatUpdate.Role}: ");
}
foreach (var contentPart in chatUpdate.ContentUpdate)
{
Console.Write(contentPart.Text);
}
if (onYourDataContext == null)
{
onYourDataContext = chatUpdate.GetAzureMessageContext();
}
}
Console.WriteLine();
if (onYourDataContext?.Intent is not null)
{
Console.WriteLine($"Intent: {onYourDataContext.Intent}");
}
foreach (AzureChatCitation citation in onYourDataContext?.Citations ?? [])
{
Console.Write($"Citation: {citation.Content}");
}
Kaynak kodu| Kaynak kodu | Örneği
Önkoşullar
Aşağıdaki kaynaklar:
- Azure OpenAI
- Azure Blob Depolama
- Azure AI Arama
- Desteklenen bir bölgede ve desteklenen bir modelle dağıtılan bir Azure OpenAI kaynağı.
- Azure OpenAI kaynağı için en azından Bilişsel Hizmetler Katkıda Bulunanı rolüne atandığınızdan emin olun.
- Kendi verileriniz yoksa GitHub'dan örnek verileri indirin.
Azure OpenAI Studio kullanarak verilerinizi ekleme
İpucu
Verilerinizde Azure OpenAI için gerekli kaynakları program aracılığıyla oluşturmak için Azure Geliştirici CLI'sini kullanabilirsiniz
Azure OpenAI Studio'ya 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.
Kendi verilerinizi getirin kutucuğunu seçin
Sohbet oyun alanında Verilerinizi ekleyin'i ve ardından Veri kaynağı ekle'yi seçin
Görüntülenen bölmede Veri kaynağı seç'in altında Dosyaları karşıya yükle (önizleme) öğesini seçin. Azure OpenAI'ın verilerinize erişmek ve verileri dizine eklemek için hem depolama kaynağına hem de arama kaynağına ihtiyacı vardır.
İpucu
- Daha fazla bilgi için aşağıdaki kaynağa bakın:
- Uzun metin içeren belgeler ve veri kümeleri için kullanılabilir veri hazırlama betiğini kullanmanızı öneririz.
Azure OpenAI'nin depolama hesabınıza erişmesi için Çıkış noktaları arası kaynak paylaşımını (CORS) açmanız gerekir. Azure Blob Depolama kaynağı için CORS henüz açık değilse CORS'yi aç'ı seçin.
Azure AI Search kaynağınızı seçin ve bu kaynağı bağlamanın hesabınızda kullanıma neden olacağı onayını seçin. Sonra İleri'yi seçin.
Dosyaları karşıya yükle bölmesinde Dosyaya gözat'ı seçin ve önkoşullar bölümünden veya kendi verilerinizden indirdiğiniz dosyaları seçin. Ardından Dosyaları karşıya yükle'yi seçin. Sonra İleri'yi seçin.
Veri yönetimi bölmesinde, dizininiz için anlamsal aramayı mı yoksa vektör aramasını mı etkinleştirebileceğinizi seçebilirsiniz.
Önemli
- Anlamsal arama ve vektör araması ek fiyatlandırmaya tabidir. Anlamsal aramayı veya vektör aramasını etkinleştirmek için Temel veya daha yüksek SKU'yu seçmeniz gerekir. Daha fazla bilgi için bkz . fiyatlandırma katmanı farkı ve hizmet sınırları .
- Bilgi alma ve model yanıtının kalitesini artırmaya yardımcı olmak için şu veri kaynağı dilleri için anlamsal aramayı etkinleştirmenizi öneririz: İngilizce, Fransızca, İspanyolca, Portekizce, İtalyanca, Almanya, Çince (Zh), Japonca, Korece, Rusça ve Arapça.
Girdiğiniz ayrıntıları gözden geçirin ve Kaydet ve kapat'ı seçin. Artık modelle sohbet edebilirsiniz ve yanıt oluşturmak için verilerinizden alınan bilgileri kullanır.
Gerekli değişkenleri alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değişkenlere ihtiyacınız vardır. Bu hızlı başlangıçta verilerinizi bir Azure blob depolama hesabına yüklediğiniz ve bir Azure AI Search dizini oluşturduğunuz varsayılır. Daha fazla bilgi için bkz . Azure AI Studio kullanarak verilerinizi ekleme.
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değeri Azure portaldan Azure OpenAI kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulabilirsiniz. Alternatif olarak, değeri Azure AI Studio>Sohbet oyun alanı>Kod görünümünde bulabilirsiniz. Örnek uç nokta: https://my-resource.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Bu değeri Azure portalından Azure OpenAI kaynağınızı incelerken Kaynak yönetimi>Anahtarları ve Uç Nokta bölümünde bulabilirsiniz. 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_OPEN_AI_DEPLOYMENT_ID |
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ğeri Azure portalındaki Kaynak Yönetimi>Dağıtımları altında veya alternatif olarak Azure AI Studio'daki Yönetim>Dağıtımları altında bulabilirsiniz. |
AZURE_AI_SEARCH_ENDPOINT |
Bu değeri Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulabilirsiniz. |
AZURE_AI_SEARCH_API_KEY |
Bu değeri, Azure portalından Azure AI Search kaynağınızı incelerken Ayarlar>Anahtarları bölümünde bulabilirsiniz. Birincil yönetici anahtarını veya ikincil yönetici anahtarını 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_AI_SEARCH_INDEX |
Bu değer, verilerinizi depolamak için oluşturduğunuz dizinin adına karşılık gelir. Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulabilirsiniz. |
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
Not
Spring AI, model adını varsayılan olarak olarak gpt-35-turbo
kullanır. Yalnızca farklı bir ada sahip bir model dağıttıysanız değeri sağlamanız SPRING_AI_AZURE_OPENAI_MODEL
gerekir.
export SPRING_AI_AZURE_OPENAI_ENDPOINT=REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
export SPRING_AI_AZURE_OPENAI_API_KEY=REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
export SPRING_AI_AZURE_COGNITIVE_SEARCH_ENDPOINT=REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
export SPRING_AI_AZURE_COGNITIVE_SEARCH_API_KEY=REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
export SPRING_AI_AZURE_COGNITIVE_SEARCH_INDEX=REPLACE_WITH_YOUR_INDEX_NAME_HERE
export SPRING_AI_AZURE_OPENAI_MODEL=REPLACE_WITH_YOUR_MODEL_NAME_HERE
Yeni bir Spring uygulaması oluşturma
Spring AI şu anda Azure AI sorgusunun AzureCognitiveSearchChatExtensionConfiguration
Alma Artırılmış Nesil (RAG) yöntemini kapsüllemesi ve ayrıntıları kullanıcıdan gizlemesine olanak sağlayan seçenekleri desteklememektedir. Alternatif olarak, Azure AI Search dizininizdeki verileri sorgulamak ve sorgunuzu artırmak için alınan belgeleri kullanmak için rag yöntemini doğrudan uygulamanızda çağırabilirsiniz.
Spring AI, VectorStore soyutlamasını destekler ve Özel verilerinizi sorgulamak için Bir Spring AI VectorStore uygulamasında Azure AI Search sarmalayabilirsiniz. Aşağıdaki proje, Azure AI Search tarafından desteklenen özel bir VectorStore uygular ve DOĞRUDAN RAG işlemlerini yürütür.
Bash penceresinde uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.
mkdir ai-custom-data-demo && cd ai-custom-data-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-custom-data-demo -n AICustomData --force --build maven -x
Oluşturulan dosya ve klasörler aşağıdaki yapıya benzer:
ai-custom-data-demo/
|-- pom.xml
|-- mvn
|-- mvn.cmd
|-- HELP.md
|-- src/
|-- main/
| |-- resources/
| | |-- application.properties
| |-- java/
| |-- com/
| |-- example/
| |-- aicustomdatademo/
| |-- AiCustomDataApplication.java
|-- test/
|-- java/
|-- com/
|-- example/
|-- aicustomdatademo/
|-- AiCustomDataApplicationTests.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 aşağıdaki içeriğe sahip dosyanın üzerine 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-custom-data-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>AICustomData</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>com.azure</groupId> <artifactId>azure-search-documents</artifactId> <version>11.6.0-beta.10</version> <exclusions> <!-- exclude this to avoid changing the default serializer and the null-value behavior --> <exclusion> <groupId>com.azure</groupId> <artifactId>azure-core-serializer-json-jackson</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories> </project>
src/main/java/com/example/aicustomdatademo klasöründen tercih ettiğiniz düzenleyicide veya IDE'de AiCustomDataApplication.java açın ve aşağıdaki kodu yapıştırın:
package com.example.aicustomdatademo; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; import org.springframework.ai.client.AiClient; import org.springframework.ai.document.Document; import org.springframework.ai.embedding.EmbeddingClient; import org.springframework.ai.prompt.Prompt; import org.springframework.ai.prompt.SystemPromptTemplate; import org.springframework.ai.prompt.messages.MessageType; import org.springframework.ai.prompt.messages.UserMessage; import org.springframework.ai.vectorstore.VectorStore; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import com.azure.core.credential.AzureKeyCredential; import com.azure.core.util.Context; import com.azure.search.documents.SearchClient; import com.azure.search.documents.SearchClientBuilder; import com.azure.search.documents.models.IndexingResult; import com.azure.search.documents.models.SearchOptions; import com.azure.search.documents.models.RawVectorQuery; import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.extern.jackson.Jacksonized; @SpringBootApplication public class AiCustomDataApplication implements CommandLineRunner { private static final String ROLE_INFO_KEY = "role"; private static final String template = """ You are a helpful assistant. Use the information from the DOCUMENTS section to augment answers. DOCUMENTS: {documents} """; @Value("${spring.ai.azure.cognitive-search.endpoint}") private String acsEndpoint; @Value("${spring.ai.azure.cognitive-search.api-key}") private String acsApiKey; @Value("${spring.ai.azure.cognitive-search.index}") private String acsIndexName; @Autowired private AiClient aiClient; @Autowired private EmbeddingClient embeddingClient; public static void main(String[] args) { SpringApplication.run(AiCustomDataApplication.class, args); } @Override public void run(String... args) throws Exception { System.out.println(String.format("Sending custom data prompt to AI service. One moment please...\r\n")); final var store = vectorStore(embeddingClient); final String question = "What are my available health plans?"; final var candidateDocs = store.similaritySearch(question); final var userMessage = new UserMessage(question); final String docPrompts = candidateDocs.stream().map(entry -> entry.getContent()).collect(Collectors.joining("\n")); final SystemPromptTemplate promptTemplate = new SystemPromptTemplate(template); final var systemMessage = promptTemplate.createMessage(Map.of("documents", docPrompts)); final var prompt = new Prompt(List.of(systemMessage, userMessage)); final var resps = aiClient.generate(prompt); 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())); }); } @Bean public VectorStore vectorStore(EmbeddingClient embeddingClient) { final SearchClient searchClient = new SearchClientBuilder() .endpoint(acsEndpoint) .credential(new AzureKeyCredential(acsApiKey)) .indexName(acsIndexName) .buildClient(); return new AzureCognitiveSearchVectorStore(searchClient, embeddingClient); } public static class AzureCognitiveSearchVectorStore implements VectorStore { private static final int DEFAULT_TOP_K = 4; private static final Double DEFAULT_SIMILARITY_THRESHOLD = 0.0; private SearchClient searchClient; private final EmbeddingClient embeddingClient; public AzureCognitiveSearchVectorStore(SearchClient searchClient, EmbeddingClient embeddingClient) { this.searchClient = searchClient; this.embeddingClient = embeddingClient; } @Override public void add(List<Document> documents) { final var docs = documents.stream().map(document -> { final var embeddings = embeddingClient.embed(document); return new DocEntry(document.getId(), "", document.getContent(), embeddings); }).toList(); searchClient.uploadDocuments(docs); } @Override public Optional<Boolean> delete(List<String> idList) { final List<DocEntry> docIds = idList.stream().map(id -> DocEntry.builder().id(id).build()) .toList(); var results = searchClient.deleteDocuments(docIds); boolean resSuccess = true; for (IndexingResult result : results.getResults()) if (!result.isSucceeded()) { resSuccess = false; break; } return Optional.of(resSuccess); } @Override public List<Document> similaritySearch(String query) { return similaritySearch(query, DEFAULT_TOP_K); } @Override public List<Document> similaritySearch(String query, int k) { return similaritySearch(query, k, DEFAULT_SIMILARITY_THRESHOLD); } @Override public List<Document> similaritySearch(String query, int k, double threshold) { final var searchQueryVector = new RawVectorQuery() .setVector(toFloatList(embeddingClient.embed(query))) .setKNearestNeighborsCount(k) .setFields("contentVector"); final var searchResults = searchClient.search(null, new SearchOptions().setVectorQueries(searchQueryVector), Context.NONE); return searchResults.stream() .filter(r -> r.getScore() >= threshold) .map(r -> { final DocEntry entry = r.getDocument(DocEntry.class); final Document doc = new Document(entry.getId(), entry.getContent(), Collections.emptyMap()); doc.setEmbedding(entry.getContentVector()); return doc; }) .collect(Collectors.toList()); } private List<Float> toFloatList(List<Double> doubleList) { return doubleList.stream().map(Double::floatValue).toList(); } } @Data @Builder @Jacksonized @AllArgsConstructor @NoArgsConstructor static class DocEntry { private String id; private String hash; private String content; private List<Double> contentVector; } }
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-07T14:40:45.250-06:00 INFO 18557 --- [ main] c.e.a.AiCustomDataApplication : No active profile set, falling back to 1 default profile: "default"
2023-11-07T14:40:46.035-06:00 INFO 18557 --- [ main] c.e.a.AiCustomDataApplication : Started AiCustomDataApplication in 1.095 seconds (process running for 1.397)
Sending custom data prompt to AI service. One moment please...
Prompt created 1 generated response(s).
Generated response from "assistant": The available health plans in the Contoso Electronics plan and benefit packages are the Northwind Health Plus and Northwind Standard plans.
Önkoşullar
Azure aboneliği - Ücretsiz bir abonelik oluşturun.
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.
Desteklenen bir bölgede ve desteklenen bir modelle dağıtılan bir Azure OpenAI kaynağı.
Azure OpenAI kaynağı için en azından Bilişsel Hizmetler Katkıda Bulunanı rolüne atandığınızdan emin olun.
Başvuru belgeleri | Kaynak kodu | Paketi (npm)Örnekler |
Azure OpenAI Studio kullanarak verilerinizi ekleme
İpucu
Verilerinizde Azure OpenAI için gerekli kaynakları program aracılığıyla oluşturmak için Azure Geliştirici CLI'sini kullanabilirsiniz
Azure OpenAI Studio'ya 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.
Kendi verilerinizi getirin kutucuğunu seçin
Sohbet oyun alanında Verilerinizi ekleyin'i ve ardından Veri kaynağı ekle'yi seçin
Görüntülenen bölmede Veri kaynağı seç'in altında Dosyaları karşıya yükle (önizleme) öğesini seçin. Azure OpenAI'ın verilerinize erişmek ve verileri dizine eklemek için hem depolama kaynağına hem de arama kaynağına ihtiyacı vardır.
İpucu
- Daha fazla bilgi için aşağıdaki kaynağa bakın:
- Uzun metin içeren belgeler ve veri kümeleri için kullanılabilir veri hazırlama betiğini kullanmanızı öneririz.
Azure OpenAI'nin depolama hesabınıza erişmesi için Çıkış noktaları arası kaynak paylaşımını (CORS) açmanız gerekir. Azure Blob Depolama kaynağı için CORS henüz açık değilse CORS'yi aç'ı seçin.
Azure AI Search kaynağınızı seçin ve bu kaynağı bağlamanın hesabınızda kullanıma neden olacağı onayını seçin. Sonra İleri'yi seçin.
Dosyaları karşıya yükle bölmesinde Dosyaya gözat'ı seçin ve önkoşullar bölümünden veya kendi verilerinizden indirdiğiniz dosyaları seçin. Ardından Dosyaları karşıya yükle'yi seçin. Sonra İleri'yi seçin.
Veri yönetimi bölmesinde, dizininiz için anlamsal aramayı mı yoksa vektör aramasını mı etkinleştirebileceğinizi seçebilirsiniz.
Önemli
- Anlamsal arama ve vektör araması ek fiyatlandırmaya tabidir. Anlamsal aramayı veya vektör aramasını etkinleştirmek için Temel veya daha yüksek SKU'yu seçmeniz gerekir. Daha fazla bilgi için bkz . fiyatlandırma katmanı farkı ve hizmet sınırları .
- Bilgi alma ve model yanıtının kalitesini artırmaya yardımcı olmak için şu veri kaynağı dilleri için anlamsal aramayı etkinleştirmenizi öneririz: İngilizce, Fransızca, İspanyolca, Portekizce, İtalyanca, Almanya, Çince (Zh), Japonca, Korece, Rusça ve Arapça.
Girdiğiniz ayrıntıları gözden geçirin ve Kaydet ve kapat'ı seçin. Artık modelle sohbet edebilirsiniz ve yanıt oluşturmak için verilerinizden alınan bilgileri kullanır.
Gerekli değişkenleri alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değişkenlere ihtiyacınız vardır. Bu hızlı başlangıçta verilerinizi bir Azure blob depolama hesabına yüklediğiniz ve bir Azure AI Search dizini oluşturduğunuz varsayılır. Bkz. Azure AI Studio kullanarak verilerinizi ekleme
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Azure portalından Azure OpenAI kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure AI Studio>Sohbet oyun alanı>Kod görünümünde bulabilirsiniz. Örnek uç nokta: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Bu değer, Azure portaldan Azure OpenAI kaynağınızı incelerken Kaynak yönetimi>Anahtarları ve Uç Nokta bölümünde bulunabilir. 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_OPENAI_DEPLOYMENT_ID |
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>Dağıtımları altında veya alternatif olarak Azure AI Studio'daki Yönetim>Dağıtımları altında bulunabilir. |
AZURE_AI_SEARCH_ENDPOINT |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulunabilir. |
AZURE_AI_SEARCH_API_KEY |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Ayarlar>Anahtarları bölümünde bulunabilir. Birincil yönetici anahtarını veya ikincil yönetici anahtarını 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_AI_SEARCH_INDEX |
Bu değer, verilerinizi depolamak için oluşturduğunuz dizinin adına karşılık gelir. Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulabilirsiniz. |
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Node.js uygulaması başlatma
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 istemcisini ve Azure Kimlik kitaplıklarını yükleyin:
npm install @azure/openai @azure/identity
Uygulamanızın package.json dosyası bağımlılıklarla güncelleştirilir.
JavaScript kodunu ekleme
Yeni projeyi istediğiniz yerde bir komut istemi açın ve adlı
ChatWithOwnData.js
yeni bir dosya oluşturun. Aşağıdaki kodu dosyayaChatWithOwnData.js
kopyalayın.const { DefaultAzureCredential, getBearerTokenProvider } = require("@azure/identity"); const { AzureOpenAI } = require("openai"); // Set the Azure and AI Search values from environment variables const endpoint = process.env["AZURE_OPENAI_ENDPOINT"]; const searchEndpoint = process.env["AZURE_AI_SEARCH_ENDPOINT"]; const searchIndex = process.env["AZURE_AI_SEARCH_INDEX"]; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); // Required Azure OpenAI deployment name and API version const deploymentName = "gpt-4"; const apiVersion = "2024-07-01-preview"; function getClient() { return new AzureOpenAI({ endpoint, azureADTokenProvider, deployment: deploymentName, apiVersion, }); } async function main() { const client = getClient(); const messages = [ { role: "user", content: "What are my available health plans?" }, ]; console.log(`Message: ${messages.map((m) => m.content).join("\n")}`); const events = await client.chat.completions.create({ stream: true, messages: [ { role: "user", content: "What's the most common feedback we received from our customers about the product?", }, ], max_tokens: 128, model: "", data_sources: [ { type: "azure_search", parameters: { endpoint: searchEndpoint, index_name: searchIndex, authentication: { type: "api_key", key: searchKey, }, }, }, ], }); let response = ""; for await (const event of events) { for (const choice of event.choices) { const newText = choice.delta?.content; if (newText) { response += newText; // To see streaming results as they arrive, uncomment line below // console.log(newText); } } } console.log(response); } main().catch((err) => { console.error("The sample encountered an error:", err); });
Uygulamayı aşağıdaki komutla çalıştırın:
node ChatWithOwnData.js
Ö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ı
Message: What are my available health plans?
The available health plans in the Contoso Electronics plan and benefit packages are the Northwind Health Plus and Northwind Standard plans.
Önkoşullar
Azure aboneliği - Ücretsiz bir abonelik oluşturun.
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.
Desteklenen bir bölgede ve desteklenen bir modelle dağıtılan bir Azure OpenAI kaynağı.
Azure OpenAI kaynağı için en azından Bilişsel Hizmetler Katkıda Bulunanı rolüne atandığınızdan emin olun.
Başvuru belgeleri | Kaynak kodu | Paketi (npm)Örnekler |
Azure OpenAI Studio kullanarak verilerinizi ekleme
İpucu
Verilerinizde Azure OpenAI için gerekli kaynakları program aracılığıyla oluşturmak için Azure Geliştirici CLI'sini kullanabilirsiniz
Azure OpenAI Studio'ya 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.
Kendi verilerinizi getirin kutucuğunu seçin
Sohbet oyun alanında Verilerinizi ekleyin'i ve ardından Veri kaynağı ekle'yi seçin
Görüntülenen bölmede Veri kaynağı seç'in altında Dosyaları karşıya yükle (önizleme) öğesini seçin. Azure OpenAI'ın verilerinize erişmek ve verileri dizine eklemek için hem depolama kaynağına hem de arama kaynağına ihtiyacı vardır.
İpucu
- Daha fazla bilgi için aşağıdaki kaynağa bakın:
- Uzun metin içeren belgeler ve veri kümeleri için kullanılabilir veri hazırlama betiğini kullanmanızı öneririz.
Azure OpenAI'nin depolama hesabınıza erişmesi için Çıkış noktaları arası kaynak paylaşımını (CORS) açmanız gerekir. Azure Blob Depolama kaynağı için CORS henüz açık değilse CORS'yi aç'ı seçin.
Azure AI Search kaynağınızı seçin ve bu kaynağı bağlamanın hesabınızda kullanıma neden olacağı onayını seçin. Sonra İleri'yi seçin.
Dosyaları karşıya yükle bölmesinde Dosyaya gözat'ı seçin ve önkoşullar bölümünden veya kendi verilerinizden indirdiğiniz dosyaları seçin. Ardından Dosyaları karşıya yükle'yi seçin. Sonra İleri'yi seçin.
Veri yönetimi bölmesinde, dizininiz için anlamsal aramayı mı yoksa vektör aramasını mı etkinleştirebileceğinizi seçebilirsiniz.
Önemli
- Anlamsal arama ve vektör araması ek fiyatlandırmaya tabidir. Anlamsal aramayı veya vektör aramasını etkinleştirmek için Temel veya daha yüksek SKU'yu seçmeniz gerekir. Daha fazla bilgi için bkz . fiyatlandırma katmanı farkı ve hizmet sınırları .
- Bilgi alma ve model yanıtının kalitesini artırmaya yardımcı olmak için şu veri kaynağı dilleri için anlamsal aramayı etkinleştirmenizi öneririz: İngilizce, Fransızca, İspanyolca, Portekizce, İtalyanca, Almanya, Çince (Zh), Japonca, Korece, Rusça ve Arapça.
Girdiğiniz ayrıntıları gözden geçirin ve Kaydet ve kapat'ı seçin. Artık modelle sohbet edebilirsiniz ve yanıt oluşturmak için verilerinizden alınan bilgileri kullanır.
Gerekli değişkenleri alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değişkenlere ihtiyacınız vardır. Bu hızlı başlangıçta verilerinizi bir Azure blob depolama hesabına yüklediğiniz ve bir Azure AI Search dizini oluşturduğunuz varsayılır. Bkz. Azure AI Studio kullanarak verilerinizi ekleme
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Azure portalından Azure OpenAI kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure AI Studio>Sohbet oyun alanı>Kod görünümünde bulabilirsiniz. Örnek uç nokta: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Bu değer, Azure portaldan Azure OpenAI kaynağınızı incelerken Kaynak yönetimi>Anahtarları ve Uç Nokta bölümünde bulunabilir. 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_OPENAI_DEPLOYMENT_ID |
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>Dağıtımları altında veya alternatif olarak Azure AI Studio'daki Yönetim>Dağıtımları altında bulunabilir. |
AZURE_AI_SEARCH_ENDPOINT |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulunabilir. |
AZURE_AI_SEARCH_API_KEY |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Ayarlar>Anahtarları bölümünde bulunabilir. Birincil yönetici anahtarını veya ikincil yönetici anahtarını 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_AI_SEARCH_INDEX |
Bu değer, verilerinizi depolamak için oluşturduğunuz dizinin adına karşılık gelir. Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulabilirsiniz. |
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Node.js uygulaması başlatma
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 istemcisini ve Azure Kimlik kitaplıklarını yükleyin:
npm install openai @azure/identity @azure/openai
@azure/openai/types
Özelliği için Azure OpenAI modelini genişletmek için data_sources
bağımlılık eklenir. Bu içeri aktarma yalnızca TypeScript için gereklidir.
Uygulamanızın package.json dosyası bağımlılıklarla güncelleştirilir.
TypeScript kodunu ekleme
Yeni projeyi istediğiniz yerde bir komut istemi açın ve adlı
ChatWithOwnData.ts
yeni bir dosya oluşturun. Aşağıdaki kodu dosyayaChatWithOwnData.ts
kopyalayın.import { AzureOpenAI } from "openai"; import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; import "@azure/openai/types"; // Set the Azure and AI Search values from environment variables const endpoint = process.env["AZURE_OPENAI_ENDPOINT"]; const searchEndpoint = process.env["AZURE_AI_SEARCH_ENDPOINT"]; const searchIndex = process.env["AZURE_AI_SEARCH_INDEX"]; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); // Required Azure OpenAI deployment name and API version const deploymentName = "gpt-4"; const apiVersion = "2024-07-01-preview"; function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, deployment: deploymentName, apiVersion, }); } async function main() { const client = getClient(); const messages = [ { role: "user", content: "What are my available health plans?" }, ]; console.log(`Message: ${messages.map((m) => m.content).join("\n")}`); const events = await client.chat.completions.create({ stream: true, messages: [ { role: "user", content: "What's the most common feedback we received from our customers about the product?", }, ], max_tokens: 128, model: "", data_sources: [ { type: "azure_search", parameters: { endpoint: searchEndpoint, index_name: searchIndex, authentication: { type: "api_key", key: searchKey, }, }, }, ], }); let response = ""; for await (const event of events) { for (const choice of event.choices) { const newText = choice.delta?.content; if (newText) { response += newText; // To see streaming results as they arrive, uncomment line below // console.log(newText); } } } console.log(response); } main().catch((err) => { console.error("The sample encountered an error:", err); });
Uygulamayı aşağıdaki komutla derleyin:
tsc
Uygulamayı aşağıdaki komutla çalıştırın:
node ChatWithOwnData.js
Ö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ı
Message: What are my available health plans?
The available health plans in the Contoso Electronics plan and benefit packages are the Northwind Health Plus and Northwind Standard plans.
Önkoşullar
Aşağıdaki kaynaklar:
- Azure OpenAI
- Azure Blob Depolama
- Azure AI Arama
- Desteklenen bir bölgede ve desteklenen bir modelle dağıtılan bir Azure OpenAI kaynağı.
- Azure OpenAI kaynağı için en azından Bilişsel Hizmetler Katkıda Bulunanı rolüne atandığınızdan emin olun.
- Kendi verileriniz yoksa GitHub'dan örnek verileri indirin.
Başvuru | Kaynak kodu | Paketi (pypi)Örnekleri |
Bu bağlantılar Python için OpenAI API'sine başvurur. Azure'a özgü OpenAI Python SDK'sı yoktur. OpenAI hizmetleri ile Azure OpenAI hizmetleri arasında geçiş yapmayı öğrenin.
Azure OpenAI Studio kullanarak verilerinizi ekleme
İpucu
Verilerinizde Azure OpenAI için gerekli kaynakları program aracılığıyla oluşturmak için Azure Geliştirici CLI'sini kullanabilirsiniz
Azure OpenAI Studio'ya 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.
Kendi verilerinizi getirin kutucuğunu seçin
Sohbet oyun alanında Verilerinizi ekleyin'i ve ardından Veri kaynağı ekle'yi seçin
Görüntülenen bölmede Veri kaynağı seç'in altında Dosyaları karşıya yükle (önizleme) öğesini seçin. Azure OpenAI'ın verilerinize erişmek ve verileri dizine eklemek için hem depolama kaynağına hem de arama kaynağına ihtiyacı vardır.
İpucu
- Daha fazla bilgi için aşağıdaki kaynağa bakın:
- Uzun metin içeren belgeler ve veri kümeleri için kullanılabilir veri hazırlama betiğini kullanmanızı öneririz.
Azure OpenAI'nin depolama hesabınıza erişmesi için Çıkış noktaları arası kaynak paylaşımını (CORS) açmanız gerekir. Azure Blob Depolama kaynağı için CORS henüz açık değilse CORS'yi aç'ı seçin.
Azure AI Search kaynağınızı seçin ve bu kaynağı bağlamanın hesabınızda kullanıma neden olacağı onayını seçin. Sonra İleri'yi seçin.
Dosyaları karşıya yükle bölmesinde Dosyaya gözat'ı seçin ve önkoşullar bölümünden veya kendi verilerinizden indirdiğiniz dosyaları seçin. Ardından Dosyaları karşıya yükle'yi seçin. Sonra İleri'yi seçin.
Veri yönetimi bölmesinde, dizininiz için anlamsal aramayı mı yoksa vektör aramasını mı etkinleştirebileceğinizi seçebilirsiniz.
Önemli
- Anlamsal arama ve vektör araması ek fiyatlandırmaya tabidir. Anlamsal aramayı veya vektör aramasını etkinleştirmek için Temel veya daha yüksek SKU'yu seçmeniz gerekir. Daha fazla bilgi için bkz . fiyatlandırma katmanı farkı ve hizmet sınırları .
- Bilgi alma ve model yanıtının kalitesini artırmaya yardımcı olmak için şu veri kaynağı dilleri için anlamsal aramayı etkinleştirmenizi öneririz: İngilizce, Fransızca, İspanyolca, Portekizce, İtalyanca, Almanya, Çince (Zh), Japonca, Korece, Rusça ve Arapça.
Girdiğiniz ayrıntıları gözden geçirin ve Kaydet ve kapat'ı seçin. Artık modelle sohbet edebilirsiniz ve yanıt oluşturmak için verilerinizden alınan bilgileri kullanır.
Gerekli değişkenleri alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değişkenlere ihtiyacınız vardır. Bu hızlı başlangıçta verilerinizi bir Azure blob depolama hesabına yüklediğiniz ve bir Azure AI Search dizini oluşturduğunuz varsayılır. Bkz. Azure AI Studio kullanarak verilerinizi ekleme
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Azure portalından Azure OpenAI kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure AI Studio>Sohbet oyun alanı>Kod görünümünde bulabilirsiniz. Örnek uç nokta: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Bu değer, Azure portaldan Azure OpenAI kaynağınızı incelerken Kaynak yönetimi>Anahtarları ve Uç Nokta bölümünde bulunabilir. 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_OPENAI_DEPLOYMENT_ID |
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>Dağıtımları altında veya alternatif olarak Azure AI Studio'daki Yönetim>Dağıtımları altında bulunabilir. |
AZURE_AI_SEARCH_ENDPOINT |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulunabilir. |
AZURE_AI_SEARCH_API_KEY |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Ayarlar>Anahtarları bölümünde bulunabilir. Birincil yönetici anahtarını veya ikincil yönetici anahtarını 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_AI_SEARCH_INDEX |
Bu değer, verilerinizi depolamak için oluşturduğunuz dizinin adına karşılık gelir. Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulabilirsiniz. |
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Python ortamı oluşturma
- Projeniz için openai-python adlı yeni bir klasör ve main.py adlı yeni bir Python kod dosyası oluşturun. Bu dizine geçin:
mkdir openai-python
cd openai-python
- Aşağıdaki Python Kitaplıklarını yükleyin:
pip install openai
pip install python-dotenv
Python uygulamasını oluşturma
- Proje dizininden main.py dosyasını açın ve aşağıdaki kodu ekleyin:
import os
import openai
import dotenv
dotenv.load_dotenv()
endpoint = os.environ.get("AZURE_OPENAI_ENDPOINT")
api_key = os.environ.get("AZURE_OPENAI_API_KEY")
deployment = os.environ.get("AZURE_OPENAI_DEPLOYMENT_ID")
client = openai.AzureOpenAI(
azure_endpoint=endpoint,
api_key=api_key,
api_version="2024-02-01",
)
completion = client.chat.completions.create(
model=deployment,
messages=[
{
"role": "user",
"content": "What are my available health plans?",
},
],
extra_body={
"data_sources":[
{
"type": "azure_search",
"parameters": {
"endpoint": os.environ["AZURE_AI_SEARCH_ENDPOINT"],
"index_name": os.environ["AZURE_AI_SEARCH_INDEX"],
"authentication": {
"type": "api_key",
"key": os.environ["AZURE_AI_SEARCH_API_KEY"],
}
}
}
],
}
)
print(completion.model_dump_json(indent=2))
Ö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.
- Şu kodu yürütün:
python main.py
Uygulama, yanıtı birçok senaryoda kullanıma uygun bir JSON biçiminde yazdırır. Hem sorgunuzun yanıtlarını hem de karşıya yüklediğiniz dosyalardan alıntıları içerir.
Önkoşullar
Aşağıdaki kaynaklar:
- Azure OpenAI
- Azure Blob Depolama
- Azure AI Arama
- Desteklenen bir bölgede ve desteklenen bir modelle dağıtılan bir Azure OpenAI kaynağı.
- Azure OpenAI kaynağı için en azından Bilişsel Hizmetler Katkıda Bulunanı rolüne atandığınızdan emin olun.
- Kendi verileriniz yoksa GitHub'dan örnek verileri indirin.
Azure OpenAI Studio kullanarak verilerinizi ekleme
İpucu
Verilerinizde Azure OpenAI için gerekli kaynakları program aracılığıyla oluşturmak için Azure Geliştirici CLI'sini kullanabilirsiniz
Azure OpenAI Studio'ya 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.
Kendi verilerinizi getirin kutucuğunu seçin
Sohbet oyun alanında Verilerinizi ekleyin'i ve ardından Veri kaynağı ekle'yi seçin
Görüntülenen bölmede Veri kaynağı seç'in altında Dosyaları karşıya yükle (önizleme) öğesini seçin. Azure OpenAI'ın verilerinize erişmek ve verileri dizine eklemek için hem depolama kaynağına hem de arama kaynağına ihtiyacı vardır.
İpucu
- Daha fazla bilgi için aşağıdaki kaynağa bakın:
- Uzun metin içeren belgeler ve veri kümeleri için kullanılabilir veri hazırlama betiğini kullanmanızı öneririz.
Azure OpenAI'nin depolama hesabınıza erişmesi için Çıkış noktaları arası kaynak paylaşımını (CORS) açmanız gerekir. Azure Blob Depolama kaynağı için CORS henüz açık değilse CORS'yi aç'ı seçin.
Azure AI Search kaynağınızı seçin ve bu kaynağı bağlamanın hesabınızda kullanıma neden olacağı onayını seçin. Sonra İleri'yi seçin.
Dosyaları karşıya yükle bölmesinde Dosyaya gözat'ı seçin ve önkoşullar bölümünden veya kendi verilerinizden indirdiğiniz dosyaları seçin. Ardından Dosyaları karşıya yükle'yi seçin. Sonra İleri'yi seçin.
Veri yönetimi bölmesinde, dizininiz için anlamsal aramayı mı yoksa vektör aramasını mı etkinleştirebileceğinizi seçebilirsiniz.
Önemli
- Anlamsal arama ve vektör araması ek fiyatlandırmaya tabidir. Anlamsal aramayı veya vektör aramasını etkinleştirmek için Temel veya daha yüksek SKU'yu seçmeniz gerekir. Daha fazla bilgi için bkz . fiyatlandırma katmanı farkı ve hizmet sınırları .
- Bilgi alma ve model yanıtının kalitesini artırmaya yardımcı olmak için şu veri kaynağı dilleri için anlamsal aramayı etkinleştirmenizi öneririz: İngilizce, Fransızca, İspanyolca, Portekizce, İtalyanca, Almanya, Çince (Zh), Japonca, Korece, Rusça ve Arapça.
Girdiğiniz ayrıntıları gözden geçirin ve Kaydet ve kapat'ı seçin. Artık modelle sohbet edebilirsiniz ve yanıt oluşturmak için verilerinizden alınan bilgileri kullanır.
Gerekli değişkenleri alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değişkenlere ihtiyacınız vardır. Bu hızlı başlangıçta verilerinizi bir Azure blob depolama hesabına yüklediğiniz ve bir Azure AI Search dizini oluşturduğunuz varsayılır. Bkz. Azure AI Studio kullanarak verilerinizi ekleme
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Azure portalından Azure OpenAI kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure AI Studio>Sohbet oyun alanı>Kod görünümünde bulabilirsiniz. Örnek uç nokta: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Bu değer, Azure portaldan Azure OpenAI kaynağınızı incelerken Kaynak yönetimi>Anahtarları ve Uç Nokta bölümünde bulunabilir. 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_OPENAI_DEPLOYMENT_ID |
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>Dağıtımları altında veya alternatif olarak Azure AI Studio'daki Yönetim>Dağıtımları altında bulunabilir. |
AZURE_AI_SEARCH_ENDPOINT |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulunabilir. |
AZURE_AI_SEARCH_API_KEY |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Ayarlar>Anahtarları bölümünde bulunabilir. Birincil yönetici anahtarını veya ikincil yönetici anahtarını 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_AI_SEARCH_INDEX |
Bu değer, verilerinizi depolamak için oluşturduğunuz dizinin adına karşılık gelir. Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulabilirsiniz. |
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Örnek PowerShell komutları
Azure OpenAI sohbet modelleri, konuşma olarak biçimlendirilmiş girişlerle çalışacak şekilde iyileştirilmiştir. değişkeni, messages
konuşmada sistem, kullanıcı, araç ve yardımcı tarafından ayrılmış farklı rollere sahip bir sözlük dizisi geçirir. değişkeni dataSources
Azure Bilişsel Arama dizininize bağlanır ve Azure OpenAI modellerinin verilerinizi kullanarak yanıt vermesini sağlar.
Modelden bir yanıt tetikleyebilmek için yanıt vermenin yardımcının sırası olduğunu belirten bir kullanıcı iletisiyle bitirmelisiniz.
İpucu
Modelin yanıtını değiştirmek için kullanabileceğiniz veya top_p
gibi temperature
çeşitli parametreler vardır. Daha fazla bilgi için başvuru belgelerine bakın.
# 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-07-01-preview' # 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.
}
$acs = @{
search_endpoint = 'YOUR ACS ENDPOINT' # your endpoint should look like the following https://YOUR_RESOURCE_NAME.search.windows.net/
search_key = 'YOUR-ACS-KEY-HERE' # or use the Get-Secret cmdlet to retrieve the value
search_index = 'YOUR-INDEX-NAME-HERE' # the name of your ACS index
}
# Completion text
$body = @{
dataSources = @(
@{
type = 'AzureCognitiveSearch'
parameters = @{
endpoint = $acs.search_endpoint
key = $acs.search_key
indexName = $acs.search_index
}
}
)
messages = @(
@{
role = 'user'
content = 'What are my available health plans?'
}
)
} | convertto-json -depth 5
# Header for authentication
$headers = [ordered]@{
'api-key' = $openai.api_key
}
# Send a completion call to generate an answer
$url = "$($openai.api_base)/openai/deployments/$($openai.name)/extensions/chat/completions?api-version=$($openai.api_version)"
$response = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json'
return $response.choices.messages[1].content
Örnek çıkış
The available health plans in the Contoso Electronics plan and benefit packages are the Northwind Health Plus and Northwind Standard plans.
Ö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.
Web uygulaması kullanarak modelinizle sohbet etme
Verilerinizi kullanan Azure OpenAI modeliyle sohbet etmeye başlamak için, Azure OpenAI studio'yu veya GitHub'da sağladığımız örnek kodu kullanarak bir web uygulaması dağıtabilirsiniz. Bu uygulama Azure app service kullanarak dağıtılır ve sorgu göndermek için bir kullanıcı arabirimi sağlar. Bu uygulama, verilerinizi kullanan Azure OpenAI modelleriyle veya verilerinizi kullanmayan modellerle kullanılabilir. Gereksinimler, kurulum ve dağıtım yönergeleri için depodaki benioku dosyasına bakın. İsteğe bağlı olarak, kaynak kodda değişiklik yaparak web uygulamasının ön uç ve arka uç mantığını özelleştirebilirsiniz.
Önkoşullar
Aşağıdaki kaynaklar:
- Azure OpenAI
- Azure Blob Depolama
- Azure AI Arama
- Desteklenen bir bölgede ve desteklenen bir modelle dağıtılan bir Azure OpenAI kaynağı.
- Azure OpenAI kaynağı için en azından Bilişsel Hizmetler Katkıda Bulunanı rolüne atandığınızdan emin olun.
- Kendi verileriniz yoksa GitHub'dan örnek verileri indirin.
Başvuru | Kaynak Kodu | Paketi (Go)Örnekleri |
Azure OpenAI Studio kullanarak verilerinizi ekleme
İpucu
Verilerinizde Azure OpenAI için gerekli kaynakları program aracılığıyla oluşturmak için Azure Geliştirici CLI'sini kullanabilirsiniz
Azure OpenAI Studio'ya 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.
Kendi verilerinizi getirin kutucuğunu seçin
Sohbet oyun alanında Verilerinizi ekleyin'i ve ardından Veri kaynağı ekle'yi seçin
Görüntülenen bölmede Veri kaynağı seç'in altında Dosyaları karşıya yükle (önizleme) öğesini seçin. Azure OpenAI'ın verilerinize erişmek ve verileri dizine eklemek için hem depolama kaynağına hem de arama kaynağına ihtiyacı vardır.
İpucu
- Daha fazla bilgi için aşağıdaki kaynağa bakın:
- Uzun metin içeren belgeler ve veri kümeleri için kullanılabilir veri hazırlama betiğini kullanmanızı öneririz.
Azure OpenAI'nin depolama hesabınıza erişmesi için Çıkış noktaları arası kaynak paylaşımını (CORS) açmanız gerekir. Azure Blob Depolama kaynağı için CORS henüz açık değilse CORS'yi aç'ı seçin.
Azure AI Search kaynağınızı seçin ve bu kaynağı bağlamanın hesabınızda kullanıma neden olacağı onayını seçin. Sonra İleri'yi seçin.
Dosyaları karşıya yükle bölmesinde Dosyaya gözat'ı seçin ve önkoşullar bölümünden veya kendi verilerinizden indirdiğiniz dosyaları seçin. Ardından Dosyaları karşıya yükle'yi seçin. Sonra İleri'yi seçin.
Veri yönetimi bölmesinde, dizininiz için anlamsal aramayı mı yoksa vektör aramasını mı etkinleştirebileceğinizi seçebilirsiniz.
Önemli
- Anlamsal arama ve vektör araması ek fiyatlandırmaya tabidir. Anlamsal aramayı veya vektör aramasını etkinleştirmek için Temel veya daha yüksek SKU'yu seçmeniz gerekir. Daha fazla bilgi için bkz . fiyatlandırma katmanı farkı ve hizmet sınırları .
- Bilgi alma ve model yanıtının kalitesini artırmaya yardımcı olmak için şu veri kaynağı dilleri için anlamsal aramayı etkinleştirmenizi öneririz: İngilizce, Fransızca, İspanyolca, Portekizce, İtalyanca, Almanya, Çince (Zh), Japonca, Korece, Rusça ve Arapça.
Girdiğiniz ayrıntıları gözden geçirin ve Kaydet ve kapat'ı seçin. Artık modelle sohbet edebilirsiniz ve yanıt oluşturmak için verilerinizden alınan bilgileri kullanır.
Gerekli değişkenleri alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değişkenlere ihtiyacınız vardır. Bu hızlı başlangıçta verilerinizi bir Azure blob depolama hesabına yüklediğiniz ve bir Azure AI Search dizini oluşturduğunuz varsayılır. Bkz. Azure AI Studio kullanarak verilerinizi ekleme
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Azure portalından Azure OpenAI kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure AI Studio>Sohbet oyun alanı>Kod görünümünde bulabilirsiniz. Örnek uç nokta: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Bu değer, Azure portaldan Azure OpenAI kaynağınızı incelerken Kaynak yönetimi>Anahtarları ve Uç Nokta bölümünde bulunabilir. 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_OPENAI_DEPLOYMENT_ID |
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>Dağıtımları altında veya alternatif olarak Azure AI Studio'daki Yönetim>Dağıtımları altında bulunabilir. |
AZURE_AI_SEARCH_ENDPOINT |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulunabilir. |
AZURE_AI_SEARCH_API_KEY |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Ayarlar>Anahtarları bölümünde bulunabilir. Birincil yönetici anahtarını veya ikincil yönetici anahtarını 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_AI_SEARCH_INDEX |
Bu değer, verilerinizi depolamak için oluşturduğunuz dizinin adına karşılık gelir. Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulabilirsiniz. |
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Go ortamı oluşturma
Projeniz için openai-go adlı yeni bir klasör ve sample.go adlı yeni bir Go kod dosyası oluşturun. Bu dizine geçin:
mkdir openai-go cd openai-go
Aşağıdaki Go paketlerini yükleyin:
go get github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai
Kodunuz için bağımlılık izlemeyi etkinleştirin.
go mod init example/azure-openai
Go uygulamasını oluşturma
Proje dizininden sample.go dosyasını açın ve aşağıdaki kodu ekleyin:
package main import ( "context" "fmt" "log" "os" "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" ) func main() { azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY") modelDeploymentID := os.Getenv("AZURE_OPENAI_DEPLOYMENT_ID") // Ex: "https://<your-azure-openai-host>.openai.azure.com" azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT") // Azure AI Search configuration searchIndex := os.Getenv("AZURE_AI_SEARCH_INDEX") searchEndpoint := os.Getenv("AZURE_AI_SEARCH_ENDPOINT") searchAPIKey := os.Getenv("AZURE_AI_SEARCH_API_KEY") if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" || searchIndex == "" || searchEndpoint == "" || searchAPIKey == "" { fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n") return } keyCredential := azcore.NewKeyCredential(azureOpenAIKey) // In Azure OpenAI you must deploy a model before you can use it in your client. For more information // see here: https://video2.skills-academy.com/azure/cognitive-services/openai/how-to/create-resource client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil) if err != nil { // TODO: Update the following line with your application specific error handling logic log.Fatalf("ERROR: %s", err) } resp, err := client.GetChatCompletions(context.TODO(), azopenai.ChatCompletionsOptions{ Messages: []azopenai.ChatRequestMessageClassification{ &azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("What are my available health plans?")}, }, MaxTokens: to.Ptr[int32](512), AzureExtensionsOptions: []azopenai.AzureChatExtensionConfigurationClassification{ &azopenai.AzureSearchChatExtensionConfiguration{ // This allows Azure OpenAI to use an Azure AI Search index. // // > Because the model has access to, and can reference specific sources to support its responses, answers are not only based on its pretrained knowledge // > but also on the latest information available in the designated data source. This grounding data also helps the model avoid generating responses // > based on outdated or incorrect information. // // Quote from here: https://video2.skills-academy.com/en-us/azure/ai-services/openai/concepts/use-your-data Parameters: &azopenai.AzureSearchChatExtensionParameters{ Endpoint: &searchEndpoint, IndexName: &searchIndex, Authentication: &azopenai.OnYourDataAPIKeyAuthenticationOptions{ Key: &searchAPIKey, }, }, }, }, DeploymentName: &modelDeploymentID, }, nil) if err != nil { // TODO: Update the following line with your application specific error handling logic log.Fatalf("ERROR: %s", err) } fmt.Fprintf(os.Stderr, "Extensions Context Role: %s\nExtensions Context (length): %d\n", *resp.Choices[0].Message.Role, len(*resp.Choices[0].Message.Content)) fmt.Fprintf(os.Stderr, "ChatRole: %s\nChat content: %s\n", *resp.Choices[0].Message.Role, *resp.Choices[0].Message.Content, ) }
Şu kodu yürütün:
go run sample.go
Uygulama, hem sorgunuzun yanıtlarını hem de karşıya yüklediğiniz dosyalardan alıntıları içeren yanıtı yazdırır.
Önkoşullar
Aşağıdaki kaynaklar:
- Azure OpenAI
- Azure Blob Depolama
- Azure AI Arama
- Desteklenen bir bölgede ve desteklenen bir modelle dağıtılan bir Azure OpenAI kaynağı.
- Azure OpenAI kaynağı için en azından Bilişsel Hizmetler Katkıda Bulunanı rolüne atandığınızdan emin olun.
- Kendi verileriniz yoksa GitHub'dan örnek verileri indirin.
Azure OpenAI Studio kullanarak verilerinizi ekleme
İpucu
Verilerinizde Azure OpenAI için gerekli kaynakları program aracılığıyla oluşturmak için Azure Geliştirici CLI'sini kullanabilirsiniz
Azure OpenAI Studio'ya 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.
Kendi verilerinizi getirin kutucuğunu seçin
Sohbet oyun alanında Verilerinizi ekleyin'i ve ardından Veri kaynağı ekle'yi seçin
Görüntülenen bölmede Veri kaynağı seç'in altında Dosyaları karşıya yükle (önizleme) öğesini seçin. Azure OpenAI'ın verilerinize erişmek ve verileri dizine eklemek için hem depolama kaynağına hem de arama kaynağına ihtiyacı vardır.
İpucu
- Daha fazla bilgi için aşağıdaki kaynağa bakın:
- Uzun metin içeren belgeler ve veri kümeleri için kullanılabilir veri hazırlama betiğini kullanmanızı öneririz.
Azure OpenAI'nin depolama hesabınıza erişmesi için Çıkış noktaları arası kaynak paylaşımını (CORS) açmanız gerekir. Azure Blob Depolama kaynağı için CORS henüz açık değilse CORS'yi aç'ı seçin.
Azure AI Search kaynağınızı seçin ve bu kaynağı bağlamanın hesabınızda kullanıma neden olacağı onayını seçin. Sonra İleri'yi seçin.
Dosyaları karşıya yükle bölmesinde Dosyaya gözat'ı seçin ve önkoşullar bölümünden veya kendi verilerinizden indirdiğiniz dosyaları seçin. Ardından Dosyaları karşıya yükle'yi seçin. Sonra İleri'yi seçin.
Veri yönetimi bölmesinde, dizininiz için anlamsal aramayı mı yoksa vektör aramasını mı etkinleştirebileceğinizi seçebilirsiniz.
Önemli
- Anlamsal arama ve vektör araması ek fiyatlandırmaya tabidir. Anlamsal aramayı veya vektör aramasını etkinleştirmek için Temel veya daha yüksek SKU'yu seçmeniz gerekir. Daha fazla bilgi için bkz . fiyatlandırma katmanı farkı ve hizmet sınırları .
- Bilgi alma ve model yanıtının kalitesini artırmaya yardımcı olmak için şu veri kaynağı dilleri için anlamsal aramayı etkinleştirmenizi öneririz: İngilizce, Fransızca, İspanyolca, Portekizce, İtalyanca, Almanya, Çince (Zh), Japonca, Korece, Rusça ve Arapça.
Girdiğiniz ayrıntıları gözden geçirin ve Kaydet ve kapat'ı seçin. Artık modelle sohbet edebilirsiniz ve yanıt oluşturmak için verilerinizden alınan bilgileri kullanır.
Gerekli değişkenleri alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için aşağıdaki değişkenlere ihtiyacınız vardır. Bu hızlı başlangıçta verilerinizi bir Azure blob depolama hesabına yüklediğiniz ve bir Azure AI Search dizini oluşturduğunuz varsayılır. Bkz. Azure AI Studio kullanarak verilerinizi ekleme
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Azure portalından Azure OpenAI kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, değeri Azure AI Studio>Sohbet oyun alanı>Kod görünümünde bulabilirsiniz. Örnek uç nokta: https://my-resoruce.openai.azure.com . |
AZURE_OPENAI_API_KEY |
Bu değer, Azure portaldan Azure OpenAI kaynağınızı incelerken Kaynak yönetimi>Anahtarları ve Uç Nokta bölümünde bulunabilir. 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_OPENAI_DEPLOYMENT_ID |
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>Dağıtımları altında veya alternatif olarak Azure AI Studio'daki Yönetim>Dağıtımları altında bulunabilir. |
AZURE_AI_SEARCH_ENDPOINT |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulunabilir. |
AZURE_AI_SEARCH_API_KEY |
Bu değer, Azure portalından Azure AI Search kaynağınızı incelerken Ayarlar>Anahtarları bölümünde bulunabilir. Birincil yönetici anahtarını veya ikincil yönetici anahtarını 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_AI_SEARCH_INDEX |
Bu değer, verilerinizi depolamak için oluşturduğunuz dizinin adına karşılık gelir. Azure portalından Azure AI Search kaynağınızı incelerken Genel Bakış bölümünde bulabilirsiniz. |
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_ENDPOINT REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AZURE_OPENAI_API_KEY REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AZURE_OPENAI_DEPLOYMENT_ID REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx AZURE_AI_SEARCH_ENDPOINT REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx AZURE_AI_SEARCH_API_KEY REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx AZURE_AI_SEARCH_INDEX REPLACE_WITH_YOUR_INDEX_NAME_HERE
Örnek cURL komutları
Azure OpenAI sohbet modelleri, konuşma olarak biçimlendirilmiş girişlerle çalışacak şekilde iyileştirilmiştir. değişkeni, messages
konuşmada sistem, kullanıcı, araç ve yardımcı tarafından ayrılmış farklı rollere sahip bir sözlük dizisi geçirir. dataSources
Değişkeni Azure AI Search dizininize bağlanır ve Azure OpenAI modellerinin verilerinizi kullanarak yanıt vermesini sağlar.
Modelden bir yanıt tetikleyebilmek için yanıt vermenin yardımcının sırası olduğunu belirten bir kullanıcı iletisiyle bitirmelisiniz.
İpucu
Modelin yanıtını değiştirmek için kullanabileceğiniz veya top_p
gibi temperature
çeşitli parametreler vardır. Daha fazla bilgi için başvuru belgelerine bakın.
curl -i -X POST $AZURE_OPENAI_ENDPOINT/openai/deployments/$AZURE_OPENAI_DEPLOYMENT_ID/chat/completions?api-version=2024-02-15-preview \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d \
'
{
"data_sources": [
{
"type": "azure_search",
"parameters": {
"endpoint": "'$AZURE_AI_SEARCH_ENDPOINT'",
"key": "'$AZURE_AI_SEARCH_API_KEY'",
"index_name": "'$AZURE_AI_SEARCH_INDEX'"
}
}
],
"messages": [
{
"role": "user",
"content": "What are my available health plans?"
}
]
}
'
Örnek çıkış
{
"id": "12345678-1a2b-3c4e5f-a123-12345678abcd",
"model": "gpt-4",
"created": 1709835345,
"object": "extensions.chat.completion",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "The available health plans in the Contoso Electronics plan and benefit packages are the Northwind Health Plus and Northwind Standard plans. [doc1].",
"end_turn": true,
"context": {
"citations": [
{
"content": "...",
"title": "...",
"url": "https://mysearch.blob.core.windows.net/xyz/001.txt",
"filepath": "001.txt",
"chunk_id": "0"
}
],
"intent": "[\"Available health plans\"]"
}
}
}
],
"usage": {
"prompt_tokens": 3779,
"completion_tokens": 105,
"total_tokens": 3884
}
}
Web uygulaması kullanarak modelinizle sohbet etme
Verilerinizi kullanan Azure OpenAI modeliyle sohbet etmeye başlamak için, Azure OpenAI studio'yu veya GitHub'da sağladığımız örnek kodu kullanarak bir web uygulaması dağıtabilirsiniz. Bu uygulama Azure app service kullanarak dağıtılır ve sorgu göndermek için bir kullanıcı arabirimi sağlar. Bu uygulama, verilerinizi kullanan Azure OpenAI modelleriyle veya verilerinizi kullanmayan modellerle kullanılabilir. Gereksinimler, kurulum ve dağıtım yönergeleri için depodaki benioku dosyasına bakın. İsteğe bağlı olarak, kaynak kodda değişiklik yaparak web uygulamasının ön uç ve arka uç mantığını özelleştirebilirsiniz.
Kaynakları temizleme
Azure OpenAI veya Azure AI Search 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
- Azure OpenAI Hizmeti'nde verilerinizi kullanma hakkında daha fazla bilgi edinin
- GitHub'da sohbet uygulaması örnek kodu.