Aracılığıyla paylaş


.NET ile yapay zeka sohbet uygulaması oluşturma

Bu hızlı başlangıçta, OpenAI veya Azure OpenAI modeli kullanarak konuşma .NET konsol sohbet uygulaması oluşturmayı öğreneceksiniz. 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

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.

  1. Bilgisayarınızdaki boş bir dizinde yeni bir konsol uygulaması oluşturmak için dotnet new komutunu kullanın:

    dotnet new console -o ChatAppAI
    
  2. Dizini uygulama klasörüne değiştirin:

    cd ChatAppAI
    
  3. Gerekli paketleri yükleyin:

    dotnet add package Azure.Identity
    dotnet add package Azure.AI.OpenAI
    dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease
    dotnet add package Microsoft.Extensions.Configuration
    dotnet add package Microsoft.Extensions.Configuration.UserSecrets
    
    dotnet add package OpenAI
    dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease
    dotnet add package Microsoft.Extensions.Configuration
    dotnet add package Microsoft.Extensions.Configuration.UserSecrets
    
  4. Uygulamayı Visual Studio Code'da (veya istediğiniz düzenleyicide) açın.

    code .
    

Yapay zeka hizmetini oluşturma

  1. Azure OpenAI hizmeti ve modeli sağlamak için Azure OpenAI Hizmeti kaynak oluşturma ve dağıtma makalesindeki adımları tamamlayın.

  2. Terminal veya komut isteminden proje dizininizin köküne gidin.

  3. Ö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

  1. Terminalden veya komut isteminden .NET projenizin köküne gidin.

  2. 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

Bu uygulama, yapay zeka modeline istek göndermek ve almak için Microsoft.Extensions.AI paketini kullanır. Uygulama, kullanıcılara yürüyüş parkurları hakkında bilgi sağlar.

  1. AI modeline Program.cs bağlanmak ve kimlik doğrulaması yapmak için dosyasına aşağıdaki kodu ekleyin.

    IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
    string endpoint = config["AZURE_OPENAI_ENDPOINT"];
    string deployment = config["AZURE_OPENAI_GPT_NAME"];
    
    IChatClient chatClient =
        new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential())
        .GetChatClient(deployment)
        .AsIChatClient();
    

    Uyarı

    DefaultAzureCredential yerel yazılım araçlarınızdan 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 hesaba Azure AI Developer rolünü atamanız gerekir. Daha fazla bilgi için bkz. .NETile Azure AI hizmetlerinde kimlik doğrulaması .

    var config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
    string model = config["ModelName"];
    string key = config["OpenAIKey"];
    
    // Create the IChatClient
    IChatClient chatClient =
        new OpenAIClient(key).GetChatClient(model).AsIChatClient();
    
  2. Yapay zeka modeline ilk rol bağlamını ve yürüyüş önerileriyle ilgili yönergeleri sağlamak için bir sistem istemi oluşturun:

    // Start the conversation with context for the AI model
    List<ChatMessage> chatHistory =
        [
            new ChatMessage(ChatRole.System, """
                You are a friendly hiking enthusiast who helps people discover fun hikes in their area.
                You introduce yourself when first saying hello.
                When helping people out, you always ask them for this information
                to inform the hiking recommendation you provide:
    
                1. The location where they would like to hike
                2. What hiking intensity they are looking for
    
                You will then provide three suggestions for nearby hikes that vary in length
                after you get that information. You will also share an interesting fact about
                the local nature on the hikes when making a recommendation. At the end of your
                response, ask if there is anything else you can help with.
            """)
        ];
    
  3. Kullanıcıdan bir giriş istemi kabul eden, istemi modele gönderen ve yanıt tamamlama işlemini yazdıran bir konuşma döngüsü oluşturun:

    // Loop to get user input and stream AI response
    while (true)
    {
        // Get user prompt and add to chat history
        Console.WriteLine("Your prompt:");
        string? userPrompt = Console.ReadLine();
        chatHistory.Add(new ChatMessage(ChatRole.User, userPrompt));
    
        // Stream the AI response and add to chat history
        Console.WriteLine("AI Response:");
        string response = "";
        await foreach (ChatResponseUpdate item in
            chatClient.GetStreamingResponseAsync(chatHistory))
        {
            Console.Write(item.Text);
            response += item.Text;
        }
        chatHistory.Add(new ChatMessage(ChatRole.Assistant, response));
        Console.WriteLine();
    }
    
  4. uygulamayı çalıştırmak için dotnet run komutunu kullanın:

    dotnet run
    

    Uygulama, yapay zeka modelinden tamamlama yanıtını yazdırır. Ek izleme istemleri gönderin ve yapay zeka sohbeti işlevselliğiyle deneme yapmak için başka sorular sorun.

Kaynakları temizleme

Artık bunlara ihtiyacınız yoksa Azure OpenAI kaynağını ve GPT-4 model dağıtımını silin.

  1. Azure Portalüzerinde Azure OpenAI kaynağına gidin.
  2. Azure OpenAI kaynağını seçin ve ardından Silöğesini seçin.

Sonraki adımlar