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ğlanmak için 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.
Not
Bu makaledeki görevleri gerçekleştirmek için Anlam Çekirdeği de kullanabilirsiniz. Anlam Çekirdeği, yapay zeka aracıları oluşturmanıza ve en son yapay zeka modellerini .NET uygulamalarınızla tümleştirmenize olanak tanıyan basit, açık kaynaklı bir SDK'dır.
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 new
komutunu kullanın:dotnet new console -o FunctionCallingAI
Dizini uygulama klasörüne değiştirin:
cd FunctionCallingAI
Gerekli 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.UserSecrets
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.UserSecrets
Uygulamayı 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>
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.using Microsoft.Extensions.Configuration; using Microsoft.Extensions.AI; using Azure.AI.OpenAI; using Azure.Identity; var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build(); string endpoint = config["AZURE_OPENAI_ENDPOINT"]; string deployment = config["AZURE_OPENAI_GPT_NAME"]; IChatClient client = new ChatClientBuilder( new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) .GetChatClient(deployment).AsIChatClient()) .UseFunctionInvocation() .Build();
Not
DefaultAzureCredential yerel araçlarınız aracılığıyla kimlik doğrulama bilgilerini arar. Azure OpenAI kaynağını sağlamak için
azd
şablonunu kullanmıyorsanız, Visual Studio'da veya Azure CLI'da oturum açarken kullandığınız hesabaAzure AI Developer
rolünü atamanız gerekir. Daha fazla bilgi için bkz. .NET ile Azure AI hizmetlerinde kimlik doğrulaması.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
ChatOptions
nesnesi 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", "Get 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 run
komutunu kullanın:dotnet run
Uygulama, .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
- Hızlı Başlangıç - .NET ile yapay zeka sohbet uygulaması oluşturma
- .NET ve Azure OpenAI Tamamlamaları ile metin ve konuşma oluşturma