Hızlı Başlangıç: Azure OpenAI Yardımcılarını kullanmaya başlama (Önizleme)
Azure OpenAI Yardımcıları (Önizleme), özel talimatlar aracılığıyla ihtiyaçlarınıza göre uyarlanmış ve kod yorumlayıcı ve özel işlevler gibi gelişmiş araçlarla güçlendirilmiş yapay zeka yardımcıları oluşturmanıza olanak tanır.
Önemli
Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun.
- Dağıtılan bir modele sahip bir Azure AI hub kaynağı. Model dağıtımı hakkında daha fazla bilgi için bkz. kaynak dağıtım kılavuzu.
- Azure Yapay Zeka Stüdyosu'ndaki bir Azure Yapay Zeka projesi.
Azure AI Studio'ya gidin (Önizleme)
Azure AI Studio, daha hızlı olan ve daha fazla dosyayı destekleyen dosya arama aracı gibi çeşitli yükseltmeler sağlayan Yardımcılar v2'yi kullanmanıza olanak tanır.
Azure AI Studio'da projenize gidin veya yeni bir proje oluşturun.
Projenize genel bakış bölümünde Project oyun alanı altında bulunan Yardımcılar'ı seçin.
Asistanlar oyun alanı, herhangi bir kod çalıştırmanıza gerek kalmadan yapay zeka yardımcılarını keşfetmenize, prototip oluşturmanıza ve test etmenize olanak tanır. Bu sayfadan, yeni fikirleri hızla yineleyebilir ve denemeler yapabilirsiniz.
Oyun alanı, Yardımcınızı yapılandırmak için çeşitli seçenekler sağlar. Aşağıdaki adımlarda, yeni bir yapay zeka yardımcısı oluşturmak için Yardımcı kurulum bölmesini kullanacaksınız.
Ad Açıklama Yardımcının adı Belirli bir modelle ilişkilendirilmiş dağıtım adınız. Yönergeler Yönergeler sistem mesajlarına benzer, modele nasıl davranması gerektiği ve bir yanıt oluştururken başvurması gereken bağlam hakkında rehberlik verdiğiniz yerdir. Yardımcının kişiliğini açıklayabilir, neye cevap verip vermemesi gerektiğini söyleyebilir ve yanıtları nasıl biçimlendireceğini anlatabilirsiniz. Yanıtları cevaplarken atması gereken adımlara örnekler de sağlayabilirsiniz. Dağıtım Burası yardımcınızla hangi model dağıtımını kullanacağınızı ayarladığınız yerdir. İşlevler API çağrılarını formüle etmek ve veri çıkışlarını belirtimlerinize göre yapılandırmak için modeller için özel işlev tanımları oluşturun. Bu hızlı başlangıçta kullanılmaz. Kod yorumlayıcı Kod yorumlayıcı, modelin kodu test etmesine ve yürütmesine izin vermek için kullanılabilecek korumalı bir Python ortamına erişim sağlar. Dosyalar Araçlarla kullanmak için maksimum dosya boyutu 512 MB olan en fazla 10.000 dosya yükleyebilirsiniz. Bu hızlı başlangıçta kullanılmaz.
İlk Yardımcınızı oluşturma
Dağıtımlar açılan listesinden dağıtımınızı seçin.
Yardımcı kurulumu açılan listesinden Yeni'yi seçin.
Yardımcınıza bir ad verin.
Şu yönergeleri girin: "Matematik sorularını yanıtlamaya yardımcı olmak için kod yazabilen bir yapay zeka yardımcısısınız"
Bir model dağıtımı seçin. En son gpt-4 modellerinden biriyle test yapmanızı öneririz.
Kod yorumlayıcısını etkinleştirme iki durumlu düğmesini seçin.
Kaydet'i seçin.
Yardımcının yanıtlaması için bir soru girin: "Denklemi
3x + 11 = 14
çözmem gerekiyor. Bana yardım edebilir misin?"Ekle ve çalıştır düğmesini seçin
The solution to the equation (3x + 11 = 14) is (x = 1).
Yanıtın doğru olduğunu görebiliriz ancak modelin bu yanıta ulaşmak için kod yorumlayıcı kullandığını ve yazdığı kodun yalnızca modelin eğitim verilerinden bir yanıtı yinelemek yerine geçerli olduğunu onaylamak için başka bir soru soracağız.
Aşağıdaki soruyu girin: "Bu çözümü almak için çalıştırdığınız kodu göster."
Sure. The code is very straightforward
# calculation x = (14 - 11) / 3 x
First, we subtract 11 from 14, then divide the result by 3. This gives us the value of x which is 1.0.
Ayrıca, kod yorumlayıcının kullanıldığını onaylamak ve yanıtı oluşturmak için çalıştırılan kodu doğrulamak için sağ paneldeki günlüklere bakabilirsiniz. Kod yorumlayıcının, soruları koda dönüştürerek ve korumalı bir Python ortamında çalıştırarak modele daha karmaşık matematik sorularına yanıt verme olanağı sunduğunda, modelin sorunuzu doğru bir şekilde kodda geçerli bir gösterime çevirdiğini onaylamak için yanıtı doğrulamanız gerektiğini unutmayın.
Temel kavramlar
Yardımcılar oyun alanı kullanırken aşağıdaki kavramları göz önünde bulundurun.
Araçlar
Tek bir yardımcı, işlevleri aracılığıyla oluşturduğunuz tüm özel araçların yanı sıra dahil olmak üzere code interpreter
128 adede kadar ara araçlara erişebilir.
Sohbet oturumu
Yardımcı'nın API'sinde yazışma olarak da bilinen sohbet oturumu, kullanıcı ve yardımcı arasındaki konuşmanın gerçekleştiği yerdir. Geleneksel sohbet tamamlama çağrılarının aksine, bir yazışmadaki ileti sayısıyla ilgili bir sınır yoktur. Yardımcı, istekleri modelin giriş belirteci sınırına uyacak şekilde otomatik olarak sıkıştırır.
Bu, konuşmanın her dönüşü sırasında modele kaç belirteç geçirildiğini denetlemediğiniz anlamına da gelir. Belirteçleri yönetme işlemi soyutlanır ve tamamen Yardımcılar API'si tarafından işlenir.
Geçerli konuşma geçmişini silmek için Sohbeti temizle düğmesini seçin.
Metin giriş kutusunun altında iki düğme vardır:
- Çalıştırma olmadan bir ileti ekleyin.
- Ekleme ve çalıştırma.
Günlükler
Günlükler yardımcı API etkinliğinin ayrıntılı bir anlık görüntüsünü sağlar.
Panelleri göster
Varsayılan olarak üç panel vardır: yardımcı kurulumu, sohbet oturumu ve Günlükler. 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.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.
Alternatif olarak yardımcıyı silebilir veya Yardımcının API'sini kullanarak iş parçacığını silebilirsiniz.
Ayrıca bkz.
- Yardımcılar hakkında nasıl yapılır kılavuzumuzla Yardımcıları kullanma hakkında daha fazla bilgi edinin.
- Azure OpenAI Yardımcıları API örnekleri
Başvuru belgeleri | Kitaplık kaynak kodu | Paketi (PyPi) |
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Python 3.8 veya üzeri sürüm
- Aşağıdaki Python kitaplıkları: os, openai (Sürüm 1.x gereklidir)
- 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 uyumlu modele sahip bir Azure OpenAI kaynağı.
- Azure OpenAI Hizmeti'nin özelliklerini ve sınırlamalarını öğrenmek için Sorumlu yapay zeka saydamlığı notunu ve diğer Sorumlu yapay zeka kaynaklarını gözden geçirmenizi öneririz.
- Bu örneği test eden modelin
gpt-4 (1106-preview)
dağıtıldığı bir Azure OpenAI kaynağı kullanılmıştır.
Parolasız kimlik doğrulaması önerilir
Parolasız kimlik doğrulaması için
- azure-identity paketini kullanın.
- Rolü kullanıcı hesabınıza atayın
Cognitive Services User
. Bu, Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında yapılabilir. - gibi
az login
Azure CLI ile oturum açın.
Ayarlama
- OpenAI Python istemci kitaplığını şu şekilde yükleyin:
pip install openai
- Önerilen parolasız kimlik doğrulaması için:
pip install azure-identity
Not
- Dosya arama , yardımcı başına 10.000'e kadar dosya alabilir - öncekinden 500 kat daha fazla. Hızlıdır, çok iş parçacıklı aramalar aracılığıyla paralel sorguları destekler ve gelişmiş yeniden derecelendirme ve sorguyu yeniden yazma özellikleri sunar.
- Vektör deposu API'de yeni bir nesnedir. Bir dosya bir vektör deposuna eklendikten sonra otomatik olarak ayrıştırılır, öbeklere ayrılır, eklenir ve aramaya hazır hale getirilir. Vektör depolarının birden fazla yardımcı ve iş parçacığı arasında kullanılabilmesi, dosya yönetimini ve faturalamayı basitleştirir.
- Belirli bir çalıştırmada
tool_choice
belirli bir aracın (dosya arama, kod yorumlayıcı veya işlev gibi) kullanılmasını zorlamak için kullanılabilecek parametre desteği ekledik.
Not
Bu kitaplık OpenAI tarafından korunur. Kitaplığın en son güncelleştirmelerini izlemek için sürüm geçmişine bakın.
Anahtarı ve uç noktayı alma
Azure OpenAI hizmetine karşı başarılı bir şekilde çağrı yapmak için aşağıdakilere ihtiyacınız vardır:
Değişken adı | Değer |
---|---|
ENDPOINT |
Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Uç noktayı Azure AI Studio'daki Dağıtımlar sayfasından da bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
DEPLOYMENT-NAME |
Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi>Modeli Dağıtımları altında veya Azure AI Studio'daki Dağıtımlar sayfasında bulunabilir. |
Azure portalında kaynağınıza gidin. Anahtarlar ve Uç Nokta, Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Yardımcı oluşturma
Kodumuzda aşağıdaki değerleri belirteceğiz:
Ad | Açıklama |
---|---|
Yardımcının adı | Belirli bir modelle ilişkilendirilmiş dağıtım adınız. |
Yönergeler | Yönergeler sistem mesajlarına benzer, modele nasıl davranması gerektiği ve bir yanıt oluştururken başvurması gereken bağlam hakkında rehberlik verdiğiniz yerdir. Yardımcının kişiliğini açıklayabilir, neye cevap verip vermemesi gerektiğini söyleyebilir ve yanıtları nasıl biçimlendireceğini anlatabilirsiniz. Yanıtları cevaplarken atması gereken adımlara örnekler de sağlayabilirsiniz. |
Model | Bu, yardımcınızla kullanılacak model dağıtım adını ayarladığınız yerdir. Alma aracı veya gpt-4 (1106-preview) modeli gerektirirgpt-35-turbo (1106) . Bu değeri, aynı olmadığı sürece model adına değil dağıtım adınıza ayarlayın. |
Kod yorumlayıcı | Kod yorumlayıcı, modelin kodu test etmesine ve yürütmesine izin vermek için kullanılabilecek korumalı bir Python ortamına erişim sağlar. |
Araçlar
Tek bir yardımcı, işlevleri aracılığıyla oluşturduğunuz tüm özel araçların yanı sıra dahil olmak üzere code interpreter
128 adede kadar ara araçlara erişebilir.
Python uygulamasını oluşturma
Azure'da az login
oturum açın ve aşağıdaki önerilen parolasız Python örneğiyle bir yardımcı oluşturun ve çalıştırın:
import os
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI
token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")
client = AzureOpenAI(
azure_ad_token_provider=token_provider,
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version="2024-05-01-preview",
)
# Create an assistant
assistant = client.beta.assistants.create(
name="Math Assist",
instructions="You are an AI assistant that can write code to help answer math questions.",
tools=[{"type": "code_interpreter"}],
model="gpt-4-1106-preview" # You must replace this value with the deployment name for your model.
)
# Create a thread
thread = client.beta.threads.create()
# Add a user question to the thread
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)
# Run the thread and poll for the result
run = client.beta.threads.runs.create_and_poll(
thread_id=thread.id,
assistant_id=assistant.id,
instructions="Please address the user as Jane Doe. The user has a premium account.",
)
print("Run completed with status: " + run.status)
if run.status == "completed":
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(messages.to_json(indent=2))
Kimlik doğrulaması için hizmet API'sini kullanmak için aşağıdaki Python örneğiyle bir yardımcı oluşturabilir ve çalıştırabilirsiniz:
import os
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.environ["AZURE_OPENAI_API_KEY"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version="2024-05-01-preview",
)
# Create an assistant
assistant = client.beta.assistants.create(
name="Math Assist",
instructions="You are an AI assistant that can write code to help answer math questions.",
tools=[{"type": "code_interpreter"}],
model="gpt-4-1106-preview" # You must replace this value with the deployment name for your model.
)
# Create a thread
thread = client.beta.threads.create()
# Add a user question to the thread
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="I need to solve the equation `3x + 11 = 14`. Can you help me?"
)
# Run the thread and poll for the result
run = client.beta.threads.runs.create_and_poll(
thread_id=thread.id,
assistant_id=assistant.id,
instructions="Please address the user as Jane Doe. The user has a premium account.",
)
print("Run completed with status: " + run.status)
if run.status == "completed":
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(messages.to_json(indent=2))
Çıktı
Tamamlandı durumuyla çalıştırma: tamamlandı
{
"data": [
{
"id": "msg_4SuWxTubHsHpt5IlBTO5Hyw9",
"assistant_id": "asst_cYqL1RuwLyFV3HU1gkaE2k0K",
"attachments": [],
"content": [
{
"text": {
"annotations": [],
"value": "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
},
"type": "text"
}
],
"created_at": 1716397091,
"metadata": {},
"object": "thread.message",
"role": "assistant",
"run_id": "run_hFgBPbUtO8ZNTnNPC8PgpH1S",
"thread_id": "thread_isb7spwRycI5ueT9E7357aOm"
},
{
"id": "msg_Z32w2E7kY5wEWhZqQWxIbIUB",
"assistant_id": null,
"attachments": [],
"content": [
{
"text": {
"annotations": [],
"value": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
},
"type": "text"
}
],
"created_at": 1716397025,
"metadata": {},
"object": "thread.message",
"role": "user",
"run_id": null,
"thread_id": "thread_isb7spwRycI5ueT9E7357aOm"
}
],
"object": "list",
"first_id": "msg_4SuWxTubHsHpt5IlBTO5Hyw9",
"last_id": "msg_Z32w2E7kY5wEWhZqQWxIbIUB",
"has_more": false
}
Sonuçlarınızı anlama
Bu örnekte kod yorumlayıcı etkin bir yardımcı oluşturacağız. Yardımcıya matematik sorusu sorduğumuzda soru python koduna çevrilir ve sorunun yanıtını belirlemek için kodu korumalı ortamda yürütür. Modelin oluşturduğu ve yanıta ulaşmayı test eden kod şu şekildedir:
from sympy import symbols, Eq, solve
# Define the variable
x = symbols('x')
# Define the equation
equation = Eq(3*x + 11, 14)
# Solve the equation
solution = solve(equation, x)
solution
Kod yorumlayıcının, soruları koda dönüştürerek ve bir çözüme ulaşana kadar bu kodu Python korumalı alanında yinelemeli olarak çalıştırarak modele daha karmaşık sorgulara yanıt verme olanağı sunduğunda, modelin sorunuzu doğru bir şekilde kodda geçerli bir gösterime çevirdiğini onaylamak için yanıtı doğrulamanız gerektiğini unutmayın.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.
Ayrıca bkz.
- Yardımcılar hakkında nasıl yapılır kılavuzumuzla Yardımcıları kullanma hakkında daha fazla bilgi edinin.
- Azure OpenAI Yardımcıları API örnekleri
Başvuru belgeleri | Kaynak kodu | Paketi (NuGet)
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- .NET 8 SDK
- Desteklenen bir bölgede uyumlu modele sahip bir Azure OpenAI kaynağı.
- Azure OpenAI Hizmeti'nin özelliklerini ve sınırlamalarını öğrenmek için Sorumlu yapay zeka saydamlığı notunu ve diğer Sorumlu yapay zeka kaynaklarını gözden geçirmenizi öneririz.
- Bu örneği test eden modelin
gpt-4 (1106-preview)
dağıtıldığı bir Azure OpenAI kaynağı kullanılmıştır.
Ayarlama
Yeni .NET Core uygulaması oluşturma
Bir konsol penceresinde (cmd, PowerShell veya Bash gibi), adlı
azure-openai-quickstart
yeni bir konsol uygulaması oluşturmak için komutunu kullanındotnet new
:dotnet new console -n azure-openai-assistants-quickstart
Yeni oluşturulan uygulama klasörünün dizinine geçin ve komutuyla
dotnet build
uygulamayı oluşturun:dotnet build
Derleme çıkışı hiçbir uyarı veya hata içermemelidir.
... Build succeeded. 0 Warning(s) 0 Error(s) ...
OpenAI .NET istemci kitaplığını dotnet add package komutuyla 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 |
Hizmet uç noktası, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, uç noktayı Azure AI Studio'daki Dağıtımlar sayfasında bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
Azure portalında kaynağınıza gidin. Anahtarlar ve Uç Nokta bölümü Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Parolasız kimlik doğrulaması önerilir
Parolasız kimlik doğrulaması anahtar tabanlı alternatiflerden daha güvenlidir ve Azure hizmetlerine bağlanmak için önerilen yaklaşımdır. Parolasız kimlik doğrulamasını seçerseniz aşağıdakileri tamamlamanız gerekir:
Azure.Identity
paketini ekleyin.dotnet add package Azure.Identity
Rolü kullanıcı hesabınıza atayın
Cognitive Services User
. Bu, OpenAI kaynağınızdaki Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında yapılabilir.Aracılığıyla
az login
Visual Studio veya Azure CLI kullanarak Azure'da oturum açın.
Yardımcıyı oluşturma
Program.cs
Yardımcı oluşturmak için dosyayı aşağıdaki kodla güncelleştirin:
using Azure;
using Azure.AI.OpenAI.Assistants;
// Assistants is a beta API and subject to change
// Acknowledge its experimental status by suppressing the matching warning.
string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
var openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));
// Use for passwordless auth
//var openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
FileClient fileClient = openAIClient.GetFileClient();
AssistantClient assistantClient = openAIClient.GetAssistantClient();
// First, let's contrive a document we'll use retrieval with and upload it.
using Stream document = BinaryData.FromString("""
{
"description": "This document contains the sale history data for Contoso products.",
"sales": [
{
"month": "January",
"by_product": {
"113043": 15,
"113045": 12,
"113049": 2
}
},
{
"month": "February",
"by_product": {
"113045": 22
}
},
{
"month": "March",
"by_product": {
"113045": 16,
"113055": 5
}
}
]
}
""").ToStream();
OpenAIFileInfo salesFile = await fileClient.UploadFileAsync(
document,
"monthly_sales.json",
FileUploadPurpose.Assistants);
// Now, we'll create a client intended to help with that data
AssistantCreationOptions assistantOptions = new()
{
Name = "Example: Contoso sales RAG",
Instructions =
"You are an assistant that looks up sales data and helps visualize the information based"
+ " on user queries. When asked to generate a graph, chart, or other visualization, use"
+ " the code interpreter tool to do so.",
Tools =
{
new FileSearchToolDefinition(),
new CodeInterpreterToolDefinition(),
},
ToolResources = new()
{
FileSearch = new()
{
NewVectorStores =
{
new VectorStoreCreationHelper([salesFile.Id]),
}
}
},
};
Assistant assistant = await assistantClient.CreateAssistantAsync(deploymentName, assistantOptions);
// Create and run a thread with a user query about the data already associated with the assistant
ThreadCreationOptions threadOptions = new()
{
InitialMessages = { "How well did product 113045 sell in February? Graph its trend over time." }
};
ThreadRun threadRun = await assistantClient.CreateThreadAndRunAsync(assistant.Id, threadOptions);
// Check back to see when the run is done
do
{
Thread.Sleep(TimeSpan.FromSeconds(1));
threadRun = assistantClient.GetRun(threadRun.ThreadId, threadRun.Id);
} while (!threadRun.Status.IsTerminal);
// Finally, we'll print out the full history for the thread that includes the augmented generation
AsyncCollectionResult<ThreadMessage> messages
= assistantClient.GetMessagesAsync(
threadRun.ThreadId,
new MessageCollectionOptions() { Order = MessageCollectionOrder.Ascending });
await foreach (ThreadMessage message in messages)
{
Console.Write($"[{message.Role.ToString().ToUpper()}]: ");
foreach (MessageContent contentItem in message.Content)
{
if (!string.IsNullOrEmpty(contentItem.Text))
{
Console.WriteLine($"{contentItem.Text}");
if (contentItem.TextAnnotations.Count > 0)
{
Console.WriteLine();
}
// Include annotations, if any.
foreach (TextAnnotation annotation in contentItem.TextAnnotations)
{
if (!string.IsNullOrEmpty(annotation.InputFileId))
{
Console.WriteLine($"* File citation, file ID: {annotation.InputFileId}");
}
if (!string.IsNullOrEmpty(annotation.OutputFileId))
{
Console.WriteLine($"* File output, new file ID: {annotation.OutputFileId}");
}
}
}
if (!string.IsNullOrEmpty(contentItem.ImageFileId))
{
OpenAIFileInfo imageInfo = await fileClient.GetFileAsync(contentItem.ImageFileId);
BinaryData imageBytes = await fileClient.DownloadFileAsync(contentItem.ImageFileId);
using FileStream stream = File.OpenWrite($"{imageInfo.Filename}.png");
imageBytes.ToStream().CopyTo(stream);
Console.WriteLine($"<image: {imageInfo.Filename}.png>");
}
}
Console.WriteLine();
}
Şu komutu kullanarak dotnet run
uygulamayı çalıştırın:
dotnet run
Konsol çıkışı aşağıdakine benzer olmalıdır:
[USER]: How well did product 113045 sell in February? Graph its trend over time.
[ASSISTANT]: Product 113045 sold 22 units in February. Let's visualize its sales trend over the given months (January through March).
I'll create a graph to depict this trend.
[ASSISTANT]: <image: 553380b7-fdb6-49cf-9df6-e8e6700d69f4.png>
The graph above visualizes the sales trend for product 113045 from January to March. As seen, the sales peaked in February with 22 units sold, and fluctuated over the period from January (12 units) to March (16 units).
If you need further analysis or more details, feel free to ask!
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.
Ayrıca bkz.
- Yardımcılar hakkında nasıl yapılır kılavuzumuzla Yardımcıları kullanma hakkında daha fazla bilgi edinin.
- Azure OpenAI Yardımcıları API örnekleri
Başvuru belgeleri | Kitaplık kaynak kodu | Paketi (npm) |
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- LTS veya ESM desteğini Node.js.
- 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 uyumlu modele sahip bir Azure OpenAI kaynağı.
- Azure OpenAI Hizmeti'nin özelliklerini ve sınırlamalarını öğrenmek için Sorumlu yapay zeka saydamlığı notunu ve diğer Sorumlu yapay zeka kaynaklarını gözden geçirmenizi öneririz.
- Bu örneği test eden modelin
gpt-4 (1106-preview)
dağıtıldığı bir Azure OpenAI kaynağı kullanılmıştır.
Microsoft Entra Id kimlik doğrulaması önerilir
Anahtarsız kimlik doğrulaması için
@azure/identity
Paketini kullanın.- Rolü kullanıcı hesabınıza atayın
Cognitive Services User
. Bu, Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında yapılabilir. - gibi
az login
Azure CLI ile oturum açın.
Ayarlama
Uygulamayı içerecek yeni bir klasör
assistants-quickstart
oluşturun ve aşağıdaki komutla bu klasörde Visual Studio Code'u açın:mkdir assistants-quickstart && code assistants-quickstart
aşağıdaki komutla oluşturun
package.json
:npm init -y
package.json
ecmascript'e aşağıdaki komutla güncelleştirin:npm pkg set type=module
JavaScript için OpenAI Assistants istemci kitaplığını şu şekilde yükleyin:
npm install openai
Önerilen parolasız kimlik doğrulaması için:
npm install @azure/identity
Kaynak bilgilerini alma
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi>Modeli Dağıtımları altında bulunabilir. |
OPENAI_API_VERSION |
API Sürümleri hakkında daha fazla bilgi edinin. |
Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.
Dikkat
SDK ile önerilen anahtarsız kimlik doğrulamasını kullanmak için ortam değişkeninin AZURE_OPENAI_API_KEY
ayarlanmamış olduğundan emin olun.
Yardımcı oluşturma
Kodumuzda aşağıdaki değerleri belirteceğiz:
Ad | Açıklama |
---|---|
Yardımcının adı | Belirli bir modelle ilişkilendirilmiş dağıtım adınız. |
Yönergeler | Yönergeler sistem mesajlarına benzer, modele nasıl davranması gerektiği ve bir yanıt oluştururken başvurması gereken bağlam hakkında rehberlik verdiğiniz yerdir. Yardımcının kişiliğini açıklayabilir, neye cevap verip vermemesi gerektiğini söyleyebilir ve yanıtları nasıl biçimlendireceğini anlatabilirsiniz. Yanıtları cevaplarken atması gereken adımlara örnekler de sağlayabilirsiniz. |
Model | Bu, dağıtım adıdır. |
Kod yorumlayıcı | Kod yorumlayıcı, modelin kodu test etmesine ve yürütmesine izin vermek için kullanılabilecek korumalı bir Python ortamına erişim sağlar. |
Araçlar
Tek bir yardımcı, dahil olmak üzere code interpreter
en fazla 128 araç ve işlevler aracılığıyla oluşturduğunuz tüm özel araçlara erişebilir.
Yeni javascript uygulaması oluşturma
index.js
Dosyayı aşağıdaki kodla oluşturun:const { AzureOpenAI } = require("openai"); const { DefaultAzureCredential, getBearerTokenProvider, } = require("@azure/identity"); // Get environment variables const azureOpenAIEndpoint = process.env.AZURE_OPENAI_ENDPOINT; const azureOpenAIDeployment = process.env.AZURE_OPENAI_DEPLOYMENT_NAME; const azureOpenAIVersion = process.env.OPENAI_API_VERSION; // Check env variables if (!azureOpenAIEndpoint || !azureOpenAIDeployment || !azureOpenAIVersion) { throw new Error( "Please ensure to set AZURE_OPENAI_DEPLOYMENT_NAME and AZURE_OPENAI_ENDPOINT in your environment variables." ); } // Get Azure SDK client const getClient = () => { const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); const assistantsClient = new AzureOpenAI({ endpoint: azureOpenAIEndpoint, apiVersion: azureOpenAIVersion, azureADTokenProvider, }); return assistantsClient; }; const assistantsClient = getClient(); const options = { model: azureOpenAIDeployment, // Deployment name seen in Azure AI Studio name: "Math Tutor", instructions: "You are a personal math tutor. Write and run JavaScript code to answer math questions.", tools: [{ type: "code_interpreter" }], }; const role = "user"; const message = "I need to solve the equation `3x + 11 = 14`. Can you help me?"; // Create an assistant const assistantResponse = await assistantsClient.beta.assistants.create( options ); console.log(`Assistant created: ${JSON.stringify(assistantResponse)}`); // Create a thread const assistantThread = await assistantsClient.beta.threads.create({}); console.log(`Thread created: ${JSON.stringify(assistantThread)}`); // Add a user question to the thread const threadResponse = await assistantsClient.beta.threads.messages.create( assistantThread.id, { role, content: message, } ); console.log(`Message created: ${JSON.stringify(threadResponse)}`); // Run the thread and poll it until it is in a terminal state const runResponse = await assistantsClient.beta.threads.runs.createAndPoll( assistantThread.id, { assistant_id: assistantResponse.id, }, { pollIntervalMs: 500 } ); console.log(`Run created: ${JSON.stringify(runResponse)}`); // Get the messages const runMessages = await assistantsClient.beta.threads.messages.list( assistantThread.id ); for await (const runMessageDatum of runMessages) { for (const item of runMessageDatum.content) { // types are: "image_file" or "text" if (item.type === "text") { console.log(`Message content: ${JSON.stringify(item.text?.value)}`); } } }
Aşağıdaki komutla Azure'da oturum açın:
az login
JavaScript dosyasını çalıştırın.
node index.js
Çıktı
Assistant created: {"id":"asst_zXaZ5usTjdD0JGcNViJM2M6N","createdAt":"2024-04-08T19:26:38.000Z","name":"Math Tutor","description":null,"model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"fileIds":[],"metadata":{}}
Thread created: {"id":"thread_KJuyrB7hynun4rvxWdfKLIqy","createdAt":"2024-04-08T19:26:38.000Z","metadata":{}}
Message created: {"id":"msg_o0VkXnQj3juOXXRCnlZ686ff","createdAt":"2024-04-08T19:26:38.000Z","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","role":"user","content":[{"type":"text","text":{"value":"I need to solve the equation `3x + 11 = 14`. Can you help me?","annotations":[]},"imageFile":{}}],"assistantId":null,"runId":null,"fileIds":[],"metadata":{}}
Created run
Run created: {"id":"run_P8CvlouB8V9ZWxYiiVdL0FND","object":"thread.run","status":"queued","model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"metadata":{},"usage":null,"assistantId":"asst_zXaZ5usTjdD0JGcNViJM2M6N","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","fileIds":[],"createdAt":"2024-04-08T19:26:39.000Z","expiresAt":"2024-04-08T19:36:39.000Z","startedAt":null,"completedAt":null,"cancelledAt":null,"failedAt":null}
Message content: "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
Message content: "Yes, of course! To solve the equation \\( 3x + 11 = 14 \\), we can follow these steps:\n\n1. Subtract 11 from both sides of the equation to isolate the term with x.\n2. Then, divide by 3 to find the value of x.\n\nLet me calculate that for you."
Message content: "I need to solve the equation `3x + 11 = 14`. Can you help me?"
Kod yorumlayıcının, soruları koda dönüştürerek ve bir çözüme ulaşana kadar bu kodu JavaScript'te yinelemeli olarak çalıştırarak modele daha karmaşık sorgulara yanıt verme olanağı sağlarken, modelin sorunuzu doğru bir şekilde kodda geçerli bir gösterime çevirdiğini onaylamak için yanıtı doğrulamanız gerektiğini unutmayın.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.
Örnek kod
Ayrıca bkz.
- Yardımcılar hakkında nasıl yapılır kılavuzumuzla Yardımcıları kullanma hakkında daha fazla bilgi edinin.
- Azure OpenAI Yardımcıları API örnekleri
Başvuru belgeleri | Kitaplık kaynak kodu | Paketi (npm) |
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- LTS veya ESM desteğini Node.js.
- TypeScript genel olarak yüklendi
- 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 uyumlu modele sahip bir Azure OpenAI kaynağı.
- Azure OpenAI Hizmeti'nin özelliklerini ve sınırlamalarını öğrenmek için Sorumlu yapay zeka saydamlığı notunu ve diğer Sorumlu yapay zeka kaynaklarını gözden geçirmenizi öneririz.
- Bu örneği test eden modelin
gpt-4 (1106-preview)
dağıtıldığı bir Azure OpenAI kaynağı kullanılmıştır.
Parolasız kimlik doğrulaması önerilir
Parolasız kimlik doğrulaması için
@azure/identity
Paketini kullanın.- Rolü kullanıcı hesabınıza atayın
Cognitive Services User
. Bu, Azure portalında Erişim denetimi (IAM)>Rol ataması ekle altında yapılabilir. - gibi
az login
Azure CLI ile oturum açın.
Ayarlama
Uygulamayı içerecek yeni bir klasör
assistants-quickstart
oluşturun ve aşağıdaki komutla bu klasörde Visual Studio Code'u açın:mkdir assistants-quickstart && code assistants-quickstart
aşağıdaki komutla oluşturun
package.json
:npm init -y
package.json
ecmascript'e aşağıdaki komutla güncelleştirin:npm pkg set type=module
JavaScript için OpenAI Assistants istemci kitaplığını şu şekilde yükleyin:
npm install openai
Önerilen parolasız kimlik doğrulaması için:
npm install @azure/identity
Kaynak bilgilerini alma
Değişken adı | Değer |
---|---|
AZURE_OPENAI_ENDPOINT |
Bu değer, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi>Modeli Dağıtımları altında bulunabilir. |
OPENAI_API_VERSION |
API Sürümleri hakkında daha fazla bilgi edinin. |
Anahtarsız kimlik doğrulaması ve ortam değişkenlerini ayarlama hakkında daha fazla bilgi edinin.
Dikkat
SDK ile önerilen anahtarsız kimlik doğrulamasını kullanmak için ortam değişkeninin AZURE_OPENAI_API_KEY
ayarlanmamış olduğundan emin olun.
Yardımcı oluşturma
Kodumuzda aşağıdaki değerleri belirteceğiz:
Ad | Açıklama |
---|---|
Yardımcının adı | Belirli bir modelle ilişkilendirilmiş dağıtım adınız. |
Yönergeler | Yönergeler sistem mesajlarına benzer, modele nasıl davranması gerektiği ve bir yanıt oluştururken başvurması gereken bağlam hakkında rehberlik verdiğiniz yerdir. Yardımcının kişiliğini açıklayabilir, neye cevap verip vermemesi gerektiğini söyleyebilir ve yanıtları nasıl biçimlendireceğini anlatabilirsiniz. Yanıtları cevaplarken atması gereken adımlara örnekler de sağlayabilirsiniz. |
Model | Bu, dağıtım adıdır. |
Kod yorumlayıcı | Kod yorumlayıcı, modelin kodu test etmesine ve yürütmesine izin vermek için kullanılabilecek korumalı bir Python ortamına erişim sağlar. |
Araçlar
Tek bir yardımcı, dahil olmak üzere code interpreter
en fazla 128 araç ve işlevler aracılığıyla oluşturduğunuz tüm özel araçlara erişebilir.
Yeni bir TypeScript uygulaması oluşturma
index.ts
Dosyayı aşağıdaki kodla oluşturun:import { AzureOpenAI } from "openai"; import { Assistant, AssistantCreateParams, AssistantTool, } from "openai/resources/beta/assistants"; import { Message, MessagesPage } from "openai/resources/beta/threads/messages"; import { Run } from "openai/resources/beta/threads/runs/runs"; import { Thread } from "openai/resources/beta/threads/threads"; // Add `Cognitive Services User` to identity for Azure OpenAI resource import { DefaultAzureCredential, getBearerTokenProvider, } from "@azure/identity"; // Get environment variables const azureOpenAIEndpoint = process.env.AZURE_OPENAI_ENDPOINT as string; const azureOpenAIDeployment = process.env .AZURE_OPENAI_DEPLOYMENT_NAME as string; const openAIVersion = process.env.OPENAI_API_VERSION as string; // Check env variables if (!azureOpenAIEndpoint || !azureOpenAIDeployment || !openAIVersion) { throw new Error( "Please ensure to set AZURE_OPENAI_DEPLOYMENT_NAME and AZURE_OPENAI_ENDPOINT in your environment variables." ); } // Get Azure SDK client const getClient = (): AzureOpenAI => { const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); const assistantsClient = new AzureOpenAI({ endpoint: azureOpenAIEndpoint, apiVersion: openAIVersion, azureADTokenProvider, }); return assistantsClient; }; const assistantsClient = getClient(); const options: AssistantCreateParams = { model: azureOpenAIDeployment, // Deployment name seen in Azure AI Studio name: "Math Tutor", instructions: "You are a personal math tutor. Write and run JavaScript code to answer math questions.", tools: [{ type: "code_interpreter" } as AssistantTool], }; const role = "user"; const message = "I need to solve the equation `3x + 11 = 14`. Can you help me?"; // Create an assistant const assistantResponse: Assistant = await assistantsClient.beta.assistants.create(options); console.log(`Assistant created: ${JSON.stringify(assistantResponse)}`); // Create a thread const assistantThread: Thread = await assistantsClient.beta.threads.create({}); console.log(`Thread created: ${JSON.stringify(assistantThread)}`); // Add a user question to the thread const threadResponse: Message = await assistantsClient.beta.threads.messages.create(assistantThread.id, { role, content: message, }); console.log(`Message created: ${JSON.stringify(threadResponse)}`); // Run the thread and poll it until it is in a terminal state const runResponse: Run = await assistantsClient.beta.threads.runs.createAndPoll( assistantThread.id, { assistant_id: assistantResponse.id, }, { pollIntervalMs: 500 } ); console.log(`Run created: ${JSON.stringify(runResponse)}`); // Get the messages const runMessages: MessagesPage = await assistantsClient.beta.threads.messages.list(assistantThread.id); for await (const runMessageDatum of runMessages) { for (const item of runMessageDatum.content) { // types are: "image_file" or "text" if (item.type === "text") { console.log(`Message content: ${JSON.stringify(item.text?.value)}`); } } }
tsconfig.json
TypeScript kodunu değiştirmek için dosyasını oluşturun ve ECMAScript için aşağıdaki kodu kopyalayın.{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }
TypeScript'ten JavaScript'e dönüştürme.
tsc
Aşağıdaki komutla Azure'da oturum açın:
az login
Kodu aşağıdaki komutla çalıştırın:
node index.js
Çıktı
Assistant created: {"id":"asst_zXaZ5usTjdD0JGcNViJM2M6N","createdAt":"2024-04-08T19:26:38.000Z","name":"Math Tutor","description":null,"model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"fileIds":[],"metadata":{}}
Thread created: {"id":"thread_KJuyrB7hynun4rvxWdfKLIqy","createdAt":"2024-04-08T19:26:38.000Z","metadata":{}}
Message created: {"id":"msg_o0VkXnQj3juOXXRCnlZ686ff","createdAt":"2024-04-08T19:26:38.000Z","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","role":"user","content":[{"type":"text","text":{"value":"I need to solve the equation `3x + 11 = 14`. Can you help me?","annotations":[]},"imageFile":{}}],"assistantId":null,"runId":null,"fileIds":[],"metadata":{}}
Created run
Run created: {"id":"run_P8CvlouB8V9ZWxYiiVdL0FND","object":"thread.run","status":"queued","model":"daisy","instructions":"You are a personal math tutor. Write and run JavaScript code to answer math questions.","tools":[{"type":"code_interpreter"}],"metadata":{},"usage":null,"assistantId":"asst_zXaZ5usTjdD0JGcNViJM2M6N","threadId":"thread_KJuyrB7hynun4rvxWdfKLIqy","fileIds":[],"createdAt":"2024-04-08T19:26:39.000Z","expiresAt":"2024-04-08T19:36:39.000Z","startedAt":null,"completedAt":null,"cancelledAt":null,"failedAt":null}
Message content: "The solution to the equation \\(3x + 11 = 14\\) is \\(x = 1\\)."
Message content: "Yes, of course! To solve the equation \\( 3x + 11 = 14 \\), we can follow these steps:\n\n1. Subtract 11 from both sides of the equation to isolate the term with x.\n2. Then, divide by 3 to find the value of x.\n\nLet me calculate that for you."
Message content: "I need to solve the equation `3x + 11 = 14`. Can you help me?"
Kod yorumlayıcının, soruları koda dönüştürerek ve bir çözüme ulaşana kadar bu kodu JavaScript'te yinelemeli olarak çalıştırarak modele daha karmaşık sorgulara yanıt verme olanağı sağlarken, modelin sorunuzu doğru bir şekilde kodda geçerli bir gösterime çevirdiğini onaylamak için yanıtı doğrulamanız gerektiğini unutmayın.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.
Örnek kod
Ayrıca bkz.
- Yardımcılar hakkında nasıl yapılır kılavuzumuzla Yardımcıları kullanma hakkında daha fazla bilgi edinin.
- Azure OpenAI Yardımcıları API örnekleri
Önkoşullar
- Azure aboneliği - Ücretsiz bir abonelik oluşturun
- Python 3.8 veya üzeri sürüm
- Desteklenen bir bölgede uyumlu modele sahip bir Azure OpenAI kaynağı.
- Azure OpenAI Hizmeti'nin özelliklerini ve sınırlamalarını öğrenmek için Sorumlu yapay zeka saydamlığı notunu ve diğer Sorumlu yapay zeka kaynaklarını gözden geçirmenizi öneririz.
- Bu örneği test eden modelin
gpt-4 (1106-preview)
dağıtıldığı bir Azure OpenAI kaynağı kullanılmıştır.
Ayarlama
Anahtarı ve uç noktayı alma
Azure OpenAI'ye karşı başarılı bir şekilde çağrı yapmak için aşağıdakilere ihtiyacınız vardır:
Değişken adı | Değer |
---|---|
ENDPOINT |
Hizmet uç noktası, Kaynağınızı Azure portalından incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. Alternatif olarak, uç noktayı Azure AI Studio'daki Dağıtımlar sayfasında bulabilirsiniz. Örnek uç nokta: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Bu değer, Azure portal kaynağınızı incelerken Anahtarlar ve Uç Nokta bölümünde bulunabilir. KEY1 veya KEY2 kullanabilirsiniz. |
DEPLOYMENT-NAME |
Bu değer, bir modeli dağıtırken dağıtımınız için seçtiğiniz özel ada karşılık gelir. Bu değer, Azure portalındaki Kaynak Yönetimi>Dağıtımları altında veya Azure AI Studio'daki Dağıtımlar sayfasında bulunabilir. |
Azure portalında kaynağınıza gidin. Uç Nokta ve Anahtarlar Kaynak Yönetimi bölümünde bulunabilir. Api çağrılarınızın kimliğini doğrulamak için ihtiyacınız olacak şekilde uç noktanızı ve erişim anahtarınızı kopyalayın. KEY1
veya KEY2
kullanabilirsiniz. Her zaman iki anahtara sahip olmak, hizmet kesintisine neden olmadan anahtarları güvenli bir şekilde döndürmenize ve yeniden oluşturmanıza olanak tanır.
Ortam değişkenleri
Anahtarınız ve uç noktanız için kalıcı ortam değişkenleri oluşturun ve atayın.
Önemli
API anahtarı kullanıyorsanız, bunu Azure Key Vault gibi başka bir yerde güvenli bir şekilde depolayın. API anahtarını doğrudan kodunuzla eklemeyin ve hiçbir zaman herkese açık olarak göndermeyin.
Yapay zeka hizmetleri güvenliği hakkında daha fazla bilgi için bkz . Azure AI hizmetlerine yönelik isteklerin kimliğini doğrulama.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST API
Yardımcı oluşturma
Not
Azure OpenAI ile model
parametresi model dağıtım adı gerektirir. Model dağıtım adınız temel alınan model adından farklıysa kodunuzu olarak "model": "{your-custom-model-deployment-name}"
ayarlayabilirsiniz.
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"instructions": "You are an AI assistant that can write code to help answer math questions.",
"name": "Math Assist",
"tools": [{"type": "code_interpreter"}],
"model": "gpt-4-1106-preview"
}'
Araçlar
Tek bir yardımcı, işlevleri aracılığıyla oluşturduğunuz tüm özel araçların yanı sıra dahil olmak üzere code interpreter
128 adede kadar ara araçlara erişebilir.
İş parçacığı oluşturma
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d ''
İş parçacığına kullanıcı sorusu ekleme
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/messages \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d '{
"role": "user",
"content": "I need to solve the equation `3x + 11 = 14`. Can you help me?"
}'
İş parçacığını çalıştırma
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assistant_id": "asst_abc123",
}'
Çalıştırmanın durumunu alma
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs/run_abc123 \
-H "api-key: $AZURE_OPENAI_API_KEY" \
Yardımcı yanıtı
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/messages \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
Sonuçlarınızı anlama
Bu örnekte kod yorumlayıcı etkin bir yardımcı oluşturacağız. Yardımcıya matematik sorusu sorduğumuzda soru python koduna çevrilir ve sorunun yanıtını belirlemek için kodu korumalı ortamda yürütür. Modelin oluşturduğu ve yanıta ulaşmayı test eden kod şu şekildedir:
from sympy import symbols, Eq, solve
# Define the variable
x = symbols('x')
# Define the equation
equation = Eq(3*x + 11, 14)
# Solve the equation
solution = solve(equation, x)
solution
Kod yorumlayıcının, soruları koda dönüştürerek ve bir çözüme ulaşana kadar bu kodu Python korumalı alanında yinelemeli olarak çalıştırarak modele daha karmaşık sorgulara yanıt verme olanağı sunduğunda, modelin sorunuzu doğru bir şekilde kodda geçerli bir gösterime çevirdiğini onaylamak için yanıtı doğrulamanız gerektiğini unutmayın.
Kaynakları temizleme
Bir Azure OpenAI kaynağını temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.
Ayrıca bkz.
- Yardımcılar hakkında nasıl yapılır kılavuzumuzla Yardımcıları kullanma hakkında daha fazla bilgi edinin.
- Azure OpenAI Yardımcıları API örnekleri