Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, yerel işlev çağrısının etkinleştirildiği bir yapay zeka modeline bağlanan bir .NET konsol yapay zeka sohbet uygulaması oluşturacaksınız. Uygulama, belirli bir SDK yerine yapay zeka soyutlamalarını kullanarak kod yazabilmeniz için Microsoft.Extensions.AI kitaplığını kullanır. Yapay zeka soyutlamaları, temel alınan yapay zeka modelini en az kod değişikliğiyle değiştirmenize olanak tanır.
Önkoşullar
- .NET 8.0 SDK veya üzeri - .NET 8.0 SDK'sınıyükleyin.
- Bu örneği çalıştırabilmeniz için OpenAI API anahtarı.
Önkoşullar
- .NET 8.0 SDK veya üzeri - .NET 8 SDK'sınıyükleyin.
- Azure aboneliği - Ücretsizoluşturun.
- Azure Geliştirici CLI'sı (isteğe bağlı) - Azure Developer CLIyükleyin veya güncelleştirin.
Uygulamayı oluşturma
Bir yapay zeka modeline bağlanmak üzere bir .NET konsol uygulaması oluşturmak için aşağıdaki adımları tamamlayın.
Bilgisayarınızdaki boş bir dizinde yeni bir konsol uygulaması oluşturmak için
dotnet newkomutunu kullanın:dotnet new console -o FunctionCallingAIDizini uygulama klasörüne değiştirin:
cd FunctionCallingAIGerekli paketleri yükleyin:
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.UserSecretsUygulamayı Visual Studio Code'da veya seçtiğiniz düzenleyicide açma
code .
Yapay zeka hizmetini oluşturma
Azure OpenAI hizmeti ve modeli sağlamak için Azure OpenAI Hizmeti kaynak oluşturma ve dağıtma makalesindeki adımları tamamlayın.
Terminal veya komut isteminden proje dizininizin köküne gidin.
Örnek uygulama için Azure OpenAI uç noktanızı ve model adınızı yapılandırmak için aşağıdaki komutları çalıştırın:
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>
Uygulamayı yapılandırma
Terminalden veya komut isteminden .NET projenizin köküne gidin.
OpenAI API anahtarınızı örnek uygulama için gizli dizi olarak yapılandırmak için aşağıdaki komutları çalıştırın:
dotnet user-secrets init dotnet user-secrets set OpenAIKey <your-OpenAI-key> dotnet user-secrets set ModelName <your-OpenAI-model-name>
Uygulama kodunu ekleme
Uygulama, yapay zeka modeline istek göndermek ve almak için Microsoft.Extensions.AI paketini kullanır.
Program.cs dosyasında, yapay zeka modeline bağlanmak ve kimlik doğrulaması yapmak için aşağıdaki kodu ekleyin.
ChatClient, yapay zeka modelinin kodunuzdaki .NET işlevlerini çağırmasına olanak tanıyan işlev çağrısını kullanacak şekilde de yapılandırılır.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();Geçerli hava durumunu almak için yapay zeka modelinin çağırabileceği satır içi işlevi içeren yeni bir
ChatOptionsnesnesi oluşturun. İşlev bildirimi, mantığı çalıştırmak için bir temsilci ve işlevin yapay zeka modeline amacını açıklamak için ad ve açıklama parametrelerini içerir.// 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")] };Modele bağlam ve yönergeler sağlamak için
chatHistory'a bir sistem komutu ekleyin. Yapay zeka modelinin soruyu düzgün bir şekilde yanıtlamak için kayıtlı işlevi çağırmasını gerektiren bir soru içeren bir kullanıcı istemi gönderin.// 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}");uygulamayı çalıştırmak için
dotnet runkomutunu kullanın:dotnet runUygulama, .NET işlevi tarafından sağlanan verileri içeren yapay zeka modelinden tamamlama yanıtını yazdırır. Yapay zeka modeli, kayıtlı işlevin kullanılabilir olduğunu anladı ve uygun bir yanıt oluşturmak için otomatik olarak çağrıldı.
Kaynakları temizleme
Artık bunlara ihtiyacınız yoksa Azure OpenAI kaynağını ve GPT-4 model dağıtımını silin.
- Azure Portalüzerinde Azure OpenAI kaynağına gidin.
- Azure OpenAI kaynağını seçin ve ardından Silöğesini seçin.
Sonraki adımlar
- Yapay zeka işlevlerindeki verilere erişme
- Hızlı Başlangıç - .NET ile yapay zeka sohbet uygulaması oluşturma
- .NET ve Azure OpenAI Tamamlamaları ile metin ve konuşma oluşturma