Mulai Cepat: Mulai menggunakan Asisten Azure OpenAI (Pratinjau)
Asisten Azure OpenAI (Pratinjau) memungkinkan Anda membuat asisten AI yang disesuaikan dengan kebutuhan Anda melalui instruksi kustom dan ditambah oleh alat tingkat lanjut seperti penerjemah kode, dan fungsi kustom.
Penting
Item yang ditandai (pratinjau) dalam artikel ini sedang dalam pratinjau publik. Pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan kami tidak merekomendasikannya untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.
Prasyarat
- Langganan Azure - Buat langganan gratis.
- Sumber daya hub Azure AI dengan model yang disebarkan. Untuk informasi selengkapnya tentang penyebaran model, lihat panduan penyebaran sumber daya.
- Proyek Azure AI di Azure AI Studio.
Buka Azure AI Studio (Pratinjau)
Azure AI Studio memungkinkan Anda menggunakan Asisten v2 yang menyediakan beberapa peningkatan seperti alat pencarian file yang lebih cepat dan mendukung lebih banyak file.
Masuk ke Azure AI Studio.
Buka proyek Anda atau buat proyek baru di Azure AI Studio.
Dari gambaran umum proyek Anda, pilih Asisten, yang terletak di bawah Taman bermain Proyek.
Taman bermain Asisten memungkinkan Anda menjelajahi, membuat prototipe, dan menguji Asisten AI tanpa perlu menjalankan kode apa pun. Dari halaman ini, Anda dapat dengan cepat melakukan iterasi dan bereksperimen dengan ide-ide baru.
Taman bermain menyediakan beberapa opsi untuk mengonfigurasi Asisten Anda. Dalam langkah-langkah berikut, Anda akan menggunakan panel penyiapan Asisten untuk membuat asisten AI baru.
Nama Keterangan Nama asisten Nama penyebaran Anda yang terkait dengan model tertentu. Petunjuk Instruksi mirip dengan pesan sistem di sinilah Anda memberikan panduan model tentang bagaimana hal itu harus bersifat dan konteks apa pun yang harus dirujuk saat menghasilkan respons. Anda dapat menjelaskan kepribadian asisten, memberi tahu apa yang harus dan tidak boleh dijawab, dan memberi tahunya cara memformat respons. Anda juga dapat memberikan contoh langkah-langkah yang harus diambil saat menjawab respons. Penyebaran Di sinilah Anda mengatur penyebaran model mana yang akan digunakan dengan asisten Anda. Fungsi Buat definisi fungsi kustom untuk model untuk merumuskan panggilan API dan menyusun output data berdasarkan spesifikasi Anda. Tidak digunakan dalam mulai cepat ini. Penerjemah kode Penerjemah kode menyediakan akses ke lingkungan Python terkotakpasir yang dapat digunakan untuk memungkinkan model menguji dan menjalankan kode. File Anda dapat mengunggah hingga 10.000 file, dengan ukuran file maksimum 512 MB untuk digunakan dengan alat. Tidak digunakan dalam mulai cepat ini.
Buat Asisten pertama Anda
Pilih penyebaran Anda dari menu dropdown Penyebaran .
Dari menu drop-down Penyetelan asisten, pilih Baru.
Beri nama Asisten Anda.
Masukkan instruksi berikut "Anda adalah asisten AI yang dapat menulis kode untuk membantu menjawab pertanyaan matematika"
Pilih penyebaran model. Sebaiknya uji dengan salah satu model gpt-4 terbaru.
Pilih tombol mengaktifkan penerjemah kode.
Pilih Simpan.
Masukkan pertanyaan untuk dijawab oleh asisten: "Saya perlu menyelesaikan persamaan
3x + 11 = 14
. Dapatkah Anda membantu saya?"Pilih tombol Tambahkan dan jalankan
The solution to the equation (3x + 11 = 14) is (x = 1).
Meskipun kita dapat melihat jawaban itu benar, untuk mengonfirmasi bahwa model menggunakan penerjemah kode untuk mendapatkan jawaban ini, dan bahwa kode yang ditulisnya valid daripada hanya mengulangi jawaban dari data pelatihan model, kita akan mengajukan pertanyaan lain.
Masukkan pertanyaan tindak lanjut: "Tunjukkan kode yang Anda jalankan untuk mendapatkan solusi ini."
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.
Anda juga dapat berkonsultasi dengan log di panel kanan untuk mengonfirmasi bahwa penerjemah kode digunakan dan untuk memvalidasi kode yang dijalankan untuk menghasilkan respons. Penting untuk diingat bahwa sementara penerjemah kode memberi model kemampuan untuk menanggapi pertanyaan matematika yang lebih kompleks dengan mengonversi pertanyaan menjadi kode dan berjalan di lingkungan Python terkotakpasir, Anda masih perlu memvalidasi respons untuk mengonfirmasi bahwa model menerjemahkan pertanyaan Anda dengan benar ke dalam representasi kode yang valid.
Konsep kunci
Saat menggunakan taman bermain Asisten, ingatlah konsep berikut.
Alat
Asisten individu dapat mengakses hingga 128 alat termasuk code interpreter
, serta alat kustom apa pun yang Anda buat melalui fungsi.
Sesi obrolan
Sesi obrolan juga dikenal sebagai utas dalam API Asisten adalah tempat percakapan antara pengguna dan asisten terjadi. Tidak seperti panggilan penyelesaian obrolan tradisional tidak ada batasan jumlah pesan dalam utas. Asisten akan secara otomatis mengompres permintaan agar sesuai dengan batas token input model.
Ini juga berarti bahwa Anda tidak mengontrol berapa banyak token yang diteruskan ke model selama setiap giliran percakapan. Mengelola token diabstraksi dan ditangani sepenuhnya oleh Assistants API.
Pilih tombol Hapus obrolan untuk menghapus riwayat percakapan saat ini.
Di bawah kotak input teks ada dua tombol:
- Tambahkan pesan tanpa menjalankan.
- Tambahkan dan jalankan.
Log
Log menyediakan rekam jepret terperinci tentang apa yang dilakukan oleh aktivitas API asisten.
Perlihatkan panel
Secara default ada tiga panel: pengaturan asisten, sesi obrolan, dan Log. Tampilkan panel memungkinkan Anda untuk menambahkan, menghapus, dan mengatur ulang panel. Jika Anda pernah menutup panel dan perlu mendapatkannya kembali, gunakan Tampilkan panel untuk memulihkan panel yang hilang.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya.
Atau Anda dapat menghapus asisten, atau utas melalui API Asisten.
Lihat juga
- Pelajari selengkapnya tentang cara menggunakan Asisten dengan panduan Cara kami tentang Asisten.
- Sampel API Asisten Azure OpenAI
Dokumentasi | referensi Paket kode | sumber Pustaka (PyPi) |
Prasyarat
- Langganan Azure - buat langganan gratis
- Python 3.8 atau versi yang lebih baru
- Pustaka Python berikut: os, openai (Versi 1.x diperlukan)
- Azure CLI yang digunakan untuk autentikasi tanpa kata sandi di lingkungan pengembangan lokal, buat konteks yang diperlukan dengan masuk dengan Azure CLI.
- Sumber daya Azure OpenAI dengan model yang kompatibel di wilayah yang didukung.
- Sebaiknya tinjau catatan transparansi AI yang Bertanggung Jawab dan sumber daya AI Bertanggung Jawab lainnya untuk membiasakan diri dengan kemampuan dan batasan Layanan Azure OpenAI.
- Sumber daya Azure OpenAI dengan model yang
gpt-4 (1106-preview)
disebarkan digunakan untuk menguji contoh ini.
Autentikasi tanpa kata sandi disarankan
Untuk autentikasi tanpa kata sandi, Anda perlu
- Gunakan paket azure-identity.
- Tetapkan peran ke
Cognitive Services User
akun pengguna Anda. Ini dapat dilakukan di portal Azure di bawah Kontrol akses (IAM)>Tambahkan penetapan peran. - Masuk dengan Azure CLI seperti
az login
.
Penyiapan
- Instal pustaka klien OpenAI Python dengan:
pip install openai
- Untuk autentikasi tanpa kata sandi yang direkomendasikan :
pip install azure-identity
Catatan
- Pencarian file dapat menyerap hingga 10.000 file per asisten - 500 kali lebih banyak dari sebelumnya. Solusi ini cepat, mendukung kueri paralel melalui pencarian multi-utas, dan fitur pemeringkatan ulang dan penulisan ulang kueri yang ditingkatkan.
- Penyimpanan vektor adalah objek baru di API. Setelah file ditambahkan ke penyimpanan vektor, file secara otomatis diurai, dipotong, dan disematkan, dibuat siap untuk dicari. Penyimpanan vektor dapat digunakan di seluruh asisten dan utas, menyederhanakan manajemen dan penagihan file.
- Kami telah menambahkan dukungan untuk
tool_choice
parameter yang dapat digunakan untuk memaksa penggunaan alat tertentu (seperti pencarian file, penerjemah kode, atau fungsi) dalam eksekusi tertentu.
Catatan
Pustaka ini dikelola oleh OpenAI. Lihat riwayat rilis untuk melacak pembaruan terbaru ke pustaka.
Mengambil kunci dan titik akhir
Agar berhasil melakukan panggilan terhadap layanan Azure OpenAI, Anda memerlukan hal berikut:
Nama variabel | Nilai |
---|---|
ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci dan Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Anda juga dapat menemukan titik akhir melalui halaman Penyebaran di Azure AI Studio. Contoh titik akhir adalah: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Nilai ini dapat ditemukan di bagian Kunci dan Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Anda dapat menggunakan KEY1 atau KEY2 . |
DEPLOYMENT-NAME |
Nilai ini akan sesuai dengan nama kustom yang Anda pilih untuk penyebaran pada saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Model Manajemen>Sumber Daya di portal Azure atau melalui halaman Penyebaran di Azure AI Studio. |
Buka sumber daya Anda di portal Azure. Kunci dan Titik Akhir dapat ditemukan di bagian Manajemen Sumber Daya. Salin titik akhir dan kunci akses Anda karena keduanya diperlukan untuk mengautentikasi panggilan API Anda. Anda dapat menggunakan KEY1
atau KEY2
. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan.
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Membuat asisten
Dalam kode kita, kita akan menentukan nilai-nilai berikut:
Nama | Keterangan |
---|---|
Nama asisten | Nama penyebaran Anda yang terkait dengan model tertentu. |
Petunjuk | Instruksi mirip dengan pesan sistem di sinilah Anda memberikan panduan model tentang bagaimana hal itu harus bersifat dan konteks apa pun yang harus dirujuk saat menghasilkan respons. Anda dapat menjelaskan kepribadian asisten, memberi tahu apa yang harus dan tidak boleh dijawab, dan memberi tahunya cara memformat respons. Anda juga dapat memberikan contoh langkah-langkah yang harus diambil saat menjawab respons. |
Model | Di sinilah Anda mengatur nama penyebaran model mana yang akan digunakan dengan asisten Anda. Alat pengambilan memerlukan gpt-35-turbo (1106) atau gpt-4 (1106-preview) model. Atur nilai ini ke nama penyebaran Anda, bukan nama model kecuali sama. |
Penerjemah kode | Penerjemah kode menyediakan akses ke lingkungan Python terkotakpasir yang dapat digunakan untuk memungkinkan model menguji dan menjalankan kode. |
Alat
Asisten individu dapat mengakses hingga 128 alat termasuk code interpreter
, serta alat kustom apa pun yang Anda buat melalui fungsi.
Membuat aplikasi Python
Masuk ke Azure lalu az login
buat dan jalankan asisten dengan contoh Python tanpa kata sandi yang direkomendasikan berikut:
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))
Untuk menggunakan kunci API layanan untuk autentikasi, Anda dapat membuat dan menjalankan asisten dengan contoh Python berikut:
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))
Output
Jalankan selesai dengan status: selesai
{
"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
}
Memahami tataan hasil Anda
Dalam contoh ini, kami membuat asisten dengan penerjemah kode diaktifkan. Ketika kita mengajukan pertanyaan matematika kepada asisten, itu menerjemahkan pertanyaan ke dalam kode python dan menjalankan kode di lingkungan terkotakpasir untuk menentukan jawaban atas pertanyaan. Kode yang dibuat model dan pengujian untuk sampai pada jawabannya adalah:
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
Penting untuk diingat bahwa sementara penerjemah kode memberi model kemampuan untuk menanggapi kueri yang lebih kompleks dengan mengonversi pertanyaan menjadi kode dan menjalankan kode tersebut secara berulang di kotak pasir Python sampai mencapai solusi, Anda masih perlu memvalidasi respons untuk mengonfirmasi bahwa model menerjemahkan pertanyaan Anda dengan benar ke dalam representasi kode yang valid.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya.
Lihat juga
- Pelajari selengkapnya tentang cara menggunakan Asisten dengan panduan Cara kami tentang Asisten.
- Sampel API Asisten Azure OpenAI
Dokumentasi | referensi Paket kode sumber | (NuGet)
Prasyarat
- Langganan Azure - buat langganan gratis
- .NET 8 SDK
- Sumber daya Azure OpenAI dengan model yang kompatibel di wilayah yang didukung.
- Sebaiknya tinjau catatan transparansi AI yang Bertanggung Jawab dan sumber daya AI Bertanggung Jawab lainnya untuk membiasakan diri dengan kemampuan dan batasan Layanan Azure OpenAI.
- Sumber daya Azure OpenAI dengan model yang
gpt-4 (1106-preview)
disebarkan digunakan untuk menguji contoh ini.
Penyiapan
Buat aplikasi .NET Core baru
Di jendela konsol (seperti cmd, PowerShell, atau Bash), gunakan
dotnet new
perintah untuk membuat aplikasi konsol baru dengan namaazure-openai-quickstart
:dotnet new console -n azure-openai-assistants-quickstart
Ubah ke direktori folder aplikasi yang baru dibuat dan buat aplikasi dengan
dotnet build
perintah :dotnet build
Output build tidak boleh berisi peringatan atau kesalahan.
... Build succeeded. 0 Warning(s) 0 Error(s) ...
Instal pustaka klien OpenAI .NET dengan perintah tambahkan paket dotnet:
dotnet add package Azure.AI.OpenAI --prerelease
Mengambil kunci dan titik akhir
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan titik akhir dan kunci.
Nama variabel | Nilai |
---|---|
ENDPOINT |
Titik akhir layanan dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Atau, Anda dapat menemukan titik akhir melalui halaman Penyebaran di Azure AI Studio. Contoh titik akhir adalah: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Microsoft Azure. Anda dapat menggunakan KEY1 atau KEY2 . |
Buka sumber daya Anda di portal Azure. Bagian Kunci & Titik Akhir dapat ditemukan di bagian Manajemen Sumber Daya. Salin titik akhir dan kunci akses Anda karena keduanya diperlukan untuk mengautentikasi panggilan API Anda. Anda dapat menggunakan KEY1
atau KEY2
. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan.
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Autentikasi tanpa kata sandi disarankan
Autentikasi tanpa kata sandi lebih aman daripada alternatif berbasis kunci dan merupakan pendekatan yang direkomendasikan untuk menyambungkan ke layanan Azure. Jika Anda memilih autentikasi Tanpa Kata Sandi, Anda harus menyelesaikan hal berikut:
Tambahkan paket
Azure.Identity
.dotnet add package Azure.Identity
Tetapkan peran ke
Cognitive Services User
akun pengguna Anda. Ini dapat dilakukan di portal Azure pada sumber daya OpenAI Anda di bawah Kontrol akses (IAM)>Tambahkan penetapan peran.Masuk ke Azure menggunakan Visual Studio atau Azure CLI melalui
az login
.
Membuat asisten
Program.cs
Perbarui file dengan kode berikut untuk membuat asisten:
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();
}
Jalankan aplikasi menggunakan dotnet run
perintah :
dotnet run
Output konsol harus menyerupai berikut:
[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!
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya.
Lihat juga
- Pelajari selengkapnya tentang cara menggunakan Asisten dengan panduan Cara kami tentang Asisten.
- Sampel API Asisten Azure OpenAI
Dokumentasi | referensi Paket kode | sumber Pustaka (npm) |
Prasyarat
- Langganan Azure - buat langganan gratis
- Node.js dukungan LTS atau ESM.
- Azure CLI yang digunakan untuk autentikasi tanpa kata sandi di lingkungan pengembangan lokal, buat konteks yang diperlukan dengan masuk dengan Azure CLI.
- Sumber daya Azure OpenAI dengan model yang kompatibel di wilayah yang didukung.
- Sebaiknya tinjau catatan transparansi AI yang Bertanggung Jawab dan sumber daya AI Bertanggung Jawab lainnya untuk membiasakan diri dengan kemampuan dan batasan Layanan Azure OpenAI.
- Sumber daya Azure OpenAI dengan model yang
gpt-4 (1106-preview)
disebarkan digunakan untuk menguji contoh ini.
Autentikasi ID Microsoft Entra disarankan
Untuk autentikasi tanpa kunci, Anda perlu
@azure/identity
Gunakan paket.- Tetapkan peran ke
Cognitive Services User
akun pengguna Anda. Ini dapat dilakukan di portal Azure di bawah Kontrol akses (IAM)>Tambahkan penetapan peran. - Masuk dengan Azure CLI seperti
az login
.
Penyiapan
Buat folder
assistants-quickstart
baru untuk berisi aplikasi dan buka Visual Studio Code di folder tersebut dengan perintah berikut:mkdir assistants-quickstart && code assistants-quickstart
package.json
Buat dengan perintah berikut:npm init -y
package.json
Perbarui ke ECMAScript dengan perintah berikut:npm pkg set type=module
Instal pustaka klien Asisten OpenAI untuk JavaScript dengan:
npm install openai
Untuk autentikasi tanpa kata sandi yang direkomendasikan :
npm install @azure/identity
Mengambil informasi sumber daya
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci dan Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Nilai ini akan sesuai dengan nama kustom yang Anda pilih untuk penyebaran pada saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Model Manajemen>Sumber Daya di portal Azure. |
OPENAI_API_VERSION |
Pelajari selengkapnya tentang Versi API. |
Pelajari selengkapnya tentang autentikasi tanpa kunci dan mengatur variabel lingkungan.
Perhatian
Untuk menggunakan autentikasi tanpa kunci yang direkomendasikan dengan SDK, pastikan variabel AZURE_OPENAI_API_KEY
lingkungan tidak diatur.
Membuat asisten
Dalam kode kami, kita akan menentukan nilai berikut:
Nama | Keterangan |
---|---|
Nama asisten | Nama penyebaran Anda yang terkait dengan model tertentu. |
Petunjuk | Instruksi mirip dengan pesan sistem di sinilah Anda memberikan panduan model tentang bagaimana hal itu harus bersifat dan konteks apa pun yang harus dirujuk saat menghasilkan respons. Anda dapat menjelaskan kepribadian asisten, memberi tahu apa yang harus dan tidak boleh dijawab, dan memberi tahunya cara memformat respons. Anda juga dapat memberikan contoh langkah-langkah yang harus diambil saat menjawab respons. |
Model | Ini adalah nama penyebaran. |
Penerjemah kode | Penerjemah kode menyediakan akses ke lingkungan Python terkotakpasir yang dapat digunakan untuk memungkinkan model menguji dan menjalankan kode. |
Alat
Asisten individual dapat mengakses hingga 128 alat termasuk code interpreter
, dan alat kustom apa pun yang Anda buat melalui fungsi.
Membuat aplikasi JavaScript baru
index.js
Buat file dengan kode berikut: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)}`); } } }
Masuk ke Azure dengan perintah berikut:
az login
Jalankan file JavaScript.
node index.js
Output
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?"
Penting untuk diingat bahwa sementara penerjemah kode memberi model kemampuan untuk menanggapi kueri yang lebih kompleks dengan mengonversi pertanyaan menjadi kode dan menjalankan kode tersebut secara berulang di JavaScript sampai mencapai solusi, Anda masih perlu memvalidasi respons untuk mengonfirmasi bahwa model menerjemahkan pertanyaan Anda dengan benar ke dalam representasi kode yang valid.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya.
Kode Sampel
Lihat juga
- Pelajari selengkapnya tentang cara menggunakan Asisten dengan panduan Cara kami tentang Asisten.
- Sampel API Asisten Azure OpenAI
Dokumentasi | referensi Paket kode | sumber Pustaka (npm) |
Prasyarat
- Langganan Azure - buat langganan gratis
- Node.js dukungan LTS atau ESM.
- TypeScript terinstal secara global
- Azure CLI yang digunakan untuk autentikasi tanpa kata sandi di lingkungan pengembangan lokal, buat konteks yang diperlukan dengan masuk dengan Azure CLI.
- Sumber daya Azure OpenAI dengan model yang kompatibel di wilayah yang didukung.
- Sebaiknya tinjau catatan transparansi AI yang Bertanggung Jawab dan sumber daya AI Bertanggung Jawab lainnya untuk membiasakan diri dengan kemampuan dan batasan Layanan Azure OpenAI.
- Sumber daya Azure OpenAI dengan model yang
gpt-4 (1106-preview)
disebarkan digunakan untuk menguji contoh ini.
Autentikasi tanpa kata sandi disarankan
Untuk autentikasi tanpa kata sandi, Anda perlu
@azure/identity
Gunakan paket.- Tetapkan peran ke
Cognitive Services User
akun pengguna Anda. Ini dapat dilakukan di portal Azure di bawah Kontrol akses (IAM)>Tambahkan penetapan peran. - Masuk dengan Azure CLI seperti
az login
.
Penyiapan
Buat folder
assistants-quickstart
baru untuk berisi aplikasi dan buka Visual Studio Code di folder tersebut dengan perintah berikut:mkdir assistants-quickstart && code assistants-quickstart
package.json
Buat dengan perintah berikut:npm init -y
package.json
Perbarui ke ECMAScript dengan perintah berikut:npm pkg set type=module
Instal pustaka klien Asisten OpenAI untuk JavaScript dengan:
npm install openai
Untuk autentikasi tanpa kata sandi yang direkomendasikan :
npm install @azure/identity
Mengambil informasi sumber daya
Nama variabel | Nilai |
---|---|
AZURE_OPENAI_ENDPOINT |
Nilai ini dapat ditemukan di bagian Kunci dan Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Nilai ini akan sesuai dengan nama kustom yang Anda pilih untuk penyebaran pada saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Model Manajemen>Sumber Daya di portal Azure. |
OPENAI_API_VERSION |
Pelajari selengkapnya tentang Versi API. |
Pelajari selengkapnya tentang autentikasi tanpa kunci dan mengatur variabel lingkungan.
Perhatian
Untuk menggunakan autentikasi tanpa kunci yang direkomendasikan dengan SDK, pastikan variabel AZURE_OPENAI_API_KEY
lingkungan tidak diatur.
Membuat asisten
Dalam kode kami, kita akan menentukan nilai berikut:
Nama | Keterangan |
---|---|
Nama asisten | Nama penyebaran Anda yang terkait dengan model tertentu. |
Petunjuk | Instruksi mirip dengan pesan sistem di sinilah Anda memberikan panduan model tentang bagaimana hal itu harus bersifat dan konteks apa pun yang harus dirujuk saat menghasilkan respons. Anda dapat menjelaskan kepribadian asisten, memberi tahu apa yang harus dan tidak boleh dijawab, dan memberi tahunya cara memformat respons. Anda juga dapat memberikan contoh langkah-langkah yang harus diambil saat menjawab respons. |
Model | Ini adalah nama penyebaran. |
Penerjemah kode | Penerjemah kode menyediakan akses ke lingkungan Python terkotakpasir yang dapat digunakan untuk memungkinkan model menguji dan menjalankan kode. |
Alat
Asisten individual dapat mengakses hingga 128 alat termasuk code interpreter
, dan alat kustom apa pun yang Anda buat melalui fungsi.
Membuat aplikasi TypeScript baru
index.ts
Buat file dengan kode berikut: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
Buat file untuk menerjemahkan kode TypeScript dan salin kode berikut untuk ECMAScript.{ "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"] }
Transpile dari TypeScript ke JavaScript.
tsc
Masuk ke Azure dengan perintah berikut:
az login
Jalankan kode dengan perintah berikut:
node index.js
Output
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?"
Penting untuk diingat bahwa sementara penerjemah kode memberi model kemampuan untuk menanggapi kueri yang lebih kompleks dengan mengonversi pertanyaan menjadi kode dan menjalankan kode tersebut secara berulang di JavaScript sampai mencapai solusi, Anda masih perlu memvalidasi respons untuk mengonfirmasi bahwa model menerjemahkan pertanyaan Anda dengan benar ke dalam representasi kode yang valid.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya.
Kode Sampel
Lihat juga
- Pelajari selengkapnya tentang cara menggunakan Asisten dengan panduan Cara kami tentang Asisten.
- Sampel API Asisten Azure OpenAI
Prasyarat
- Langganan Azure - buat langganan gratis
- Python 3.8 atau versi yang lebih baru
- Sumber daya Azure OpenAI dengan model yang kompatibel di wilayah yang didukung.
- Sebaiknya tinjau catatan transparansi AI yang Bertanggung Jawab dan sumber daya AI Bertanggung Jawab lainnya untuk membiasakan diri dengan kemampuan dan batasan Layanan Azure OpenAI.
- Sumber daya Azure OpenAI dengan model yang
gpt-4 (1106-preview)
disebarkan digunakan untuk menguji contoh ini.
Penyiapan
Mengambil kunci dan titik akhir
Agar berhasil melakukan panggilan terhadap Azure OpenAI, Anda memerlukan hal berikut:
Nama variabel | Nilai |
---|---|
ENDPOINT |
Titik akhir layanan dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Azure. Atau, Anda dapat menemukan titik akhir melalui halaman Penyebaran di Azure AI Studio. Contoh titik akhir adalah: https://docs-test-001.openai.azure.com/ . |
API-KEY |
Nilai ini dapat ditemukan di bagian Kunci & Titik Akhir saat memeriksa sumber daya Anda dari portal Microsoft Azure. Anda dapat menggunakan KEY1 atau KEY2 . |
DEPLOYMENT-NAME |
Nilai ini akan sesuai dengan nama kustom yang Anda pilih untuk penyebaran pada saat Anda menyebarkan model. Nilai ini dapat ditemukan di bawah Penyebaran Manajemen>Sumber Daya di portal Azure atau melalui halaman Penyebaran di Azure AI Studio. |
Buka sumber daya Anda di portal Azure. Titik Akhir dan Kunci dapat ditemukan di bagian Manajemen Sumber Daya. Salin titik akhir dan kunci akses Anda karena keduanya diperlukan untuk mengautentikasi panggilan API Anda. Anda dapat menggunakan KEY1
atau KEY2
. Selalu miliki dua kunci untuk memungkinkan Anda memutar dan meregenerasi kunci dengan aman tanpa menyebabkan gangguan layanan.
Variabel lingkungan
Buat dan tetapkan variabel lingkungan persisten untuk kunci dan titik akhir Anda.
Penting
Jika Anda menggunakan kunci API, simpan dengan aman di tempat lain, seperti di Azure Key Vault. Jangan sertakan kunci API langsung dalam kode Anda, dan jangan pernah mempostingnya secara publik.
Untuk informasi selengkapnya tentang keamanan layanan AI, lihat Mengautentikasi permintaan ke layanan Azure AI.
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
REST API
Membuat asisten
Catatan
Dengan Azure OpenAI model
, parameter memerlukan nama penyebaran model. Jika nama penyebaran model Anda berbeda dari nama model yang mendasar maka Anda akan menyesuaikan kode Anda dengan "model": "{your-custom-model-deployment-name}"
.
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"
}'
Alat
Asisten individu dapat mengakses hingga 128 alat termasuk code interpreter
, serta alat kustom apa pun yang Anda buat melalui fungsi.
Membuat utas
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads \
-H "Content-Type: application/json" \
-H "api-key: $AZURE_OPENAI_API_KEY" \
-d ''
Menambahkan pertanyaan pengguna ke utas
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?"
}'
Jalankan utas
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",
}'
Mengambil status eksekusi
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/threads/thread_abc123/runs/run_abc123 \
-H "api-key: $AZURE_OPENAI_API_KEY" \
Respons asisten
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" \
Memahami tataan hasil Anda
Dalam contoh ini, kami membuat asisten dengan penerjemah kode diaktifkan. Ketika kita mengajukan pertanyaan matematika kepada asisten, itu menerjemahkan pertanyaan ke dalam kode python dan menjalankan kode di lingkungan terkotakpasir untuk menentukan jawaban atas pertanyaan. Kode yang dibuat model dan pengujian untuk sampai pada jawabannya adalah:
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
Penting untuk diingat bahwa sementara penerjemah kode memberi model kemampuan untuk menanggapi kueri yang lebih kompleks dengan mengonversi pertanyaan menjadi kode dan menjalankan kode tersebut secara berulang di kotak pasir Python sampai mencapai solusi, Anda masih perlu memvalidasi respons untuk mengonfirmasi bahwa model menerjemahkan pertanyaan Anda dengan benar ke dalam representasi kode yang valid.
Membersihkan sumber daya
Jika Anda ingin membersihkan dan menghapus sumber daya Azure OpenAI, Anda dapat menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya.
Lihat juga
- Pelajari selengkapnya tentang cara menggunakan Asisten dengan panduan Cara kami tentang Asisten.
- Sampel API Asisten Azure OpenAI