﻿
{"id":27568,"date":"2025-02-25T22:47:33","date_gmt":"2025-02-25T22:47:33","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=27568"},"modified":"2025-02-25T22:50:52","modified_gmt":"2025-02-25T22:50:52","slug":"nette-microsoft-extensions-ai-kutuphanesiyle-llm-kullanimi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/nette-microsoft-extensions-ai-kutuphanesiyle-llm-kullanimi\/","title":{"rendered":".NET&#8217;te Microsoft.Extensions.AI K\u00fct\u00fcphanesiyle LLM Kullan\u0131m\u0131"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Malumunuz bir \u00f6nceki <a href=\"https:\/\/www.gencayyildiz.com\/blog\/semantic-kernel-nedir-deepseek-r1-esliginde-net-acisindan-derinlemesine-degerlendirelim\/\" target=\"_blank\" rel=\"noopener\">Semantic Kernel Nedir? (DeepSeek R1 E\u015fli\u011finde .NET A\u00e7\u0131s\u0131ndan Derinlemesine De\u011ferlendirelim)<\/a> ba\u015fl\u0131kl\u0131 i\u00e7eri\u011fimizde .NET uygulamalar\u0131nda AI deste\u011fini olduk\u00e7a h\u0131zl\u0131 ve pratik bir \u015fekilde yap\u0131land\u0131rabilece\u011fimiz bir ara\u00e7 seti olan Semantic Kernel k\u00fct\u00fcphanesini incelemi\u015f ve konuya dair teorik ve teknik bir zemin olu\u015fturabilecek i\u00e7eri\u011fi klavyeye alm\u0131\u015ft\u0131k. Bu i\u00e7eri\u011fimizde ise Semantic Kernel SDK&#8217;ini daha da extend edecek olan <code>Microsoft.Extensions.AI<\/code> k\u00fct\u00fcphanesini ve bu k\u00fct\u00fcphane \u00fczerinden .NET uygulamalar\u0131ndaki LLM&#8217;lere dair g\u00f6sterebilece\u011fimiz davran\u0131\u015flar\u0131 ele al\u0131yor olaca\u011f\u0131z. O halde buyurun ba\u015flayal\u0131m&#8230;<\/p>\n<h4>Microsoft.Extensions.AI K\u00fct\u00fcphanesi Nedir?<\/h4>\n<p><code>Microsoft.Extensions.AI<\/code>; .NET uygulamalar\u0131nda LLM&#8217;lerin karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 uygulamadan soyutlayarak \u00e7al\u0131\u015ft\u0131rmak ve y\u00f6netmek i\u00e7in Semantic Kernel \u00fczerine in\u015fa edilerek geli\u015ftirilmi\u015f bir k\u00fct\u00fcphanedir. Bu k\u00fct\u00fcphane sayesinde LLM destekli uygulama geli\u015ftiricileri, uygulama koduna radikal m\u00fcdahalelerde bulunmaks\u0131z\u0131n Ollama, Azure veya OpenAI gibi LLM sa\u011flay\u0131c\u0131lar\u0131 aras\u0131nda rahatl\u0131kla ge\u00e7i\u015fler yapabilmekte ve bir yandan da t\u00fcm bu s\u00fcre\u00e7teki yap\u0131land\u0131rma maliyetlerini minimize edebilmektedir.<\/p>\n<p>Bir ba\u015fka deyi\u015fle, <code>Microsoft.Extensions.AI<\/code>, belirli bir LLM sa\u011flay\u0131c\u0131s\u0131na \u00f6zg\u00fc API&#8217;ler sunmak yerine, farkl\u0131 sa\u011flay\u0131c\u0131lar\u0131n ortak temel kavramlara ba\u011fl\u0131 olarak uygulanabilece\u011fi soyutlamalar sunarak geli\u015ftiricilerin yapay zeka servisleriyle sorunsuz entegrasyon yapabilmesini sa\u011flamaktad\u0131r.<\/p>\n<p><code>Microsoft.Extensions.AI<\/code> ile pratikte, .NET uygulamalar\u0131na AI\/ML modellerini geli\u015ftirici dostu API imkan\u0131 sayesinde basit ve olduk\u00e7a anla\u015f\u0131l\u0131r bir \u015fekilde kolayca entegre edebilir ve verimli \u00e7al\u0131\u015fmalar i\u00e7in optimizasyon imkan\u0131 sa\u011flayabiliriz. Bu do\u011frultuda; metin ve duygu analizi, dil \u00e7evirisi gibi NLP g\u00f6revlerini yapabilece\u011fimiz gibi nesne tan\u0131ma, y\u00fcz tan\u0131ma ya da g\u00f6r\u00fcnt\u00fc s\u0131n\u0131fland\u0131rma gibi g\u00f6r\u00fcnt\u00fc i\u015fleme s\u00fcre\u00e7lerini de rahatl\u0131kla y\u00fcr\u00fctebiliriz. Ayr\u0131ca tahminleme g\u00f6revleri veya \u00f6neri sistemleri de olu\u015fturarak uygulamalar\u0131m\u0131z\u0131n kalitesini destekleyecek \u00e7al\u0131\u015fmalar ger\u00e7ekle\u015ftirebiliriz.<\/p>\n<h4>Microsoft.Extensions.AI K\u00fct\u00fcphanesinin Semantic Kernel&#8217;dan Fark\u0131 Nedir?<\/h4>\n<p>Her ikisi de .NET ekosisteminde yapay zeka (AI) ve makine \u00f6\u011frenimi (ML) ile \u00e7al\u0131\u015fmak i\u00e7in kullan\u0131lan g\u00fczide ara\u00e7lard\u0131r \ud83d\ude42 Lakin bu iki arac\u0131n ama\u00e7lar\u0131 ve kullan\u0131m alanlar\u0131 farkl\u0131d\u0131r. \u015e\u00f6yle ki;<\/p>\n<table style=\"font-size: 12px;\">\n<thead>\n<tr>\n<th style=\"width: 50%;\">Microsoft.Extensions.AI<\/th>\n<th>Semantic Kernel<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"vertical-align: text-top;\">.NET uygulamalar\u0131 i\u00e7in standart yapay zeka soyutlamalar\u0131 sa\u011flayan bir k\u00fct\u00fcphanedir. OpenAI, Azure AI Inference, Ollama vs. gibi farkl\u0131 AI servislerine eri\u015fimi standart bir aray\u00fczle y\u00f6netmeyi hedeflemektedir. Bu a\u00e7\u0131dan de\u011ferlendirdi\u011fimizde daha \u00e7ok altyap\u0131 seviyesinde bir k\u00fct\u00fcphane oldu\u011funu s\u00f6yleyebilir ve AI servislerine do\u011frudan entegrasyonu kolayla\u015ft\u0131rd\u0131\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnebiliriz.<\/p>\n<ul style=\"text-align: left;\">\n<li><em><u>Amac\u0131<\/u><\/em><br \/>\n.NET uygulamalar\u0131na AI\/ML modellerini entegre etmek i\u00e7in temel altyap\u0131 ve ara\u00e7lar sa\u011flamakt\u0131r.<\/li>\n<li><em><u>Odak Noktas\u0131<\/u><\/em><br \/>\nAI\/ML modellerinin .NET ortam\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131, optimizasyonunu ve y\u00f6netimini sa\u011flamakt\u0131r.<\/li>\n<li><em><u>Kullan\u0131m Senaryolar\u0131<\/u><\/em><br \/>\nModel performans\u0131n\u0131 optimize etmek, AI\/ML modelleriyle \u00e7al\u0131\u015fabilmek i\u00e7in geli\u015ftirici dostu API&#8217;ler sunarak entegrasyon s\u00fcre\u00e7lerini standartla\u015ft\u0131rmak vs.<\/li>\n<\/ul>\n<\/td>\n<td style=\"vertical-align: text-top;\">Yapay zeka modellerini programlama mant\u0131\u011f\u0131yla birle\u015ftirmeye odaklanan bir AI orkestrasyon arac\u0131 oldu\u011funu d\u00fc\u015f\u00fcnebiliriz. Planlama, bellek y\u00f6netimi ve ba\u011flamsal i\u015f ak\u0131\u015flar\u0131(contextual workflows) gibi ek yetenekler e\u015fli\u011finde, AI modellerini klasik kodlama paradigmalar\u0131yla birle\u015ftirmeyi kolayla\u015ft\u0131r\u0131r.<\/p>\n<ul style=\"text-align: left;\">\n<li><em><u>Amac\u0131<\/u><\/em><br \/>\nUygulaman\u0131n b\u00fcy\u00fck dil modelleri (LLM) ve AI servisleriyle etkile\u015fim kurmas\u0131n\u0131 sa\u011flamakt\u0131r.<\/li>\n<li><em><u>Odak Noktas\u0131<\/u><\/em><br \/>\nOpenAI GPT, Azure OpenAI vs. gibi AI servisleri ile uygulama aras\u0131nda i\u015f mant\u0131\u011f\u0131 seviyesinde davran\u0131\u015flar\u0131 ger\u00e7ekle\u015ftirmek ve AI i\u015f ak\u0131\u015flar\u0131n\u0131 uygulaman\u0131n gereksinimi do\u011frultusunda yap\u0131land\u0131r\u0131p, y\u00f6netmektir.<\/li>\n<li><em><u>Kullan\u0131m Senaryolar\u0131<\/u><\/em><br \/>\nB\u00fcy\u00fck dil modelleriyle uygulama etkile\u015fimini kurmak, pluginler arac\u0131l\u0131\u011f\u0131yla AI yeteneklerini uygulaman\u0131n davran\u0131\u015flar\u0131 ve gereksinimlerine uygun olacak \u015fekilde \u00f6zelle\u015ftirmek ya da geni\u015fletmek vs.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"vertical-align: text-top;\" colspan=\"2\">Anlayaca\u011f\u0131n\u0131z; <code>Microsoft.Extensions.AI<\/code>, .NET uygulamalar\u0131na yapay zeka servislerinin uygulama taraf\u0131ndan yap\u0131land\u0131r\u0131lmas\u0131n\u0131 kolayla\u015ft\u0131rmakta ve bunun i\u00e7in bir context y\u00f6netimi ve dependency injection yap\u0131s\u0131 gibi entegrasyon kolayl\u0131\u011f\u0131 sa\u011flamaktad\u0131r. Semantic Kernel ise AI modellerini programatik olarak kullanmay\u0131 kolayla\u015ft\u0131rarak kod seviyesinde yapay zeka ile uygulaman\u0131n gereksinimlerine g\u00f6re etkile\u015fim sa\u011flamakta ve kullan\u0131c\u0131 deneyimiyle ili\u015fkili s\u00fcre\u00e7lere yapay zekan\u0131n niteliklerini entegre etmemize imkan tan\u0131maktad\u0131r.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Yani k\u0131saca hangi durumlarda hangisini kullanmal\u0131y\u0131z hoca la?<\/strong> diye sordu\u011funuzu duyar gibiyim&#8230; Bu sual i\u00e7in kafan\u0131zda \u015f\u00f6yle bir \u015fema oturtman\u0131z gayet yeterli ve net bir \u00f6zet olacakt\u0131r: E\u011fer sadece OpenAI, Azure AI vb. AI servislerine eri\u015fimi kolayla\u015ft\u0131rmak istiyorsan <code>Microsoft.Extensions.AI<\/code> k\u00fct\u00fcphanesini, yok e\u011fer AI modellerini i\u015f ak\u0131\u015flar\u0131na entegre ederek, ba\u011flamsal bellek y\u00f6netiminden istifade etmek, planlama yapmak ve uygulaman\u0131n gereksinimleri do\u011frultusunda ilgili AI modelinin davran\u0131\u015f\u0131n\u0131\/kapsam\u0131n\u0131 \u015fekillendirmek ve y\u00f6nlendirmek istiyorsan Semantic Kernel&#8217;\u0131 se\u00e7ebilirsin.<\/p>\n<h4>Ollama Nedir?<\/h4>\n<p>Ollama, LLM&#8217;leri local ortamda \u00e7al\u0131\u015ft\u0131rmay\u0131 basitle\u015ftiren open source bir platformdur. OpenAI gibi cloud tabanl\u0131 \u00e7\u00f6z\u00fcmlerden farkl\u0131 olarak DeepSeek, Llama vs. gibi \u00e7e\u015fitli a\u00e7\u0131k kaynak modelleri local ortamda ya da dockerize ederek \u00e7al\u0131\u015ft\u0131rabilmekte ve b\u00f6ylece cloud servislerine ba\u011fl\u0131 kalmaks\u0131z\u0131n ya da internet ba\u011flant\u0131s\u0131 gerektirmeksizin AI ile ilgili denemeler yap\u0131lmas\u0131n\u0131 kolayla\u015ft\u0131rmaktad\u0131r.<\/p>\n<p>Dolay\u0131s\u0131yla bu i\u00e7eri\u011fimizde Ollama \u00fczerinden DeepSeek-R1 modelini dockerize edecek ve gerekli pratiksel dokunu\u015flar\u0131 <code>Microsoft.Extensions.AI<\/code> k\u00fct\u00fcphanesi e\u015fli\u011finde ger\u00e7ekle\u015ftirece\u011fiz. Bunun i\u00e7in a\u015fa\u011f\u0131daki talimatlar\u0131n \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131 yeterlidir;<\/p>\n<div style=\"font-size:12px\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\ndocker run -d -v ollama:\/root\/.ollama -p 11434:11434 --name ollama ollama\/ollama\r\ndocker exec -it ollama \/bin\/bash\r\nollama run deepseek-r1\r\n<\/pre>\n<\/div>\n<h4>Basit Seviyede <code>Microsoft.Extensions.AI<\/code> \u0130le Chat Completion<\/h4>\n<p>Evet, art\u0131k basit seviyede <code>Microsoft.Extensions.AI<\/code> ile bir chat completion \u00e7al\u0131\u015fmas\u0131na imza atabiliriz. Bunun i\u00e7in bir .NET projesi olu\u015ftural\u0131m ve ilgili projeye a\u015fa\u011f\u0131daki k\u00fct\u00fcphaneleri y\u00fckleyerek \u00e7al\u0131\u015fmalara haz\u0131r k\u0131ta bir altyap\u0131 olu\u015ftural\u0131m;<\/p>\n<ul>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Extensions.AI\" target=\"_blank\">Microsoft.Extensions.AI<\/a><\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Extensions.AI.Ollama\" target=\"_blank\">Microsoft.Extensions.AI.Ollama<\/a><\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Extensions.Hosting\" target=\"_blank\">Microsoft.Extensions.Hosting<\/a><\/li>\n<\/ul>\n<p>Ard\u0131ndan a\u015fa\u011f\u0131daki gibi asgari bir kurulumla chat completion&#8217;\u0131 tamamlayal\u0131m;<\/p>\n<div style=\"font-size:12px\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar builder = Host.CreateApplicationBuilder();\r\n\r\nbuilder.Services.AddChatClient(new OllamaChatClient(new Uri(&quot;http:\/\/localhost:11434&quot;), &quot;deepseek-r1&quot;));\r\n\r\nvar app = builder.Build();\r\n\r\nvar chatClient = app.Services.GetRequiredService&lt;IChatClient&gt;();\r\n\r\nvar chatCompletion = await chatClient.GetResponseAsync(&quot;1 + 1 = ?&quot;);\r\n\r\nConsole.WriteLine(chatCompletion.Message.Text);\r\n<\/pre>\n<\/div>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere burada pek g\u00f6steri\u015fli oldu\u011funu iddia edemeyece\u011fimiz dependency injection dokunu\u015fu e\u015fli\u011finde basit bir sual \u00fczerinden \u00f6rneklemde bulunuyoruz. Burada tek dikkatinize de\u011feyecek olan husus, <code>Microsoft.Extensions.AI<\/code> k\u00fct\u00fcphanesinin herhangi bir ekstradan API \u00e7a\u011fr\u0131s\u0131 gerektirmeksizin hedef AI modeline eri\u015fimi sa\u011flay\u0131p, basit\u00e7e kullan\u0131labilir k\u0131lmas\u0131d\u0131r diyebiliriz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/02\/NETte-Microsoft.Extensions.AI-Kutuphanesiyle-LLM-Kullanimi.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/02\/NETte-Microsoft.Extensions.AI-Kutuphanesiyle-LLM-Kullanimi.png\" alt=\".NET&#039;te Microsoft.Extensions.AI K\u00fct\u00fcphanesiyle LLM Kullan\u0131m\u0131\" width=\"841\" height=\"671\" class=\"aligncenter size-full wp-image-27585\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/02\/NETte-Microsoft.Extensions.AI-Kutuphanesiyle-LLM-Kullanimi.png 841w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/02\/NETte-Microsoft.Extensions.AI-Kutuphanesiyle-LLM-Kullanimi-300x239.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2025\/02\/NETte-Microsoft.Extensions.AI-Kutuphanesiyle-LLM-Kullanimi-768x613.png 768w\" sizes=\"auto, (max-width: 841px) 100vw, 841px\" \/><\/a><\/p>\n<p>\u015eimdi bu \u00f6rne\u011fi biraz daha geli\u015ftirerek ge\u00e7mi\u015f ba\u011flam \u00fczerinden bir chat \u00e7al\u0131\u015fmas\u0131na da \u00f6rnek sunmu\u015f olal\u0131m;<\/p>\n<div style=\"font-size:12px\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nvar builder = Host.CreateApplicationBuilder();\r\n\r\nbuilder.Services.AddChatClient(new OllamaChatClient(new Uri(&quot;http:\/\/localhost:11434&quot;), &quot;deepseek-r1&quot;));\r\n\r\nvar app = builder.Build();\r\n\r\nvar chatClient = app.Services.GetRequiredService&lt;IChatClient&gt;();\r\n\r\nvar chatHistory = new List&lt;ChatMessage&gt;();\r\nwhile (true)\r\n{\r\n    Console.Write(&quot;S\u00f6yle : &quot;);\r\n    var prompt = Console.ReadLine();\r\n    chatHistory.Add(new ChatMessage(ChatRole.User, prompt));\r\n    Console.Write(&quot;Cevap : &quot;);\r\n    var chatResponse = string.Empty;\r\n    await foreach (var response in chatClient.GetStreamingResponseAsync(chatHistory))\r\n    {\r\n        Console.Write(response.Text);\r\n        chatResponse += response.Text;\r\n    }\r\n    chatHistory.Add(new ChatMessage(ChatRole.Assistant, chatResponse));\r\n    Console.WriteLine();\r\n}\r\nConsole.Read();\r\n<\/pre>\n<\/div>\n<p>Burada dikkat ederseniz e\u011fer history \u00e7al\u0131\u015fmas\u0131 i\u00e7in Semantic Kernel&#8217;da ki gibi <code>ChatHistory<\/code> nesnesinden ziyade <code>ChatMessage<\/code> nesnesi kullan\u0131lmakta ve bu nesne t\u00fcr\u00fcnden bir koleksiyon \u00fczerinde uygulamadaki t\u00fcm mesajlar toplanmaktad\u0131r. Tabi bunu yaparken de mesaj\u0131n t\u00fcr\u00fcne \u00f6zel <em>ChatRole<\/em> verilmektedir. <em>ChatRole<\/em>, Semantic Kernel ile ilgili \u00f6nceki i\u00e7eri\u011fimizde<span style=\"font-size:12px;\">(bknz : <a href=\"https:\/\/www.gencayyildiz.com\/blog\/semantic-kernel-nedir-deepseek-r1-esliginde-net-acisindan-derinlemesine-degerlendirelim\/\" target=\"_blank\">Semantic Kernel<\/a>)<\/span> ele ald\u0131\u011f\u0131m\u0131z mesaj t\u00fcrleriyle birebir ayn\u0131 kar\u015f\u0131l\u0131\u011fa sahip olan <em>System<\/em>, <em>User<\/em> ve <em>Assistant<\/em> de\u011ferlerini ifade etmektedir. Bu mesaj t\u00fcrlerinin a\u00e7\u0131klamalar\u0131n\u0131 ilgili yaz\u0131dan a\u015fa\u011f\u0131da al\u0131nt\u0131layarak devam edelim;<\/p>\n<blockquote>\n<ul style=\"font-size:12px;\">\n<li><strong><em>System Messages<\/em><\/strong><br \/>\nModelin davran\u0131\u015f\u0131n\u0131 y\u00f6nlendirmek i\u00e7in kullan\u0131lan mesajlard\u0131r. Yani modelin bir rol oynamas\u0131n\u0131 ve belirli kurallar \u00e7er\u00e7evesinde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in kullan\u0131l\u0131rlar. Haliyle bu mesajlar genellikle kullan\u0131c\u0131lardan al\u0131nmaz ya da g\u00f6sterilmezler!\n<\/li>\n<li><strong><em>User Messages<\/em><\/strong><br \/>\nKullan\u0131c\u0131lar\u0131n yazd\u0131\u011f\u0131 mesajlard\u0131r. Model, bu mesajlara kar\u015f\u0131n yan\u0131t \u00fcretmekten sorumludur.\n<\/li>\n<li><strong><em>Assistant Messages<\/em><\/strong><br \/>\nYapay zeka modelinin verdi\u011fi yan\u0131tlard\u0131r.\n<\/li>\n<\/ul>\n<\/blockquote>\n<p>Ayr\u0131ca yine dikkat ederseniz, <code>GetStreamingResponseAsync<\/code> metodu sayesinde response&#8217;u stream olarak edinebilmekteyiz. Harika de\u011fil mi? \ud83d\ude09 Evet, bunu Semantic Kernel&#8217;da da ger\u00e7ekle\u015ftirebiliyoruz ve web socket ya da SignalR gibi bir teknolojiyle bu stream&#8217;e e\u015flik edip, \u00f6zellikle web uygulamalar\u0131nda Chat GPT&#8217;de oldu\u011fu gibi AI modeliyle ak\u0131\u015fkan bir \u015fekilde kullan\u0131c\u0131 deneyimi a\u00e7\u0131s\u0131ndan gayet kullan\u0131\u015fl\u0131 ve \u00fcst d\u00fczey \u00e7al\u0131\u015fmalar\u0131 ger\u00e7ekle\u015ftirebiliyoruz.<\/p>\n<p>Nihai olarak;<br \/>\n<code>Microsoft.Extensions.AI<\/code> k\u00fct\u00fcphanesi ile esas\u0131nda Semantic Kernel&#8217;\u0131n yapt\u0131\u011f\u0131 bir\u00e7ok i\u015fi ger\u00e7ekle\u015ftirebilmekte ve hatta uygulama gereksinimlerinin detaylar\u0131na kadar AI dokunu\u015flar\u0131 sergileyebilmekteyiz. LLM&#8217;leri .NET uygulamalar\u0131na entegre ederken h\u0131zl\u0131 ve basit bir \u015fekilde netice elde etmek isteniyorsa <code>Microsoft.Extensions.AI<\/code> k\u00fct\u00fcphanesi de g\u00fczel alternatiflerden birisidir diyebiliriz.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<p>Not : \u00d6rnek \u00e7al\u0131\u015fmaya a\u015fa\u011f\u0131daki github adresinden eri\u015febilirsiniz.<br \/>\n<a href=\"https:\/\/github.com\/gncyyldz\/MicrosoftExtensionsAI.Example\" target=\"_blank\">https:\/\/github.com\/gncyyldz\/MicrosoftExtensionsAI.Example<\/a><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Malumunuz bir \u00f6nceki Semantic Kernel Nedir? (DeepSeek R1 E\u015fli\u011finde .NET A\u00e7\u0131s\u0131ndan Derinlemesine De\u011ferlendirelim) ba\u015fl\u0131kl\u0131 i\u00e7eri\u011fimizde .NET uygulamalar\u0131nda AI deste\u011fini olduk\u00e7a h\u0131zl\u0131 ve pratik bir \u015fekilde yap\u0131land\u0131rabilece\u011fimiz bir ara\u00e7 seti olan Semantic Kernel k\u00fct\u00fcphanesini&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":27587,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5222,5220],"tags":[5234,5237,5236,5223,5231,5232,5235,5221,5233],"class_list":["post-27568","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-llm","category-yapay-zeka-ai","tag-net-llm","tag-deepseek","tag-llama","tag-llm","tag-microsoft-extensions-ai","tag-microsoft-extensions-ai-llm","tag-ollama-nedir","tag-semantic-kernel","tag-sk-llm"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=27568"}],"version-history":[{"count":11,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27568\/revisions"}],"predecessor-version":[{"id":27591,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/27568\/revisions\/27591"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/27587"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=27568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=27568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=27568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}