{"id":30482,"date":"2025-09-28T10:41:05","date_gmt":"2025-09-28T07:41:05","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=30482"},"modified":"2025-09-28T10:41:05","modified_gmt":"2025-09-28T07:41:05","slug":"stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/","title":{"rendered":"Stanford OVAL&#8217;\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m"},"content":{"rendered":"<p><body><\/p>\n<h2>Stanford OVAL&#8217;\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m<\/h2>\n<h3>Giri\u015f: Karma\u015f\u0131k LLM Uygulamalar\u0131n\u0131n Y\u00fckseli\u015fi ve Programlama \u0130htiyac\u0131<\/h3>\n<p>B\u00fcy\u00fck Dil Modelleri (LLM&#8217;ler), son y\u0131llarda do\u011fal dil i\u015fleme alan\u0131nda devrim niteli\u011finde geli\u015fmeler kaydetti. Metin olu\u015fturma, \u00f6zetleme, \u00e7eviri ve soru yan\u0131tlama gibi bir\u00e7ok g\u00f6revde insan benzeri performans sergileyerek yapay zeka uygulamalar\u0131n\u0131n s\u0131n\u0131rlar\u0131n\u0131 geni\u015flettiler. Ancak, bu modellerin potansiyelini tam olarak kullanmak ve onlar\u0131 karma\u015f\u0131k, \u00e7ok ad\u0131ml\u0131 g\u00f6revlerde g\u00fcvenilir bir \u015fekilde \u00e7al\u0131\u015ft\u0131rmak, beraberinde \u00f6nemli zorluklar getirmektedir. Geleneksel &#8220;prompt m\u00fchendisli\u011fi&#8221; yakla\u015f\u0131mlar\u0131, modelin \u00e7\u0131kt\u0131s\u0131n\u0131 manip\u00fcle etmek i\u00e7in genellikle uzun, karma\u015f\u0131k ve deneme-yan\u0131lma y\u00f6ntemlerine dayanan prompt&#8217;lar (istemler) olu\u015fturmay\u0131 gerektirir. Bu prompt&#8217;lar \u00e7o\u011fu zaman k\u0131r\u0131lgan olup, k\u00fc\u00e7\u00fck de\u011fi\u015fikliklerde bile modelin performans\u0131n\u0131 olumsuz etkileyebilir ve farkl\u0131 modeller veya g\u00f6revler aras\u0131nda ta\u015f\u0131nabilirlikleri d\u00fc\u015f\u00fckt\u00fcr.<\/p>\n<p>Bu ba\u011flamda, Stanford OVAL (Open-ended Agent Learning) ekibi taraf\u0131ndan geli\u015ftirilen STORM (Structured Open-ended Reasoning and Multi-modal generation) gibi sistemler, LLM&#8217;leri kullanarak karma\u015f\u0131k bilgi toplama, sentezleme ve yarat\u0131c\u0131 i\u00e7erik \u00fcretme g\u00f6revlerini otomatikle\u015ftirmeyi ama\u00e7lamaktad\u0131r. STORM, \u00f6zellikle derinlemesine haber makaleleri veya ara\u015ft\u0131rma raporlar\u0131 gibi yap\u0131land\u0131r\u0131lm\u0131\u015f metinler olu\u015fturmak i\u00e7in tasarlanm\u0131\u015f bir yapay zeka ajan\u0131d\u0131r. Bu t\u00fcr sistemler, birden fazla LLM \u00e7a\u011fr\u0131s\u0131n\u0131, harici ara\u00e7 kullan\u0131m\u0131n\u0131 ve karma\u015f\u0131k ak\u0131l y\u00fcr\u00fctme ad\u0131mlar\u0131n\u0131 bir araya getirerek \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>Di\u011fer yandan, DSPy (Declarative Self-improving Language Programs), LLM&#8217;leri programlamaya y\u00f6nelik yeni ve devrim niteli\u011finde bir \u00e7er\u00e7evedir. Geleneksel prompt m\u00fchendisli\u011finin aksine, DSPy, LLM&#8217;leri mod\u00fcler, deklaratif ve optimize edilebilir program bile\u015fenleri olarak ele almay\u0131 \u00f6nerir. Bu yakla\u015f\u0131m, geli\u015ftiricilerin LLM&#8217;lerden ne istediklerini (giri\u015f ve \u00e7\u0131k\u0131\u015f formatlar\u0131) tan\u0131mlamalar\u0131na olanak tan\u0131rken, modelin bu \u00e7\u0131kt\u0131y\u0131 nas\u0131l \u00fcretece\u011fini (prompt&#8217;lar, a\u011f\u0131rl\u0131klar, ak\u0131l y\u00fcr\u00fctme ad\u0131mlar\u0131) otomatik olarak \u00f6\u011frenmesini sa\u011flar. Bu sayede, daha sa\u011flam, verimli ve tutarl\u0131 LLM uygulamalar\u0131 geli\u015ftirmek m\u00fcmk\u00fcn hale gelir.<\/p>\n<p>Bu makale, Stanford OVAL&#8217;\u0131n STORM projesinin Mistral LLM tabanl\u0131 demosunu DSPy \u00e7er\u00e7evesiyle nas\u0131l entegre edebilece\u011fimizi ve \u00e7al\u0131\u015ft\u0131rabilece\u011fimizi detayl\u0131 bir \u015fekilde inceleyecektir. Amac\u0131m\u0131z, DSPy&#8217;nin karma\u015f\u0131k LLM sistemlerinin geli\u015ftirilmesinde sundu\u011fu avantajlar\u0131, \u00f6zellikle sa\u011flaml\u0131k, verimlilik ve programlanabilirlik a\u00e7\u0131s\u0131ndan g\u00f6stermektir. Makale boyunca, STORM ve DSPy&#8217;nin temel prensiplerini a\u00e7\u0131klayacak, entegrasyon ad\u0131mlar\u0131n\u0131 teknik detaylar\u0131yla sunacak ve bu birle\u015fimin potansiyel faydalar\u0131n\u0131 ve zorluklar\u0131n\u0131 tart\u0131\u015faca\u011f\u0131z.<\/p>\n<h3>STORM: Yap\u0131land\u0131r\u0131lm\u0131\u015f A\u00e7\u0131k U\u00e7lu Ak\u0131l Y\u00fcr\u00fctme ve \u00c7ok Modlu \u00dcretim<\/h3>\n<h4>STORM&#8217;un Amac\u0131 ve Mimarisi<\/h4>\n<p>STORM (Structured Open-ended Reasoning and Multi-modal generation), karma\u015f\u0131k ve a\u00e7\u0131k u\u00e7lu bilgi toplama ve i\u00e7erik olu\u015fturma g\u00f6revleri i\u00e7in tasarlanm\u0131\u015f yenilik\u00e7i bir yapay zeka ajan\u0131d\u0131r. Temel amac\u0131, belirli bir konu hakk\u0131nda derinlemesine ara\u015ft\u0131rma yaparak, toplanan bilgileri sentezleyerek ve nihayetinde tutarl\u0131, yap\u0131land\u0131r\u0131lm\u0131\u015f ve bilgilendirici metinler (\u00f6rne\u011fin, haber makaleleri, ara\u015ft\u0131rma raporlar\u0131) \u00fcretmektir. Geleneksel LLM&#8217;lerin tek bir prompt ile s\u0131n\u0131rl\u0131 yan\u0131tlar \u00fcretme e\u011filiminin aksine, STORM, insan bir yazar\u0131n ara\u015ft\u0131rma ve yazma s\u00fcrecini taklit eden \u00e7ok a\u015famal\u0131, dinamik bir s\u00fcre\u00e7 izler.<\/p>\n<p>STORM&#8217;un mimarisi, genellikle birden fazla otonom ajan\u0131n i\u015fbirli\u011fine dayan\u0131r. Bu ajanlar, belirli g\u00f6revleri yerine getirmek \u00fczere tasarlanm\u0131\u015ft\u0131r ve genel olarak a\u015fa\u011f\u0131daki ana bile\u015fenleri i\u00e7erir:<\/p>\n<p>1.  <strong>Ara\u015ft\u0131rma Ajan\u0131 (Research Agent):<\/strong> Verilen konu hakk\u0131nda internet \u00fczerinde (\u00f6rne\u011fin, arama motorlar\u0131 arac\u0131l\u0131\u011f\u0131yla) bilgi toplar. Bu ajan, anahtar kelimeler belirler, ilgili web sayfalar\u0131n\u0131 ziyaret eder, i\u00e7erikleri okur ve \u00f6nemli bilgileri ay\u0131klar.<br \/>\n2.  <strong>Planlama Ajan\u0131 (Planning Agent):<\/strong> Toplanan bilgileri kullanarak makalenin veya raporun yap\u0131s\u0131n\u0131 ve ana hatlar\u0131n\u0131 olu\u015fturur. Bu ajan, hangi alt ba\u015fl\u0131klar\u0131n olmas\u0131 gerekti\u011fini, hangi bilgilerin nereye yerle\u015ftirilece\u011fini ve genel ak\u0131\u015f\u0131 belirler.<br \/>\n3.  <strong>Yaz\u0131m Ajan\u0131 (Writing Agent):<\/strong> Planlama ajan\u0131n\u0131n olu\u015fturdu\u011fu yap\u0131ya ve ara\u015ft\u0131rma ajan\u0131n\u0131n toplad\u0131\u011f\u0131 bilgilere dayanarak metin b\u00f6l\u00fcmlerini yazar. Bu ajan, tutarl\u0131 bir dil kullan\u0131r, bilgileri sentezler ve makalenin genel tonunu korur.<br \/>\n4.  <strong>Revizyon Ajan\u0131 (Revision Agent):<\/strong> Yaz\u0131lan metni g\u00f6zden ge\u00e7irir, tutarl\u0131l\u0131k, do\u011fruluk, dilbilgisi ve ak\u0131c\u0131l\u0131k a\u00e7\u0131s\u0131ndan iyile\u015ftirmeler yapar. Gerekirse ek ara\u015ft\u0131rma veya yaz\u0131m ad\u0131mlar\u0131 tetikleyebilir.<\/p>\n<p>Bu ajanlar aras\u0131ndaki etkile\u015fim dinamiktir. \u00d6rne\u011fin, yaz\u0131m ajan\u0131 belirli bir noktada yeterli bilgiye sahip olmad\u0131\u011f\u0131n\u0131 fark ederse, ara\u015ft\u0131rma ajan\u0131n\u0131 yeni bilgiler toplamak \u00fczere tetikleyebilir. Bu d\u00f6ng\u00fcsel ve yinelemeli s\u00fcre\u00e7, STORM&#8217;un karma\u015f\u0131k ve derinlemesine i\u00e7erikler \u00fcretmesini sa\u011flar.<\/p>\n<h4>Mistral LLM&#8217;in STORM ile Entegrasyonu<\/h4>\n<p>Mistral AI taraf\u0131ndan geli\u015ftirilen Mistral LLM&#8217;ler, a\u00e7\u0131k kaynak toplulu\u011funda b\u00fcy\u00fck ilgi g\u00f6rm\u00fc\u015f, \u00f6zellikle boyutlar\u0131na g\u00f6re y\u00fcksek performanslar\u0131 ve verimlilikleriyle \u00f6ne \u00e7\u0131km\u0131\u015flard\u0131r. Mistral 7B ve Mixtral 8x7B gibi modeller, hem ara\u015ft\u0131rma hem de \u00fcretim ortamlar\u0131nda geni\u015f bir kullan\u0131m alan\u0131 bulmu\u015ftur.<\/p>\n<p>STORM gibi \u00e7ok a\u015famal\u0131 bir sistemde Mistral LLM&#8217;lerinin kullan\u0131lmas\u0131, birka\u00e7 \u00f6nemli avantaj sunar:<\/p>\n<p>*   <strong>Verimlilik:<\/strong> Mistral modelleri, GPT-3.5 veya GPT-4 gibi \u00e7ok daha b\u00fcy\u00fck modellere k\u0131yasla daha az hesaplama g\u00fcc\u00fc ve bellek gerektirir. Bu, STORM&#8217;un daha uygun maliyetle ve daha h\u0131zl\u0131 \u00e7al\u0131\u015ft\u0131r\u0131labilmesini sa\u011flar. \u00d6zellikle birden fazla LLM \u00e7a\u011fr\u0131s\u0131 gerektiren STORM gibi sistemlerde bu verimlilik kritik \u00f6neme sahiptir.<br \/>\n*   <strong>Performans:<\/strong> Boyutlar\u0131na ra\u011fmen, Mistral modelleri bir\u00e7ok g\u00f6revde \u015fa\u015f\u0131rt\u0131c\u0131 derecede y\u00fcksek performans sergiler. Bu, STORM&#8217;un ara\u015ft\u0131rma, planlama ve yaz\u0131m a\u015famalar\u0131nda kaliteli \u00e7\u0131kt\u0131lar \u00fcretebilmesi i\u00e7in yeterli ak\u0131l y\u00fcr\u00fctme ve metin olu\u015fturma yetene\u011fine sahip oldu\u011fu anlam\u0131na gelir.<br \/>\n*   <strong>A\u00e7\u0131k Kaynak:<\/strong> Mistral modellerinin a\u00e7\u0131k kaynak olmas\u0131, geli\u015ftiricilere modelin davran\u0131\u015f\u0131n\u0131 daha iyi anlama, ince ayar yapma ve hatta kendi altyap\u0131lar\u0131nda bar\u0131nd\u0131rma esnekli\u011fi sunar. Bu, STORM gibi ara\u015ft\u0131rma projeleri i\u00e7in \u00f6nemli bir avantajd\u0131r.<\/p>\n<p>STORM demosunda Mistral LLM&#8217;i kullanmak, sistemin temel ak\u0131l y\u00fcr\u00fctme ve metin olu\u015fturma yeteneklerini sa\u011flayan &#8220;beyin&#8221; g\u00f6revi g\u00f6r\u00fcr. Her bir ajan\u0131n, belirli bir g\u00f6revi yerine getirmek i\u00e7in Mistral&#8217;a belirli prompt&#8217;lar g\u00f6ndererek yan\u0131tlar almas\u0131 ve bu yan\u0131tlar\u0131 i\u015fleyerek bir sonraki ad\u0131ma ge\u00e7mesi beklenir. Ancak, bu prompt&#8217;lar\u0131n manuel olarak tasarlanmas\u0131 ve optimize edilmesi, STORM&#8217;un zaten karma\u015f\u0131k olan yap\u0131s\u0131n\u0131 daha da zorla\u015ft\u0131rabilir. \u0130\u015fte bu noktada DSPy devreye girer.<\/p>\n<h3>DSPy: LLM&#8217;leri Programlaman\u0131n Yeni Yolu<\/h3>\n<h4>Geleneksel Prompt M\u00fchendisli\u011finin S\u0131n\u0131rlar\u0131<\/h4>\n<p>LLM&#8217;lerin ilk d\u00f6nemlerinden bu yana, geli\u015ftiriciler modellerden istenen \u00e7\u0131kt\u0131y\u0131 almak i\u00e7in &#8220;prompt m\u00fchendisli\u011fi&#8221; ad\u0131 verilen bir teknik kullanm\u0131\u015ft\u0131r. Bu teknik, modele verilen metin tabanl\u0131 talimatlar\u0131 (prompt&#8217;lar\u0131) dikkatlice tasarlayarak modelin davran\u0131\u015f\u0131n\u0131 y\u00f6nlendirmeyi i\u00e7erir. Ancak, prompt m\u00fchendisli\u011finin \u00f6nemli s\u0131n\u0131rlamalar\u0131 vard\u0131r:<\/p>\n<p>*   <strong>K\u0131r\u0131lganl\u0131k:<\/strong> K\u00fc\u00e7\u00fck prompt de\u011fi\u015fiklikleri, modelin \u00e7\u0131kt\u0131s\u0131nda b\u00fcy\u00fck ve \u00f6ng\u00f6r\u00fclemeyen farkl\u0131l\u0131klara yol a\u00e7abilir.<br \/>\n*   <strong>Tutars\u0131zl\u0131k:<\/strong> Ayn\u0131 prompt, farkl\u0131 zamanlarda veya farkl\u0131 modellerde tutars\u0131z \u00e7\u0131kt\u0131lar \u00fcretebilir.<br \/>\n*   <strong>\u00d6l\u00e7eklenebilirlik Eksikli\u011fi:<\/strong> Karma\u015f\u0131k, \u00e7ok ad\u0131ml\u0131 g\u00f6revler i\u00e7in prompt&#8217;lar son derece uzun ve y\u00f6netilemez hale gelebilir.<br \/>\n*   <strong>Model Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131:<\/strong> Bir model i\u00e7in optimize edilmi\u015f bir prompt, ba\u015fka bir modelde iyi \u00e7al\u0131\u015fmayabilir.<br \/>\n*   <strong>Geli\u015ftirme Zorlu\u011fu:<\/strong> \u0130yi prompt&#8217;lar olu\u015fturmak, deneme-yan\u0131lma gerektiren, zaman al\u0131c\u0131 ve sezgisel bir s\u00fcre\u00e7tir.<br \/>\n*   <strong>\u015eeffafl\u0131k Eksikli\u011fi:<\/strong> Modelin neden belirli bir yan\u0131t\u0131 verdi\u011fini anlamak zordur.<\/p>\n<p>Bu s\u0131n\u0131rlamalar, LLM&#8217;leri \u00fcretim seviyesi uygulamalarda g\u00fcvenilir bir \u015fekilde kullanmay\u0131 zorla\u015ft\u0131rmaktad\u0131r. DSPy, bu sorunlara sistematik bir \u00e7\u00f6z\u00fcm sunar.<\/p>\n<h4>DSPy Nedir? Deklaratif, Mod\u00fcler ve Optimize Edilebilir LLM Programlama<\/h4>\n<p>DSPy, LLM&#8217;leri programlamaya y\u00f6nelik yeni bir \u00e7er\u00e7evedir. Geleneksel prompt m\u00fchendisli\u011finin aksine, DSPy, LLM&#8217;leri &#8220;programlama dilinin&#8221; bir par\u00e7as\u0131 olarak ele al\u0131r. Bu, geli\u015ftiricilerin LLM&#8217;lerden ne istediklerini deklaratif bir \u015fekilde tan\u0131mlamalar\u0131na olanak tan\u0131r ve modelin bu istekleri en iyi \u015fekilde nas\u0131l yerine getirece\u011fini (yani, en iyi prompt&#8217;lar\u0131 ve hatta model a\u011f\u0131rl\u0131klar\u0131n\u0131) otomatik olarak \u00f6\u011frenmesini sa\u011flar.<\/p>\n<p>DSPy&#8217;nin temel felsefesi, LLM&#8217;lerin i\u00e7sel olarak bir &#8220;ak\u0131l y\u00fcr\u00fctme yetene\u011fine&#8221; sahip oldu\u011fu ve bu yetene\u011fin, a\u00e7\u0131k\u00e7a tan\u0131mlanm\u0131\u015f ad\u0131mlar ve mod\u00fcller arac\u0131l\u0131\u011f\u0131yla daha iyi y\u00f6nlendirilebilece\u011fi fikrine dayan\u0131r.<\/p>\n<h4>DSPy&#8217;nin Temel Bile\u015fenleri<\/h4>\n<p>DSPy&#8217;nin g\u00fcc\u00fc, birka\u00e7 temel soyutlama etraf\u0131nda in\u015fa edilmi\u015ftir:<\/p>\n<p>1.  <strong><code>Signature<\/code> (\u0130mza):<\/strong> DSPy&#8217;nin kalbinde yer alan <code>Signature<\/code> kavram\u0131, bir dil modelinden beklenen girdileri ve \u00e7\u0131kt\u0131lar\u0131, t\u0131pk\u0131 bir fonksiyon imzas\u0131nda oldu\u011fu gibi deklaratif bir \u015fekilde tan\u0131mlamam\u0131z\u0131 sa\u011flar. Bu, geleneksel prompt m\u00fchendisli\u011finde kar\u015f\u0131la\u015f\u0131lan belirsizlikleri ortadan kald\u0131rarak, modelin belirli bir g\u00f6revi tutarl\u0131 ve \u00f6ng\u00f6r\u00fclebilir bir \u015fekilde yerine getirmesini hedefler. \u00d6rne\u011fin, bir \u00f6zetleme g\u00f6revi i\u00e7in bir imza \u015f\u00f6yle tan\u0131mlanabilir: <code>input_text -> summary<\/code>. DSPy, bu imzay\u0131 kullanarak model i\u00e7in en uygun prompt&#8217;u otomatik olarak olu\u015fturur.<br \/>\n2.  <strong><code>Module<\/code> (Mod\u00fcl):<\/strong> Bir <code>Module<\/code>, tek bir LLM \u00e7a\u011fr\u0131s\u0131n\u0131 veya daha karma\u015f\u0131k bir LLM program\u0131n\u0131 temsil eden soyut bir yap\u0131d\u0131r. DSPy, \u00e7e\u015fitli \u00f6nceden tan\u0131mlanm\u0131\u015f mod\u00fcller sunar (\u00f6rne\u011fin, <code>dspy.Predict<\/code> tek bir LLM \u00e7a\u011fr\u0131s\u0131 i\u00e7in, <code>dspy.ChainOfThought<\/code> ak\u0131l y\u00fcr\u00fctme ad\u0131mlar\u0131 eklemek i\u00e7in, <code>dspy.MultiHopReasoning<\/code> \u00e7ok ad\u0131ml\u0131 ak\u0131l y\u00fcr\u00fctme i\u00e7in). Geli\u015ftiriciler, bu mod\u00fclleri bir araya getirerek daha karma\u015f\u0131k LLM programlar\u0131 olu\u015fturabilirler. Mod\u00fcller, belirli bir <code>Signature<\/code> ile ili\u015fkilendirilir.<br \/>\n3.  <strong><code>Program<\/code> (Program):<\/strong> Birden fazla <code>Module<\/code>&#8216;\u00fc bir araya getirerek olu\u015fturulan, LLM tabanl\u0131 bir uygulaman\u0131n tamam\u0131n\u0131 temsil eden yap\u0131d\u0131r. Bir <code>Program<\/code>, belirli bir g\u00f6revi yerine getirmek i\u00e7in birden fazla LLM \u00e7a\u011fr\u0131s\u0131 ve ara ad\u0131mlar\u0131 i\u00e7erebilir.<br \/>\n4.  <strong><code>Optimizer<\/code> (Optimize Edici):<\/strong> DSPy&#8217;nin en g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biridir. <code>Optimizer<\/code>&#8216;lar, bir <code>Program<\/code>&#8216;\u0131n performans\u0131n\u0131 belirli bir metrik (\u00f6rne\u011fin, do\u011fruluk, maliyet, gecikme) a\u00e7\u0131s\u0131ndan iyile\u015ftirmek i\u00e7in kullan\u0131l\u0131r. Bu, genellikle k\u00fc\u00e7\u00fck bir etiketli veri seti \u00fczerinde program\u0131 &#8220;derleyerek&#8221; yap\u0131l\u0131r. Optimizasyon s\u00fcreci, LLM&#8217;ye g\u00f6nderilen prompt&#8217;lar\u0131, ara ak\u0131l y\u00fcr\u00fctme ad\u0131mlar\u0131n\u0131 ve hatta modelin i\u00e7sel a\u011f\u0131rl\u0131klar\u0131n\u0131 (ince ayar yoluyla) otomatik olarak ayarlar. \u00d6rnek optimize ediciler aras\u0131nda <code>dspy.BootstrapFewShot<\/code> (birka\u00e7 \u00f6rnek \u00fczerinden prompt&#8217;lar\u0131 optimize eder) ve <code>dspy.BayesianSignatureOptimizer<\/code> (daha geli\u015fmi\u015f optimizasyon) bulunur.<br \/>\n5.  <strong><code>Compiler<\/code> (Derleyici):<\/strong> <code>Optimizer<\/code>&#8216;lar\u0131n temel i\u015flevini yerine getiren bile\u015fendir. Bir DSPy program\u0131n\u0131 ve bir <code>Optimizer<\/code>&#8216;\u0131 alarak, program\u0131n belirli bir veri k\u00fcmesi \u00fczerinde en iyi performans\u0131 g\u00f6stermesi i\u00e7in gerekli prompt&#8217;lar\u0131, ak\u0131l y\u00fcr\u00fctme ad\u0131mlar\u0131n\u0131 ve model parametrelerini &#8220;derler&#8221;. Bu s\u00fcre\u00e7, geleneksel yaz\u0131l\u0131m derleyicilerine benzer \u015fekilde, y\u00fcksek seviyeli bir tan\u0131m\u0131 (DSPy program\u0131) daha d\u00fc\u015f\u00fck seviyeli, optimize edilmi\u015f bir uygulamaya d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<h4>DSPy&#8217;nin Avantajlar\u0131<\/h4>\n<p>*   <strong>Sa\u011flaml\u0131k ve Tutarl\u0131l\u0131k:<\/strong> Optimize edilmi\u015f prompt&#8217;lar ve ak\u0131l y\u00fcr\u00fctme ad\u0131mlar\u0131 sayesinde, LLM uygulamalar\u0131 daha az k\u0131r\u0131lgan ve daha tutarl\u0131 hale gelir.<br \/>\n*   <strong>Verimlilik:<\/strong> Optimizasyon, daha az token kullan\u0131m\u0131 veya daha h\u0131zl\u0131 yan\u0131t s\u00fcreleri ile daha iyi performans elde edilmesini sa\u011flayabilir, bu da maliyetleri d\u00fc\u015f\u00fcr\u00fcr.<br \/>\n*   <strong>Mod\u00fclerlik:<\/strong> Karma\u015f\u0131k g\u00f6revler, y\u00f6netilebilir ve yeniden kullan\u0131labilir mod\u00fcllere ayr\u0131labilir.<br \/>\n*   <strong>Geli\u015ftirme H\u0131z\u0131:<\/strong> Geli\u015ftiriciler, prompt&#8217;lar\u0131 manuel olarak yazmak ve test etmek yerine, sadece istenen giri\u015fi ve \u00e7\u0131kt\u0131y\u0131 tan\u0131mlayarak LLM uygulamalar\u0131n\u0131 daha h\u0131zl\u0131 olu\u015fturabilirler.<br \/>\n*   <strong>Model Agnostik:<\/strong> DSPy, farkl\u0131 LLM&#8217;ler (OpenAI, HuggingFace modelleri, Mistral vb.) ile \u00e7al\u0131\u015facak \u015fekilde tasarlanm\u0131\u015ft\u0131r, bu da model de\u011fi\u015ftirme esnekli\u011fi sa\u011flar.<\/p>\n<h3>STORM Mistral Demosunu DSPy ile Entegre Etmek<\/h3>\n<p>STORM gibi karma\u015f\u0131k bir ajan\u0131 DSPy ile entegre etmek, ajan\u0131n i\u00e7indeki her bir LLM \u00e7a\u011fr\u0131s\u0131n\u0131 DSPy&#8217;nin mod\u00fcler ve optimize edilebilir yap\u0131s\u0131na d\u00f6n\u00fc\u015ft\u00fcrmeyi gerektirir. Bu, ajan\u0131n her bir bile\u015feninin (ara\u015ft\u0131rma, planlama, yaz\u0131m, revizyon) LLM ile etkile\u015fimini DSPy <code>Signature<\/code>&#8216;lar\u0131 ve <code>Module<\/code>&#8216;leri arac\u0131l\u0131\u011f\u0131yla tan\u0131mlamak anlam\u0131na gelir.<\/p>\n<h4>Haz\u0131rl\u0131k A\u015famas\u0131: Ortam Kurulumu<\/h4>\n<p>Entegrasyona ba\u015flamadan \u00f6nce gerekli ortam\u0131n kurulmas\u0131 \u015fartt\u0131r:<\/p>\n<p>1.  <strong>Python Ortam\u0131:<\/strong> Python 3.9+ \u00f6nerilir. Bir sanal ortam (venv veya conda) kullanmak iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\">python -m venv dspy_storm_env\n    source dspy_storm_env\/bin\/activate # Linux\/macOS\n    # dspy_storm_env\\Scripts\\activate # Windows<\/code><\/pre>\n<p>2.  <strong>Gerekli K\u00fct\u00fcphanelerin Kurulumu:<\/strong><\/p>\n<pre><code class=\"language-bash\">pip install dspy-ai\n    pip install mistralai\n    pip install beautifulsoup4 # Web i\u00e7eri\u011fini parse etmek i\u00e7in\n    pip install requests # Web istekleri i\u00e7in\n    # STORM'un kendi ba\u011f\u0131ml\u0131l\u0131klar\u0131 olabilir, onlar\u0131 da kurman\u0131z gerekebilir<\/code><\/pre>\n<p>3.  <strong>API Anahtarlar\u0131:<\/strong> Mistral LLM&#8217;i kullanmak i\u00e7in Mistral API anahtar\u0131n\u0131z\u0131n olmas\u0131 gerekir. Bu anahtar\u0131 ortam de\u011fi\u015fkeni olarak ayarlayabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">export MISTRAL_API_KEY=\"your_mistral_api_key_here\"<\/code><\/pre>\n<p>    DSPy&#8217;yi Mistral ile yap\u0131land\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-python\">import dspy\n    mistral = dspy.Mistral(model='mistral-large', api_key=MISTRAL_API_KEY) # veya mistral-small, open-mixtral-8x7b\n    dspy.settings.configure(lm=mistral)<\/code><\/pre>\n<p>4.  <strong>STORM Projesini Klonlama\/\u0130ndirme:<\/strong> Stanford OVAL&#8217;\u0131n STORM projesini GitHub deposundan klonlaman\u0131z veya indirmeniz gerekecektir. Bu makale, STORM&#8217;un genel mimarisine odakland\u0131\u011f\u0131 i\u00e7in belirli bir kod taban\u0131na ba\u011fl\u0131 kalmayacakt\u0131r, ancak entegrasyon i\u00e7in mevcut STORM kodunu de\u011fi\u015ftirmeniz gerekecektir.<\/p>\n<h4>DSPy Entegrasyon Stratejileri<\/h4>\n<p>STORM&#8217;un her bir ajan\u0131, belirli bir g\u00f6revi yerine getirmek i\u00e7in LLM \u00e7a\u011fr\u0131lar\u0131 yapar. Bu \u00e7a\u011fr\u0131lar\u0131 DSPy ile de\u011fi\u015ftirmek, entegrasyonun temelini olu\u015fturur.<\/p>\n<p>1.  <strong>STORM&#8217;un Mevcut LLM \u00c7a\u011fr\u0131lar\u0131n\u0131 Belirleme:<\/strong> STORM kod taban\u0131nda, <code>OpenAI<\/code> veya ba\u015fka bir LLM sa\u011flay\u0131c\u0131s\u0131na yap\u0131lan t\u00fcm do\u011frudan \u00e7a\u011fr\u0131lar\u0131 belirleyin. \u00d6rne\u011fin, ara\u015ft\u0131rma ajan\u0131n\u0131n bir web sayfas\u0131n\u0131 \u00f6zetlemek veya anahtar noktalar\u0131 \u00e7\u0131karmak i\u00e7in yapt\u0131\u011f\u0131 \u00e7a\u011fr\u0131lar.<br \/>\n2.  <strong>G\u00f6revi DSPy <code>Signature<\/code>&#8216;a D\u00f6n\u00fc\u015ft\u00fcrme:<\/strong> Her bir LLM \u00e7a\u011fr\u0131s\u0131n\u0131n amac\u0131n\u0131 ve beklenen giri\u015f\/\u00e7\u0131k\u0131\u015f format\u0131n\u0131 bir DSPy <code>Signature<\/code>&#8216;\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcn.<br \/>\n    *   <strong>\u00d6rnek: Bilgi Toplama\/\u00d6zetleme Ajan\u0131 i\u00e7in:<\/strong><br \/>\n        STORM&#8217;un ara\u015ft\u0131rma ajan\u0131, bir web sayfas\u0131n\u0131n i\u00e7eri\u011fini al\u0131r ve ilgili bilgileri ay\u0131klar. Bu g\u00f6revi DSPy ile modelleyebiliriz:<\/p>\n<pre><code class=\"language-python\">class ExtractRelevantInfo(dspy.Signature):\n            \"\"\"Verilen metinden konuyla ilgili en \u00f6nemli bilgileri \u00e7\u0131kar.\"\"\"\n            document: str = dspy.InputField(desc=\"\u0130\u015flenecek belge metni\")\n            topic: str = dspy.InputField(desc=\"Bilgi \u00e7\u0131kar\u0131lacak ana konu\")\n            relevant_info: str = dspy.OutputField(desc=\"Konuyla ilgili anahtar bilgiler ve \u00f6zet\")\n\n        # Bu Signature'\u0131 kullanan bir DSPy mod\u00fcl\u00fc\n        extract_module = dspy.Predict(ExtractRelevantInfo)<\/code><\/pre>\n<p>    *   <strong>\u00d6rnek: Planlama Ajan\u0131 i\u00e7in:<\/strong><br \/>\n        Planlama ajan\u0131, toplad\u0131\u011f\u0131 bilgilerden bir makale tasla\u011f\u0131 olu\u015fturur.<\/p>\n<pre><code class=\"language-python\">class GenerateOutline(dspy.Signature):\n            \"\"\"Verilen konu ve anahtar bilgilere dayanarak bir makale tasla\u011f\u0131 (ana ba\u015fl\u0131klar ve alt ba\u015fl\u0131klar) olu\u015ftur.\"\"\"\n            topic: str = dspy.InputField(desc=\"Makalenin ana konusu\")\n            key_information: str = dspy.InputField(desc=\"Makalede ele al\u0131nacak anahtar bilgiler\")\n            outline: str = dspy.OutputField(desc=\"Makale i\u00e7in hiyerar\u015fik taslak\")\n\n        outline_module = dspy.ChainOfThought(GenerateOutline) # Ak\u0131l y\u00fcr\u00fctme ad\u0131mlar\u0131 eklemek i\u00e7in<\/code><\/pre>\n<p>    *   <strong>\u00d6rnek: Yaz\u0131m Ajan\u0131 i\u00e7in:<\/strong><br \/>\n        Yaz\u0131m ajan\u0131, bir taslak b\u00f6l\u00fcm\u00fcn\u00fc ve ilgili bilgileri kullanarak metin yazar.<\/p>\n<pre><code class=\"language-python\">class WriteSection(dspy.Signature):\n            \"\"\"Belirli bir b\u00f6l\u00fcm ba\u015fl\u0131\u011f\u0131 ve ilgili bilgilerle makalenin bir b\u00f6l\u00fcm\u00fcn\u00fc yaz.\"\"\"\n            section_title: str = dspy.InputField(desc=\"Yaz\u0131lacak b\u00f6l\u00fcm\u00fcn ba\u015fl\u0131\u011f\u0131\")\n            section_content_context: str = dspy.InputField(desc=\"B\u00f6l\u00fcm i\u00e7in kullan\u0131lacak ba\u011flam ve bilgiler\")\n            written_section: str = dspy.OutputField(desc=\"Yaz\u0131lan b\u00f6l\u00fcm\u00fcn metni\")\n\n        write_section_module = dspy.Predict(WriteSection)<\/code><\/pre>\n<p>3.  <strong>STORM Ajanlar\u0131n\u0131 DSPy <code>Program<\/code>&#8216;lar\u0131na D\u00f6n\u00fc\u015ft\u00fcrme:<\/strong> Her bir STORM ajan\u0131n\u0131, ilgili DSPy mod\u00fcllerini bir araya getiren bir DSPy <code>Program<\/code> s\u0131n\u0131f\u0131 olarak yeniden yap\u0131land\u0131r\u0131n. Bu, STORM&#8217;un i\u00e7 mant\u0131\u011f\u0131n\u0131 daha mod\u00fcler ve y\u00f6netilebilir hale getirecektir.<\/p>\n<pre><code class=\"language-python\">class STORMResearchAgent(dspy.Program):\n        def __init__(self):\n            super().__init__()\n            self.search = dspy.Retrieve(k=3) # DSPy'nin arama mod\u00fcl\u00fc (\u00f6rne\u011fin, RAG i\u00e7in)\n            self.extract_info = dspy.Predict(ExtractRelevantInfo)\n\n        def forward(self, query: str, topic: str) -> dspy.Prediction:\n            # Ger\u00e7ek STORM'da bu k\u0131s\u0131m web aramas\u0131 ve sayfa okuma i\u00e7erir.\n            # DSPy Retrieve mod\u00fcl\u00fc ile basitle\u015ftirilmi\u015f bir \u00f6rnek.\n            # Ger\u00e7ek web arama ve parse i\u015flemleri DSPy d\u0131\u015f\u0131 yap\u0131labilir, sonra metin DSPy'ye verilebilir.\n            search_results = self.search(query).passages # Arama sonu\u00e7lar\u0131\n            combined_text = \"\\n\".join(search_results) # Metinleri birle\u015ftir\n\n            # Web'den al\u0131nan ger\u00e7ek metinleri kullanmak i\u00e7in:\n            # web_content = fetch_and_parse_web_page(query) # STORM'un kendi fonksiyonu\n            # relevant_info = self.extract_info(document=web_content, topic=topic).relevant_info\n\n            relevant_info = self.extract_info(document=combined_text, topic=topic).relevant_info\n            return dspy.Prediction(relevant_info=relevant_info)\n\n    class STORMPlanningAgent(dspy.Program):\n        def __init__(self):\n            super().__init__()\n            self.generate_outline = dspy.ChainOfThought(GenerateOutline)\n\n        def forward(self, topic: str, key_information: str) -> dspy.Prediction:\n            outline = self.generate_outline(topic=topic, key_information=key_information).outline\n            return dspy.Prediction(outline=outline)\n\n    class STORMWritingAgent(dspy.Program):\n        def __init__(self):\n            super().__init__()\n            self.write_section = dspy.Predict(WriteSection)\n\n        def forward(self, section_title: str, section_content_context: str) -> dspy.Prediction:\n            written_section = self.write_section(section_title=section_title, section_content_context=section_content_context).written_section\n            return dspy.Prediction(written_section=written_section)<\/code><\/pre>\n<p>4.  <strong>STORM&#8217;un Genel Ak\u0131\u015f\u0131n\u0131 Bir DSPy Program\u0131 Olarak Tan\u0131mlama (Opsiyonel ama \u00d6nerilen):<\/strong> T\u00fcm STORM ajanlar\u0131n\u0131n etkile\u015fimini, ana bir DSPy <code>Program<\/code>&#8216;\u0131 i\u00e7inde birle\u015ftirerek, t\u00fcm sistemin tek bir optimize edilebilir birim olarak ele al\u0131nmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<pre><code class=\"language-python\">class FullSTORMArticleGenerator(dspy.Program):\n        def __init__(self):\n            super().__init__()\n            self.research_agent = STORMResearchAgent()\n            self.planning_agent = STORMPlanningAgent()\n            self.writing_agent = STORMWritingAgent()\n            # ... ve di\u011fer ajanlar (revizyon vb.)\n\n        def forward(self, initial_topic: str) -> dspy.Prediction:\n            # Ad\u0131m 1: Ara\u015ft\u0131rma\n            # Ger\u00e7ek bir STORM ajan\u0131 burada dinamik olarak arama yapacak\n            # Bu \u00f6rnekte, basitle\u015ftirilmi\u015f bir ba\u015flang\u0131\u00e7 bilgisi varsayal\u0131m.\n            # Daha ger\u00e7ek\u00e7i bir entegrasyon, STORM'un kendi arama\/web scraping mant\u0131\u011f\u0131n\u0131 kullan\u0131r\n            # ve bu metni DSPy mod\u00fcllerine besler.\n            example_query = f\"Son geli\u015fmeler hakk\u0131nda bilgi: {initial_topic}\"\n            raw_relevant_info = self.research_agent(query=example_query, topic=initial_topic).relevant_info\n\n            # Ad\u0131m 2: Planlama\n            outline_result = self.planning_agent(topic=initial_topic, key_information=raw_relevant_info).outline\n\n            # Ad\u0131m 3: Yaz\u0131m (tasla\u011f\u0131 parse edip her b\u00f6l\u00fcm\u00fc ayr\u0131 ayr\u0131 yazma)\n            # Basit bir \u00f6rnek i\u00e7in t\u00fcm tasla\u011f\u0131 tek seferde yazal\u0131m veya tasla\u011f\u0131 parse edip d\u00f6ng\u00fc kural\u0131m\n            # Ger\u00e7ek uygulamada, outline_result parse edilerek b\u00f6l\u00fcmlere ayr\u0131l\u0131r ve her b\u00f6l\u00fcm i\u00e7in writing_agent \u00e7a\u011fr\u0131l\u0131r.\n            final_article_sections = []\n            # \u00d6rne\u011fin, outline_result'\u0131 sat\u0131r sat\u0131r i\u015fleyip her bir sat\u0131r\u0131 bir b\u00f6l\u00fcm ba\u015fl\u0131\u011f\u0131 olarak varsayabiliriz\n            # Bu k\u0131s\u0131m ger\u00e7ek STORM'un parse mant\u0131\u011f\u0131na ba\u011fl\u0131 olacakt\u0131r.\n            # Basit bir \u00f6rnek i\u00e7in:\n            section_titles = [line.strip() for line in outline_result.split('\\n') if line.strip()]\n            for title in section_titles[:3]: # \u0130lk birka\u00e7 b\u00f6l\u00fcm\u00fc yazal\u0131m\n                if title.startswith(\"##\") or title.startswith(\"#\"): # Ba\u015fl\u0131klar\u0131 filtrele\n                    section_content = self.writing_agent(\n                        section_title=title,\n                        section_content_context=f\"Konu: {initial_topic}\\nAna Bilgiler: {raw_relevant_info}\\nB\u00f6l\u00fcm Ba\u015fl\u0131\u011f\u0131: {title}\"\n                    ).written_section\n                    final_article_sections.append(f\"{title}\\n{section_content}\\n\")\n\n            return dspy.Prediction(full_article=\"\\n\".join(final_article_sections))\n\n    # DSPy program\u0131n\u0131 ba\u015flatma\n    article_generator = FullSTORMArticleGenerator()<\/code><\/pre>\n<h4>DSPy ile Optimizasyon ve Derleme<\/h4>\n<p>DSPy&#8217;nin en b\u00fcy\u00fck avantaj\u0131, programlar\u0131 optimize edebilmesidir. STORM demosunu DSPy ile entegre ettikten sonra, bu program\u0131 daha iyi performans g\u00f6sterecek \u015fekilde &#8220;derleyebiliriz&#8221;.<\/p>\n<p>1.  <strong>Geli\u015ftirme Veri Seti (Dev Set) Olu\u015fturma:<\/strong> Optimizasyon i\u00e7in, birka\u00e7 (genellikle 5-20) \u00f6rnekten olu\u015fan k\u00fc\u00e7\u00fck bir etiketli veri setine ihtiyac\u0131m\u0131z var. Bu veri seti, belirli bir <code>initial_topic<\/code> i\u00e7in beklenen <code>full_article<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 i\u00e7ermelidir.<\/p>\n<pre><code class=\"language-python\">train_data = [\n        dspy.Example(initial_topic=\"Yapay Zekan\u0131n Son Geli\u015fmeleri\", full_article=\"... beklenen makale metni ...\"),\n        dspy.Example(initial_topic=\"Kuantum Hesaplaman\u0131n Temelleri\", full_article=\"... beklenen makale metni ...\"),\n        # ... daha fazla \u00f6rnek\n    ]<\/code><\/pre>\n<p>2.  <strong>Optimize Ediciyi Se\u00e7me ve \u00c7al\u0131\u015ft\u0131rma:<\/strong> <code>dspy.BootstrapFewShot<\/code> gibi bir optimize edici, verilen \u00f6rnekler \u00fczerinden program\u0131n her bir mod\u00fcl\u00fc i\u00e7in en iyi prompt&#8217;lar\u0131 (veya &#8220;few-shot&#8221; \u00f6rneklerini) otomatik olarak \u00f6\u011frenir.<\/p>\n<pre><code class=\"language-python\"># Optimizasyonu yap\u0131land\u0131rma\n    optimizer = dspy.BootstrapFewShot(metric=lambda pred, gold, trace: True, max_bootstrapped_demos=4)\n    # metric fonksiyonu, \u00e7\u0131kt\u0131n\u0131n kalitesini de\u011ferlendirir. Ger\u00e7ek bir senaryoda daha karma\u015f\u0131k bir metrik gerekir.\n    # \u00d6rne\u011fin, ROUGE puan\u0131 veya insan de\u011ferlendirmesi.\n\n    # DSPy program\u0131n\u0131 derleme\n    compiled_article_generator = optimizer.compile(article_generator, trainset=train_data)<\/code><\/pre>\n<p>    Bu <code>compile<\/code> ad\u0131m\u0131, <code>FullSTORMArticleGenerator<\/code> i\u00e7indeki t\u00fcm <code>dspy.Predict<\/code> ve <code>dspy.ChainOfThought<\/code> mod\u00fclleri i\u00e7in en iyi prompt&#8217;lar\u0131 otomatik olarak bulmaya \u00e7al\u0131\u015facakt\u0131r.<\/p>\n<h4>Uygulama ve De\u011ferlendirme<\/h4>\n<p>DSPy ile derlenmi\u015f STORM ajan\u0131 art\u0131k kullan\u0131lmaya haz\u0131rd\u0131r.<\/p>\n<pre><code class=\"language-python\"># Derlenmi\u015f program\u0131 kullanarak yeni bir makale olu\u015fturma\ntopic_to_generate = \"S\u00fcrd\u00fcr\u00fclebilir Enerji Teknolojilerindeki Yenilikler\"\nprediction = compiled_article_generator(initial_topic=topic_to_generate)\nprint(prediction.full_article)<\/code><\/pre>\n<p><strong>Performans Analizi:<\/strong><\/p>\n<p>*   <strong>Tutarl\u0131l\u0131k:<\/strong> DSPy&#8217;nin optimize edilmi\u015f prompt&#8217;lar\u0131 sayesinde, farkl\u0131 \u00e7al\u0131\u015ft\u0131rmalarda daha tutarl\u0131 ve beklenen formatta \u00e7\u0131kt\u0131lar al\u0131nmas\u0131 beklenir.<br \/>\n*   <strong>Do\u011fruluk:<\/strong> Optimizasyon s\u00fcreci, LLM&#8217;nin daha do\u011fru ve ba\u011flamla ilgili bilgiler \u00fcretmesine yard\u0131mc\u0131 olabilir.<br \/>\n*   <strong>Maliyet ve Gecikme:<\/strong> DSPy, gereksiz token kullan\u0131m\u0131n\u0131 azaltarak veya ak\u0131l y\u00fcr\u00fctme ad\u0131mlar\u0131n\u0131 optimize ederek LLM \u00e7a\u011fr\u0131lar\u0131n\u0131n maliyetini ve gecikmesini d\u00fc\u015f\u00fcrebilir.<br \/>\n*   <strong>Geli\u015ftirme S\u00fcresi:<\/strong> Geli\u015ftiriciler, prompt&#8217;larla u\u011fra\u015fmak yerine daha y\u00fcksek seviyeli <code>Signature<\/code>&#8216;lar ve <code>Module<\/code>&#8216;ler tan\u0131mlayarak daha h\u0131zl\u0131 yineleme yapabilirler.<\/p>\n<h3>Potansiyel Zorluklar ve \u00c7\u00f6z\u00fcmler<\/h3>\n<p>DSPy&#8217;nin entegrasyonu bir\u00e7ok avantaj sunsa da, baz\u0131 zorluklarla kar\u015f\u0131la\u015fmak m\u00fcmk\u00fcnd\u00fcr:<\/p>\n<p>1.  <strong>Entegrasyon Karma\u015f\u0131kl\u0131\u011f\u0131:<\/strong> STORM gibi derinlemesine yerle\u015fik bir sistemin mevcut LLM \u00e7a\u011fr\u0131lar\u0131n\u0131 DSPy mod\u00fclleriyle de\u011fi\u015ftirmek, kod taban\u0131n\u0131 iyi anlamay\u0131 gerektiren \u00f6nemli bir yeniden yap\u0131land\u0131rma \u00e7abas\u0131 olabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Entegrasyonu a\u015famal\u0131 olarak yapmak. \u00d6nce en kritik veya en \u00e7ok sorun \u00e7\u0131karan LLM \u00e7a\u011fr\u0131lar\u0131n\u0131 DSPy&#8217;ye ta\u015f\u0131mak.<br \/>\n2.  <strong>Optimizasyon \u0130\u00e7in Veri Gereksinimi:<\/strong> DSPy optimizasyonu i\u00e7in k\u00fc\u00e7\u00fck de olsa bir &#8220;dev set&#8221; (geli\u015ftirme veri seti) gereklidir. Karma\u015f\u0131k STORM g\u00f6revleri i\u00e7in bu veri setini olu\u015fturmak zaman alabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Mevcut STORM \u00e7\u0131kt\u0131lar\u0131ndan veya insan uzmanlar\u0131n denetiminde az say\u0131da y\u00fcksek kaliteli \u00f6rnek olu\u015fturmak. DSPy&#8217;nin kendi &#8220;bootstrapping&#8221; mekanizmalar\u0131, s\u0131f\u0131rdan veri olu\u015fturmaya yard\u0131mc\u0131 olabilir.<br \/>\n3.  <strong>Metrik Tan\u0131mlama:<\/strong> Optimizasyonun etkin olabilmesi i\u00e7in, program\u0131n \u00e7\u0131kt\u0131s\u0131n\u0131 de\u011ferlendirecek anlaml\u0131 bir metrik tan\u0131mlamak kritik \u00f6neme sahiptir. Karma\u015f\u0131k metin \u00fcretimi i\u00e7in otomatik metrikler (ROUGE, BLEU) her zaman yeterli olmayabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> \u0130nsan de\u011ferlendirmesini i\u00e7eren veya LLM&#8217;lerin kendilerini kullanarak \u00e7\u0131kt\u0131lar\u0131 de\u011ferlendiren hibrit metrikler geli\u015ftirmek.<br \/>\n4.  <strong>Dinamik Ajan Davran\u0131\u015f\u0131:<\/strong> STORM&#8217;un ajanlar\u0131, dinamik olarak karar verebilir ve farkl\u0131 yollar izleyebilir. DSPy programlar\u0131n\u0131n bu dinamizmi tam olarak yakalamas\u0131, <code>dspy.ChainOfThought<\/code> veya \u00f6zel mod\u00fcllerin dikkatli kullan\u0131m\u0131yla m\u00fcmk\u00fcnd\u00fcr.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Her bir ajan\u0131n karar verme noktas\u0131n\u0131 ayr\u0131 bir DSPy mod\u00fcl\u00fc olarak ele almak ve bu mod\u00fcllerin \u00e7\u0131kt\u0131lar\u0131n\u0131n sonraki ad\u0131mlar\u0131 nas\u0131l etkiledi\u011fini a\u00e7\u0131k\u00e7a tan\u0131mlamak.<\/p>\n<h3>Gelecek Perspektifleri<\/h3>\n<p>STORM gibi karma\u015f\u0131k ajanlar\u0131n DSPy ile entegrasyonu, LLM uygulamalar\u0131n\u0131n gelece\u011fi i\u00e7in heyecan verici yollar a\u00e7maktad\u0131r:<\/p>\n<p>*   <strong>Daha Karma\u015f\u0131k G\u00f6revler:<\/strong> DSPy&#8217;nin mod\u00fcler yap\u0131s\u0131 ve optimizasyon yetenekleri, STORM&#8217;un daha da karma\u015f\u0131k ve \u00e7ok alanl\u0131 g\u00f6revleri \u00fcstlenmesine olanak tan\u0131r. \u00d6rne\u011fin, sadece metin de\u011fil, ayn\u0131 zamanda g\u00f6rsel veya i\u015fitsel i\u00e7erik \u00fcretimi gibi \u00e7ok modlu g\u00f6revler.<br \/>\n*   <strong>Otomatik Geli\u015ftirme ve \u0130yile\u015ftirme:<\/strong> DSPy&#8217;nin &#8220;derleme&#8221; yetene\u011fi, LLM tabanl\u0131 ajanlar\u0131n performans\u0131n\u0131 s\u00fcrekli olarak izleyip otomatik olarak iyile\u015ftirebilen sistemlerin \u00f6n\u00fcn\u00fc a\u00e7ar. Yeni verilerle ajanlar kendi kendilerini daha iyi hale getirebilirler.<br \/>\n*   <strong>Farkl\u0131 LLM&#8217;ler ile Esneklik:<\/strong> DSPy&#8217;nin model agnostik yap\u0131s\u0131 sayesinde, STORM, Mistral&#8217;\u0131n yan\u0131 s\u0131ra farkl\u0131 LLM&#8217;leri (\u00f6rne\u011fin, daha yeni veya daha uzmanla\u015fm\u0131\u015f modeller) kolayca deneyebilir ve en uygun olan\u0131 bulmak i\u00e7in optimize edebilir.<br \/>\n*   <strong>A\u00e7\u0131klanabilirlik ve Hata Ay\u0131klama:<\/strong> DSPy, LLM programlar\u0131n\u0131n i\u00e7sel ak\u0131l y\u00fcr\u00fctme ad\u0131mlar\u0131n\u0131 daha \u015feffaf hale getirerek, geli\u015ftiricilerin neden belirli bir \u00e7\u0131kt\u0131n\u0131n \u00fcretildi\u011fini anlamalar\u0131n\u0131 kolayla\u015ft\u0131r\u0131r. Bu da hata ay\u0131klama ve g\u00fcvenilirlik i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Stanford OVAL&#8217;\u0131n STORM projesi, LLM&#8217;lerin karma\u015f\u0131k, a\u00e7\u0131k u\u00e7lu i\u00e7erik \u00fcretme potansiyelini sergileyen etkileyici bir \u00f6rnektir. Mistral LLM&#8217;lerinin verimlili\u011fi ve performans\u0131, STORM gibi \u00e7ok a\u015famal\u0131 bir ajan\u0131n temelini olu\u015fturur. Ancak, geleneksel prompt m\u00fchendisli\u011fi yakla\u015f\u0131mlar\u0131, STORM&#8217;un zaten karma\u015f\u0131k olan yap\u0131s\u0131n\u0131 daha da zorla\u015ft\u0131rarak sistemin sa\u011flaml\u0131\u011f\u0131n\u0131, verimlili\u011fini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini tehdit edebilir.<\/p>\n<p>DSPy, LLM&#8217;leri programlamaya y\u00f6nelik deklaratif, mod\u00fcler ve optimize edilebilir bir \u00e7er\u00e7eve sunarak bu zorluklara g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm getirmektedir. STORM&#8217;un her bir ajan\u0131n\u0131 ve LLM etkile\u015fimini DSPy <code>Signature<\/code>&#8216;lar\u0131 ve <code>Module<\/code>&#8216;leri arac\u0131l\u0131\u011f\u0131yla yeniden yap\u0131land\u0131rarak, sistemin daha sa\u011flam, daha verimli ve daha kolay y\u00f6netilebilir hale gelmesini sa\u011flayabiliriz. DSPy&#8217;nin optimizasyon yetenekleri sayesinde, STORM ajanlar\u0131, manuel prompt m\u00fchendisli\u011fine gerek kalmadan, belirli g\u00f6revlerde en iyi performans\u0131 g\u00f6sterecek \u015fekilde otomatik olarak &#8220;derlenebilir&#8221;.<\/p>\n<p>Bu entegrasyon, sadece STORM&#8217;un mevcut performans\u0131n\u0131 iyile\u015ftirmekle kalmaz, ayn\u0131 zamanda LLM tabanl\u0131 ajanlar\u0131n geli\u015ftirilme bi\u00e7iminde de paradigma de\u011fi\u015fimi sunar. Geli\u015ftiriciler, prompt detaylar\u0131 yerine, LLM&#8217;lerden ne istediklerine odaklanarak daha y\u00fcksek seviyeli soyutlamalarla \u00e7al\u0131\u015fabilirler. Bu, LLM programlamay\u0131 daha eri\u015filebilir, daha g\u00fcvenilir ve daha \u00f6l\u00e7eklenebilir hale getirerek, yapay zeka ajanlar\u0131n\u0131n gelecekteki geli\u015fimine \u00f6nemli katk\u0131lar sa\u011flayacakt\u0131r. DSPy ile STORM Mistral demosunu \u00e7al\u0131\u015ft\u0131rmak, LLM&#8217;leri programlaman\u0131n ve karma\u015f\u0131k yapay zeka sistemlerini in\u015fa etmenin yeni, daha g\u00fc\u00e7l\u00fc bir yolunu temsil etmektedir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Stanford OVAL&#8217;\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m\nGiri\u015f: Karma\u015f\u0131k LLM Uygulamalar\u0131n\u0131n Y\u00fc","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-30482","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Stanford OVAL&#039;\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stanford OVAL&#039;\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m\" \/>\n<meta property=\"og:description\" content=\"Stanford OVAL&#039;\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m Giri\u015f: Karma\u015f\u0131k LLM Uygulamalar\u0131n\u0131n Y\u00fc\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-28T07:41:05+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Stanford OVAL&#8217;\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m\",\"datePublished\":\"2025-09-28T07:41:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/\"},\"wordCount\":3551,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/\",\"name\":\"Stanford OVAL'\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-28T07:41:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Stanford OVAL&#8217;\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Stanford OVAL'\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/","og_locale":"tr_TR","og_type":"article","og_title":"Stanford OVAL'\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m","og_description":"Stanford OVAL'\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m Giri\u015f: Karma\u015f\u0131k LLM Uygulamalar\u0131n\u0131n Y\u00fc","og_url":"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-28T07:41:05+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Stanford OVAL&#8217;\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m","datePublished":"2025-09-28T07:41:05+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/"},"wordCount":3551,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/","url":"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/","name":"Stanford OVAL'\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-28T07:41:05+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/stanford-ovalin-storm-mistral-demosunu-dspy-ile-calistirmak-llm-programlamada-yeni-bir-yaklasim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Stanford OVAL&#8217;\u0131n STORM Mistral Demosunu DSPy ile \u00c7al\u0131\u015ft\u0131rmak: LLM Programlamada Yeni Bir Yakla\u015f\u0131m"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30482"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30482\/revisions"}],"predecessor-version":[{"id":30483,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30482\/revisions\/30483"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}