Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam panduan cepat ini, Anda akan membuat aplikasi obrolan AI konsol .NET yang dihubungkan dengan model AI dengan panggilan fungsi lokal yang diaktifkan. Aplikasi ini menggunakan Microsoft.Extensions.AI pustaka sehingga Anda dapat menulis kode menggunakan abstraksi AI daripada SDK tertentu. Abstraksi AI memungkinkan Anda mengubah model AI yang mendasar dengan perubahan kode minimal.
Prasyarat
- .NET 8.0 SDK atau yang lebih tinggi - Pasang .NET 8.0 SDK.
- Kunci API dari OpenAI sehingga Anda dapat menjalankan sampel ini.
Prasyarat
- .NET 8.0 SDK atau yang lebih tinggi - Instal .NET 8 SDK.
- Langganan Azure - Buat langganan secara gratis.
- Azure Developer CLI (opsional) - Menginstal atau memperbarui azure Developer CLI.
Membuat aplikasi
Selesaikan langkah-langkah berikut untuk membuat aplikasi konsol .NET untuk menyambungkan ke model AI.
Di direktori kosong di komputer Anda, gunakan perintah
dotnet newuntuk membuat aplikasi konsol baru:dotnet new console -o FunctionCallingAIUbah direktori ke folder aplikasi:
cd FunctionCallingAIInstal paket yang diperlukan:
dotnet add package Azure.Identity dotnet add package Azure.AI.OpenAI dotnet add package Microsoft.Extensions.AI dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecretsdotnet add package Microsoft.Extensions.AI dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease dotnet add package Microsoft.Extensions.Configuration dotnet add package Microsoft.Extensions.Configuration.UserSecretsBuka aplikasi di Visual Studio Code atau editor pilihan Anda
code .
Membuat layanan AI
Untuk menyediakan layanan dan model Azure OpenAI, selesaikan langkah-langkah dalam artikel Membuat dan menyebarkan sumber daya Azure OpenAI Service .
Gunakan terminal atau baris perintah, lalu pergi ke direktori proyek utama Anda.
Jalankan perintah berikut untuk mengonfigurasi titik akhir Dan nama model Azure OpenAI Anda untuk aplikasi sampel:
dotnet user-secrets init dotnet user-secrets set AZURE_OPENAI_ENDPOINT <your-Azure-OpenAI-endpoint> dotnet user-secrets set AZURE_OPENAI_GPT_NAME <your-Azure-OpenAI-model-name> dotnet user-secrets set AZURE_OPENAI_API_KEY <your-Azure-OpenAI-key>
Mengonfigurasi aplikasi
Arahkan ke direktori utama proyek .NET Anda dari terminal atau command prompt.
Jalankan perintah berikut untuk mengonfigurasi kunci OPENAI API Anda sebagai rahasia untuk aplikasi sampel:
dotnet user-secrets init dotnet user-secrets set OpenAIKey <your-OpenAI-key> dotnet user-secrets set ModelName <your-OpenAI-model-name>
Menambahkan kode aplikasi
Aplikasi ini menggunakan Microsoft.Extensions.AI paket untuk mengirim dan menerima permintaan ke model AI.
Dalam file Program.cs, tambahkan kode berikut untuk menyambungkan dan mengautentikasi ke model AI.
ChatClientjuga dikonfigurasi untuk menggunakan pemanggilan fungsi, yang memungkinkan model AI untuk memanggil fungsi .NET dalam kode Anda.IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string deployment = config["AZURE_OPENAI_GPT_NAME"]; string apiKey = config["AZURE_OPENAI_API_KEY"]; IChatClient client = new ChatClientBuilder( new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(apiKey)) .GetChatClient(deployment).AsIChatClient()) .UseFunctionInvocation() .Build();using Microsoft.Extensions.AI; using Microsoft.Extensions.Configuration; using OpenAI; IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string? model = config["ModelName"]; string? key = config["OpenAIKey"]; IChatClient client = new ChatClientBuilder(new OpenAIClient(key).GetChatClient(model ?? "gpt-4o").AsIChatClient()) .UseFunctionInvocation() .Build();Buat objek baru
ChatOptionsyang berisi fungsi sebaris yang dapat dipanggil model AI untuk mendapatkan cuaca saat ini. Deklarasi fungsi mencakup delegasi untuk menjalankan parameter logika, dan nama dan deskripsi untuk menjelaskan tujuan fungsi ke model AI.// Add a new plugin with a local .NET function // that should be available to the AI model. var chatOptions = new ChatOptions { Tools = [AIFunctionFactory.Create((string location, string unit) => { // Here you would call a weather API // to get the weather for the location. return "Periods of rain or drizzle, 15 C"; }, "get_current_weather", "Gets the current weather in a given location")] };Tambahkan permintaan sistem ke
chatHistoryuntuk memberikan konteks dan instruksi ke model. Kirim permintaan pengguna dengan pertanyaan yang memerlukan model AI untuk memanggil fungsi terdaftar untuk menjawab pertanyaan dengan benar.// System prompt to provide context. List<ChatMessage> chatHistory = [new(ChatRole.System, """ You are a hiking enthusiast who helps people discover fun hikes in their area. You are upbeat and friendly. """)]; // Weather conversation relevant to the registered function. chatHistory.Add(new ChatMessage(ChatRole.User, "I live in Montreal and I'm looking for a moderate intensity hike. What's the current weather like?")); Console.WriteLine($"{chatHistory.Last().Role} >>> {chatHistory.Last()}"); ChatResponse response = await client.GetResponseAsync(chatHistory, chatOptions); Console.WriteLine($"Assistant >>> {response.Text}");dotnet runGunakan perintah untuk menjalankan aplikasi:dotnet runAplikasi mencetak respons penyelesaian dari model AI, yang mencakup data yang disediakan oleh fungsi .NET. Model AI memahami bahwa fungsi terdaftar tersedia dan memanggilnya secara otomatis untuk menghasilkan respons yang tepat.
Membersihkan sumber daya
Jika Anda tidak lagi membutuhkannya, hapus sumber daya Azure OpenAI dan penyebaran model GPT-4.
- Di Portal Azure, navigasikan ke sumber daya Azure OpenAI.
- Pilih sumber daya Azure OpenAI, lalu pilih Hapus.