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, 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 veya üzerini yükleme
- Ollama'yi cihazınıza yerel olarak yükleme
- Visual Studio Code (isteğe bağlı)
Yerel yapay zeka modelini çalıştırma
Cihazınızda yerel bir yapay zeka modelini yapılandırmak ve çalıştırmak için aşağıdaki adımları tamamlayın. Birçok farklı yapay zeka modeli yerel olarak çalıştırılır ve kod oluşturma, görüntüleri analiz etme, üretken sohbet veya ekleme oluşturma gibi farklı görevler için eğitilir. Bu hızlı başlangıçta, Microsoft tarafından oluşturulan küçük ama yetenekli bir yapay zeka olan genel amaçlı phi3:mini modelini kullanacaksınız.
Bir terminal penceresi açın ve Cihazınızda Ollama'nın kullanılabilir olduğunu doğrulayın:
ollamaOllama kullanılabilir durumdaysa, kullanılabilir komutların listesini görüntüler.
Ollama'yı başlatın:
ollama serveOllama çalışıyorsa, kullanılabilir komutların listesini görüntüler.
Ollama kayıt defterinden
phi3:minimodelini çekin ve indirmesini bekleyin:ollama pull phi3:miniİndirme tamamlandıktan sonra modeli çalıştırın:
ollama run phi3:miniOllama,
phi3:minimodelini başlatır ve bu modelle etkileşim kurmanız için bir istem sağlar.
.NET uygulamasını oluşturma
Yerel phi3:mini yapay zeka modelinize bağlanan bir .NET konsol uygulaması oluşturmak için aşağıdaki adımları tamamlayın.
Terminal penceresinde cihazınızda boş bir dizine gidin ve
dotnet newkomutuyla yeni bir uygulama oluşturun:dotnet new console -o LocalAIOllamaSharp paketini uygulamanıza ekleyin:
dotnet add package OllamaSharpYeni uygulamayı visual studio code gibi kendi seçtiğiniz düzenleyicide açın.
code .
Yapay zeka modeline bağlanma ve bu modelle sohbet etme
Önümüzdeki adımlarda, yerel yapay zekaya bağlanan ve sohbet deneyimini geliştirmek için konuşma geçmişini depolayan basit bir uygulama oluşturacaksınız.
Program.cs dosyasını açın ve dosyanın içeriğini aşağıdaki kodla değiştirin:
using Microsoft.Extensions.AI; using OllamaSharp; IChatClient chatClient = new OllamaApiClient(new Uri("http://localhost:11434/"), "phi3:mini"); // Start the conversation with context for the AI model List<ChatMessage> chatHistory = new(); while (true) { // Get user prompt and add to chat history Console.WriteLine("Your prompt:"); var userPrompt = Console.ReadLine(); chatHistory.Add(new ChatMessage(ChatRole.User, userPrompt)); // Stream the AI response and add to chat history Console.WriteLine("AI Response:"); var 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(); }Yukarıdaki kod aşağıdakileri gerçekleştirir:
-
OllamaChatClientarabirimini uygulayan birIChatClientoluşturur.- Bu arabirim, yapay zeka modelleriyle sohbet etmek için kullanabileceğiniz gevşek bir şekilde bağlanmış bir soyutlama sağlar.
- Daha sonra temel alınan sohbet istemcisi uygulamasını başka bir kod değiştirmeden Azure OpenAI gibi başka bir modelle değiştirebilirsiniz.
- Kullanıcı ile yapay zeka modeli arasındaki iletileri depolamak için bir
ChatHistorynesne oluşturur. - Kullanıcıdan bir istem alır ve
ChatHistoryiçinde saklar. - Yanıt oluşturmak için sohbet verilerini yapay zeka modeline gönderir.
Uyarı
Ollama varsayılan olarak 11434 numaralı bağlantı noktasında çalışır. Bu nedenle yapay zeka modeli uç noktası olarak
http://localhost:11434ayarlanır.-
Uygulamayı çalıştırın ve yapay zekadan aşağıdaki gibi bir yanıt almak için konsola bir istem girin:
Your prompt: Tell me three facts about .NET. AI response: 1. **Cross-Platform Development:** One of the significant strengths of .NET, particularly its newer iterations (.NET Core and .NET 5+), is cross-platform support. It allows developers to build applications that run on Windows, Linux, macOS, and various other operating systems seamlessly, enhancing flexibility and reducing barriers for a wider range of users. 2. **Rich Ecosystem and Library Support:** .NET has a rich ecosystem, comprising an extensive collection of libraries (such as those provided by the official NuGet Package Manager), tools, and services. This allows developers to work on web applications (.NET for desktop apps and ASP.NET Core for modern web applications), mobile applications (.NET MAUI), IoT solutions, AI/ML projects, and much more with a vast array of prebuilt components available at their disposal. 3. **Type Safety:** .NET operates under the Common Language Infrastructure (CLI) model and employs managed code for executing applications. This approach inherently offers strong type safety checks which help in preventing many runtime errors that are common in languages like C/C++. It also enables features such as garbage collection, thus relieving developers from manual memory management. These characteristics enhance the reliability of .NET-developed software and improve productivity by catching issues early during development.Yapay zekadan gelen yanıt doğru ancak ayrıntılıdır. Depolanan sohbet geçmişi, yapay zekanın yanıtını değiştirmesini sağlar. Yapay zekaya sağladığı listeyi kısaltmasını emret:
Your prompt: Shorten the length of each item in the previous response. AI Response: **Cross-platform Capabilities:** .NET allows building for various operating systems through platforms like .NET Core, promoting accessibility (Windows, Linux, macOS). **Extensive Ecosystem:** Offers a vast library selection via NuGet and tools for web (.NET Framework), mobile development (.NET MAUI), IoT, AI, providing rich capabilities to developers. **Type Safety & Reliability:** .NET's CLI model enforces strong typing and automatic garbage collection, mitigating runtime errors, thus enhancing application stability.Yapay zekanın güncelleştirilmiş yanıtı ikinci seferde çok daha kısadır. Kullanılabilir sohbet geçmişi nedeniyle yapay zeka önceki sonucu değerlendirebildi ve daha kısa özetler sağladı.