{"id":34332,"date":"2025-11-15T08:01:18","date_gmt":"2025-11-15T05:01:18","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/"},"modified":"2025-11-15T08:01:18","modified_gmt":"2025-11-15T05:01:18","slug":"langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/","title":{"rendered":"LangChain&#8217;e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi"},"content":{"rendered":"<p><body><\/p>\n<p>B\u00fcy\u00fck dil modellerinin (BHM) d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc g\u00fcc\u00fcn\u00fc ke\u015ffetmeye haz\u0131r m\u0131s\u0131n\u0131z? LangChain, bu devrim niteli\u011findeki modelleri kullanarak ak\u0131ll\u0131, ba\u011flamsal ve etkile\u015fimli uygulamalar geli\u015ftirmenizi sa\u011flayan g\u00fc\u00e7l\u00fc bir framework&#8217;t\u00fcr. Bu ad\u0131m ad\u0131m rehberimizle, LangChain d\u00fcnyas\u0131na dalacak, temel kavramlar\u0131 \u00f6\u011frenecek ve kendi BHM destekli uygulamalar\u0131n\u0131z\u0131 nas\u0131l in\u015fa edece\u011finizi ke\u015ffedeceksiniz.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz yapay zeka d\u00fcnyas\u0131nda, OpenAI&#8217;nin GPT serisi, Google&#8217;\u0131n PaLM&#8217;i veya a\u00e7\u0131k kaynakl\u0131 modeller gibi B\u00fcy\u00fck Dil Modelleri (BHM&#8217;ler), metin \u00fcretme, \u00e7eviri yapma, \u00f6zetleme ve hatta kod yazma gibi inan\u0131lmaz yetenekler sunuyor. Ancak bu modellerin saf g\u00fcc\u00fcn\u00fc al\u0131p ger\u00e7ek d\u00fcnya uygulamalar\u0131na entegre etmek her zaman san\u0131ld\u0131\u011f\u0131 kadar basit olmuyor. Genellikle, bir BHM&#8217;yi bir uygulaman\u0131n kalbine yerle\u015ftirmek, sadece bir API \u00e7a\u011fr\u0131s\u0131 yapmaktan \u00e7ok daha fazlas\u0131n\u0131 gerektirir.<\/p>\n<p>Kar\u015f\u0131la\u015f\u0131lan en yayg\u0131n zorluklardan biri, BHM&#8217;lerin do\u011fas\u0131 gere\u011fi tek seferlik etkile\u015fimler i\u00e7in tasarlanm\u0131\u015f olmas\u0131d\u0131r. Yani, her yeni istekte BHM, \u00f6nceki ba\u011flam\u0131 &#8220;unutur&#8221;. Bir sohbet botu veya kullan\u0131c\u0131yla s\u00fcrekli diyalog kuran bir asistan geli\u015ftirmek istedi\u011finizde, bu bellek eksikli\u011fi ciddi bir sorun yarat\u0131r. Kullan\u0131c\u0131n\u0131n \u00f6nceki s\u00f6ylediklerini hat\u0131rlamayan bir BHM, do\u011fal ve ak\u0131c\u0131 bir sohbet deneyimi sunamaz. \u0130\u015fte bu noktada &#8220;bellek y\u00f6netimi&#8221; kritik bir hale gelir.<\/p>\n<p>Ayr\u0131ca, BHM&#8217;ler genellikle mevcut bilgilerle s\u0131n\u0131rl\u0131d\u0131r; yani, e\u011fitim verilerinde bulunmayan en g\u00fcncel bilgilere veya kurum i\u00e7i \u00f6zel verilere do\u011frudan eri\u015femezler. Bir BHM&#8217;nin d\u0131\u015f d\u00fcnyadan bilgi almas\u0131n\u0131, web aramas\u0131 yapmas\u0131n\u0131, bir veritaban\u0131n\u0131 sorgulamas\u0131n\u0131 veya bir API&#8217;ye ba\u011flanmas\u0131n\u0131 sa\u011flamak, karma\u015f\u0131k entegrasyonlar gerektirir. Bu t\u00fcr g\u00f6revler i\u00e7in BHM&#8217;ye &#8220;ara\u00e7lar&#8221; sa\u011flamak ve modelin ne zaman hangi arac\u0131 kullanaca\u011f\u0131na karar vermesini \u00f6\u011fretmek, \u00f6nemli bir m\u00fchendislik \u00e7abas\u0131 gerektirir.<\/p>\n<p>Bir di\u011fer \u00f6nemli zorluk ise &#8220;prompt m\u00fchendisli\u011fi&#8221;dir. BHM&#8217;lerden istenen \u00e7\u0131kt\u0131y\u0131 almak i\u00e7in do\u011fru talimatlar\u0131, yani &#8220;prompt&#8217;lar\u0131&#8221; haz\u0131rlamak bir sanatt\u0131r. Etkili prompt&#8217;lar yazmak deneyim gerektirir ve genellikle tekrarlayan deneme-yan\u0131lma s\u00fcre\u00e7leri i\u00e7erir. Uygulama geli\u015ftik\u00e7e, farkl\u0131 g\u00f6revler i\u00e7in farkl\u0131 prompt&#8217;lar tasarlamak ve bunlar\u0131 tutarl\u0131 bir \u015fekilde y\u00f6netmek karma\u015f\u0131kla\u015fabilir. BHM&#8217;lerle etkile\u015fimleri birden fazla ad\u0131ma b\u00f6lmek, bir \u00e7\u0131kt\u0131n\u0131n di\u011ferinin giri\u015fi oldu\u011fu &#8220;zincirler&#8221; olu\u015fturmak da manuel olarak yap\u0131ld\u0131\u011f\u0131nda zahmetlidir.<\/p>\n<p>T\u00fcm bu zorluklar, geli\u015ftiricilerin BHM&#8217;lerin potansiyelini tam olarak kullanmalar\u0131n\u0131 engelleyebilir. Her yeni BHM tabanl\u0131 uygulama i\u00e7in bu temel sorunlar\u0131 ba\u015ftan \u00e7\u00f6zmek, zaman ve kaynak israf\u0131na yol a\u00e7ar. \u0130\u015fte tam bu noktada, LangChain gibi bir framework devreye girerek bu karma\u015f\u0131kl\u0131klar\u0131 soyutlar ve geli\u015ftiricilerin daha y\u00fcksek seviyeli, ak\u0131ll\u0131 uygulamalar olu\u015fturmaya odaklanmas\u0131n\u0131 sa\u011flar. LangChain, BHM&#8217;lerin g\u00fcc\u00fcn\u00fc ger\u00e7ekten serbest b\u0131rakmak i\u00e7in gereken yap\u0131 ta\u015flar\u0131n\u0131 ve soyutlamalar\u0131 sunar.<\/p>\n<h2>LangChain Tam Olarak Nedir ve B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme S\u00fcrecini Nas\u0131l Basitle\u015ftirir?<\/h2>\n<p>LangChain, B\u00fcy\u00fck Dil Modelleri (BHM&#8217;ler) ile \u00e7al\u0131\u015fan uygulamalar geli\u015ftirmeyi kolayla\u015ft\u0131rmak i\u00e7in tasarlanm\u0131\u015f, dil modellerini temel alan bir framework&#8217;t\u00fcr. Ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, &#8220;LangChain&#8221;, dil modellerini birbirine &#8220;zincirleme&#8221; fikri \u00fczerine kurulmu\u015ftur. Amac\u0131, geli\u015ftiricilere BHM&#8217;lerin yeteneklerini harici veri kaynaklar\u0131yla, hesaplama mant\u0131\u011f\u0131yla ve di\u011fer BHM&#8217;lerle sorunsuz bir \u015fekilde birle\u015ftirebilecekleri mod\u00fcler bile\u015fenler sunmakt\u0131r. Peki, LangChain&#8217;i bu kadar \u00f6zel k\u0131lan nedir?<\/p>\n<p>En temel d\u00fczeyde LangChain, bir BHM&#8217;nin sadece bir metin \u00fcreticisi olmaktan \u00e7\u0131k\u0131p, karma\u015f\u0131k g\u00f6revleri yerine getirebilen, kararlar alabilen ve d\u0131\u015f d\u00fcnyayla etkile\u015fime ge\u00e7ebilen bir &#8220;ak\u0131ll\u0131 arac\u0131ya&#8221; d\u00f6n\u00fc\u015fmesine olanak tan\u0131r. Bu, \u00f6zellikle BHM&#8217;lerin kendi ba\u015flar\u0131na yapamad\u0131\u011f\u0131 veya yapmakta zorland\u0131\u011f\u0131 durumlar i\u00e7in hayati \u00f6nem ta\u015f\u0131r. \u00d6rne\u011fin, bir BHM&#8217;nin g\u00fcncel bir hava durumu bilgisini almas\u0131, bir e-tabloyu analiz etmesi veya bir e-postay\u0131 g\u00f6ndermesi gibi. LangChain, bu t\u00fcr i\u015flevsellikleri BHM&#8217;nin kavray\u0131\u015f\u0131na sunarak, uygulaman\u0131z\u0131n yeteneklerini katlayarak art\u0131r\u0131r.<\/p>\n<p>LangChain&#8217;in temel felsefesi, mod\u00fclerlik ve birle\u015ftirilebilirlik \u00fczerine kuruludur. Bu, farkl\u0131 BHM&#8217;leri, farkl\u0131 prompt yap\u0131lar\u0131n\u0131, farkl\u0131 bellek t\u00fcrlerini ve farkl\u0131 ara\u00e7lar\u0131 kolayca bir araya getirip de\u011fi\u015ftirebilece\u011finiz anlam\u0131na gelir. Bir uygulaman\u0131n belirli bir b\u00f6l\u00fcm\u00fcnde OpenAI&#8217;nin GPT-4 modelini kullan\u0131rken, ba\u015fka bir b\u00f6l\u00fcm\u00fcnde Hugging Face&#8217;in a\u00e7\u0131k kaynakl\u0131 bir modelini tercih edebilir veya arama i\u015flevi i\u00e7in Google Arama API&#8217;sini, veri alma i\u00e7in \u00f6zel bir veritaban\u0131 ba\u011flay\u0131c\u0131s\u0131n\u0131 kullanabilirsiniz. Bu esneklik, geli\u015ftiricilere b\u00fcy\u00fck bir \u00f6zg\u00fcrl\u00fck sunar ve uygulamalar\u0131n\u0131 belirli gereksinimlere g\u00f6re optimize etmelerine olanak tan\u0131r.<\/p>\n<p>Framework, a\u015fa\u011f\u0131daki temel ama\u00e7lar\u0131 ger\u00e7ekle\u015ftirmek \u00fczere tasarlanm\u0131\u015ft\u0131r:<\/p>\n<ul>\n<li><strong>BHM Entegrasyonu:<\/strong> \u00c7e\u015fitli BHM sa\u011flay\u0131c\u0131lar\u0131yla (OpenAI, Hugging Face, Cohere vb.) tutarl\u0131 bir aray\u00fcz sa\u011flar.<\/li>\n<li><strong>Veri Fark\u0131ndal\u0131\u011f\u0131:<\/strong> BHM&#8217;lerin kendi e\u011fitim verilerinin \u00f6tesindeki verilere (belgeler, web sayfalar\u0131, veritabanlar\u0131 vb.) eri\u015fmesini ve bunlar\u0131 kullanmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<\/li>\n<li><strong>Arac\u0131l\u0131k (Agentic Capabilities):<\/strong> BHM&#8217;lerin hangi eylemi yapacaklar\u0131na, hangi ara\u00e7lar\u0131 kullanacaklar\u0131na ve ad\u0131mlar\u0131n\u0131 nas\u0131l s\u0131ralayacaklar\u0131na karar vermelerini sa\u011flayarak karma\u015f\u0131k g\u00f6revleri otomatikle\u015ftirir.<\/li>\n<li><strong>Zincirleme (Chaining):<\/strong> Birden fazla BHM \u00e7a\u011fr\u0131s\u0131n\u0131 veya di\u011fer bile\u015fenleri mant\u0131ksal bir s\u0131ra halinde birle\u015ftirerek karma\u015f\u0131k i\u015f ak\u0131\u015flar\u0131 olu\u015fturmay\u0131 sa\u011flar.<\/li>\n<li><strong>Bellek Y\u00f6netimi:<\/strong> Sohbet ge\u00e7mi\u015fi gibi durumu y\u00f6neterek BHM&#8217;lerin \u00f6nceki etkile\u015fimleri hat\u0131rlamas\u0131n\u0131 ve ba\u011flam\u0131 korumas\u0131n\u0131 sa\u011flar.<\/li>\n<\/ul>\n<p>\u00d6zetle, LangChain, BHM&#8217;lerin potansiyelini sonuna kadar kullanmak isteyen geli\u015ftiriciler i\u00e7in vazge\u00e7ilmez bir k\u00f6pr\u00fc g\u00f6revi g\u00f6r\u00fcr. BHM&#8217;leri sadece metin \u00fcreticileri olmaktan \u00e7\u0131kar\u0131p, ak\u0131ll\u0131, ba\u011flamsal ve d\u0131\u015f d\u00fcnyayla etkile\u015fime ge\u00e7ebilen g\u00fc\u00e7l\u00fc uygulamalar\u0131n temel yap\u0131 ta\u015flar\u0131 haline getirir. Bu sayede, daha karma\u015f\u0131k ve de\u011ferli yapay zeka uygulamalar\u0131n\u0131 \u00e7ok daha h\u0131zl\u0131 ve verimli bir \u015fekilde geli\u015ftirebiliriz.<\/p>\n<h3>LangChain&#8217;in Temel Bile\u015fenleri Nelerdir ve Nas\u0131l \u00c7al\u0131\u015f\u0131rlar?<\/h3>\n<p>LangChain&#8217;in g\u00fcc\u00fc, mod\u00fcler ve birle\u015ftirilebilir bile\u015fenlerinden gelir. Bu bile\u015fenleri anlamak, LangChain ile nas\u0131l daha ak\u0131ll\u0131 uygulamalar geli\u015ftirebilece\u011finizin anahtar\u0131d\u0131r. \u0130\u015fte LangChain&#8217;in en \u00f6nemli yap\u0131 ta\u015flar\u0131:<\/p>\n<h4>Modeller (Models): Yapay Zeka Beyniyle Etkile\u015fim<\/h4>\n<p>LangChain&#8217;in temelinde, farkl\u0131 B\u00fcy\u00fck Dil Modelleri (BHM&#8217;ler) ile etkile\u015fim kurma yetene\u011fi yatar. LangChain bu modelleri \u00fc\u00e7 ana kategoriye ay\u0131r\u0131r:<\/p>\n<ul>\n<li><strong>LLM&#8217;ler (Large Language Models):<\/strong> Metin girdisi al\u0131p metin \u00e7\u0131kt\u0131s\u0131 \u00fcreten genel ama\u00e7l\u0131 dil modelleridir. Genellikle tek bir dize olarak girdi al\u0131rlar ve tek bir dize olarak \u00e7\u0131kt\u0131 verirler. \u00d6rne\u011fin, bir metni \u00f6zetlemek veya bir soruya k\u0131sa bir cevap vermek i\u00e7in kullan\u0131labilirler.<\/li>\n<li><strong>Chat Modelleri (Chat Models):<\/strong> Sohbet tabanl\u0131 etkile\u015fimler i\u00e7in \u00f6zel olarak tasarlanm\u0131\u015ft\u0131r. Girdi olarak bir mesaj listesi (kullan\u0131c\u0131, sistem, yapay zeka mesajlar\u0131) al\u0131rlar ve bir mesaj \u00e7\u0131kt\u0131s\u0131 (genellikle yapay zeka mesaj\u0131) verirler. Bu, sohbet robotlar\u0131 ve diyalog sistemleri i\u00e7in idealdir, \u00e7\u00fcnk\u00fc modelin konu\u015fman\u0131n ak\u0131\u015f\u0131n\u0131 ve rollerini (kullan\u0131c\u0131 vs. asistan) daha iyi anlamas\u0131n\u0131 sa\u011flar.<\/li>\n<li><strong>Embedding Modelleri (Embedding Models):<\/strong> Metinleri say\u0131sal vekt\u00f6r g\u00f6sterimlerine (embedding&#8217;lere) d\u00f6n\u00fc\u015ft\u00fcren modellerdir. Bu vekt\u00f6rler, metinler aras\u0131ndaki semantik benzerli\u011fi \u00f6l\u00e7mek i\u00e7in kullan\u0131labilir. \u00d6rne\u011fin, bir sorguya en alakal\u0131 belgeleri bulmak veya benzer c\u00fcmleleri gruplamak i\u00e7in embedding&#8217;ler vazge\u00e7ilmezdir.<\/li>\n<\/ul>\n<p>LangChain, bu farkl\u0131 model t\u00fcrleri i\u00e7in standart bir aray\u00fcz sa\u011flayarak, altyap\u0131y\u0131 de\u011fi\u015ftirmeden farkl\u0131 sa\u011flay\u0131c\u0131lar\u0131n (OpenAI, Hugging Face, Cohere vb.) modelleri aras\u0131nda ge\u00e7i\u015f yapmay\u0131 kolayla\u015ft\u0131r\u0131r. Bu, projenizin ihtiya\u00e7lar\u0131na en uygun modeli se\u00e7me esnekli\u011fi sunar.<\/p>\n<h4>Promptler (Prompts): Modellere Do\u011fru Talimatlar\u0131 Verme Sanat\u0131<\/h4>\n<p>Bir BHM&#8217;den istedi\u011finiz \u00e7\u0131kt\u0131y\u0131 alman\u0131n yolu, ona do\u011fru &#8220;prompt&#8217;u&#8221; vermekten ge\u00e7er. LangChain, prompt&#8217;lar\u0131 olu\u015fturmay\u0131 ve y\u00f6netmeyi kolayla\u015ft\u0131rmak i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar:<\/p>\n<ul>\n<li><strong>PromptTemplate:<\/strong> Sabit metinler ve dinamik olarak doldurulacak de\u011fi\u015fkenler i\u00e7eren \u015fablonlar olu\u015fturman\u0131z\u0131 sa\u011flar. Bu sayede, ayn\u0131 yap\u0131y\u0131 koruyarak farkl\u0131 girdilerle prompt&#8217;lar \u00fcretebilirsiniz. \u00d6rne\u011fin, bir \u015firket ad\u0131 veya bir konu ba\u015fl\u0131\u011f\u0131na g\u00f6re \u00f6zelle\u015ftirilmi\u015f bir prompt olu\u015fturmak m\u00fcmk\u00fcnd\u00fcr.<\/li>\n<li><strong>OutputParsers:<\/strong> BHM&#8217;den gelen ham metin \u00e7\u0131kt\u0131s\u0131n\u0131 yap\u0131land\u0131r\u0131lm\u0131\u015f verilere (JSON, Python objeleri vb.) d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in kullan\u0131l\u0131r. Bu, BHM \u00e7\u0131kt\u0131s\u0131n\u0131n daha sonraki i\u015flemler veya uygulamalar\u0131n\u0131z\u0131n geri kalan\u0131 taraf\u0131ndan kolayca kullan\u0131lmas\u0131n\u0131 sa\u011flar.<\/li>\n<\/ul>\n<p>Prompt m\u00fchendisli\u011fi, BHM uygulamalar\u0131n\u0131n ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir ve LangChain, bu s\u00fcreci daha y\u00f6netilebilir hale getirerek geli\u015ftiricilerin en iyi sonu\u00e7lar\u0131 elde etmelerine yard\u0131mc\u0131 olur.<\/p>\n<h4>Zincirler (Chains): Ad\u0131m Ad\u0131m \u0130\u015f Ak\u0131\u015flar\u0131 Olu\u015fturma<\/h4>\n<p>LangChain&#8217;in ad\u0131n\u0131 veren temel bile\u015fenlerden biri &#8220;Chain&#8221;lerdir. Chain&#8217;ler, birden fazla bile\u015feni (BHM \u00e7a\u011fr\u0131lar\u0131, di\u011fer chain&#8217;ler, ara\u00e7lar, veri i\u015flemciler vb.) bir araya getirerek karma\u015f\u0131k ve \u00e7ok ad\u0131ml\u0131 i\u015f ak\u0131\u015flar\u0131 olu\u015fturman\u0131za olanak tan\u0131r. Bir \u00e7\u0131kt\u0131n\u0131n, bir sonraki ad\u0131m\u0131n girdisi oldu\u011fu ard\u0131\u015f\u0131k i\u015flemleri tan\u0131mlamak i\u00e7in kullan\u0131l\u0131rlar.<\/p>\n<ul>\n<li><strong>LLMChain:<\/strong> Belirli bir PromptTemplate ve bir LLM&#8217;yi bir araya getiren en basit zincir t\u00fcr\u00fcd\u00fcr. Model \u00e7a\u011fr\u0131s\u0131n\u0131 ve prompt bi\u00e7imlendirmeyi tek bir ad\u0131mda kapsar.<\/li>\n<li><strong>SequentialChain:<\/strong> Birden fazla zinciri s\u0131ral\u0131 olarak birbirine ba\u011flar. Bir \u00f6nceki zincirin \u00e7\u0131kt\u0131s\u0131, bir sonrakinin girdisi olur. Bu, karma\u015f\u0131k g\u00f6revleri daha k\u00fc\u00e7\u00fck, y\u00f6netilebilir ad\u0131mlara b\u00f6lmek i\u00e7in idealdir. \u00d6rne\u011fin, \u00f6nce bir metni \u00f6zetleyen, sonra bu \u00f6zeti kullanarak bir soruya cevap veren bir zincir olu\u015fturabilirsiniz.<\/li>\n<li><strong>RetrievalQAChain:<\/strong> Harici belgelerden bilgi al\u0131p, bu bilgilerle sorular\u0131 cevaplamak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bir retriever (bilgi al\u0131c\u0131) ve bir BHM&#8217;yi birle\u015ftirir.<\/li>\n<\/ul>\n<p>Chain&#8217;ler, uygulamalar\u0131n mant\u0131\u011f\u0131n\u0131 yap\u0131land\u0131rmak ve BHM&#8217;lerin kapasitesini art\u0131rmak i\u00e7in inan\u0131lmaz derecede esnek bir yol sunar.<\/p>\n<h4>Agentler (Agents) ve Ara\u00e7lar (Tools): Dinamik Karar Verme ve D\u0131\u015f D\u00fcnya ile Etkile\u015fim<\/h4>\n<p>Agent&#8217;lar, LangChain&#8217;in en g\u00fc\u00e7l\u00fc ve yenilik\u00e7i \u00f6zelliklerinden biridir. Bir Agent, hangi eylemi yapaca\u011f\u0131na, hangi arac\u0131 kullanaca\u011f\u0131na ve bu eylemleri hangi s\u0131rayla ger\u00e7ekle\u015ftirece\u011fine dinamik olarak karar verebilen bir BHM&#8217;dir. Agent&#8217;lar, BHM&#8217;lerin &#8220;d\u00fc\u015f\u00fcnmesini&#8221; ve karma\u015f\u0131k problemleri \u00e7\u00f6zmek i\u00e7in ad\u0131m ad\u0131m ak\u0131l y\u00fcr\u00fctmesini sa\u011flar.<\/p>\n<ul>\n<li><strong>Agent:<\/strong> Bir BHM, bir dizi ara\u00e7 ve bir ak\u0131l y\u00fcr\u00fctme d\u00f6ng\u00fcs\u00fcnden olu\u015fur. Kullan\u0131c\u0131n\u0131n sorgusuna dayanarak, mevcut ara\u00e7lardan hangisinin sorunu \u00e7\u00f6zmek i\u00e7in en iyi oldu\u011funu belirler ve bu arac\u0131 kullan\u0131r.<\/li>\n<li><strong>Tools:<\/strong> Agent&#8217;lar\u0131n kullanabilece\u011fi i\u015flevlerdir. Bir ara\u00e7, web aramas\u0131 yapabilir (\u00f6rne\u011fin Google Search API), bir Python kodu \u00e7al\u0131\u015ft\u0131rabilir, bir API \u00e7a\u011f\u0131rabilir veya bir veritaban\u0131n\u0131 sorgulayabilir. LangChain, bir\u00e7ok yerle\u015fik ara\u00e7 sunar ve kendi \u00f6zel ara\u00e7lar\u0131n\u0131z\u0131 olu\u015fturman\u0131z\u0131 da kolayla\u015ft\u0131r\u0131r.<\/li>\n<\/ul>\n<p>Agent&#8217;lar, BHM&#8217;lerin sadece metin \u00fcretmekle kalmay\u0131p, problemleri \u00e7\u00f6zmek i\u00e7in d\u0131\u015f kaynaklar\u0131 kullanmas\u0131n\u0131 ve kendi ba\u015f\u0131na mant\u0131ksal ad\u0131mlar atmas\u0131n\u0131 sa\u011flayarak, BHM uygulamalar\u0131n\u0131n yeteneklerini bir \u00fcst seviyeye ta\u015f\u0131r. Ger\u00e7ekten ak\u0131ll\u0131, otonom sistemler olu\u015fturman\u0131n anahtar\u0131d\u0131rlar.<\/p>\n<h4>Bellek (Memory): Sohbet Ba\u011flam\u0131n\u0131 Koruma<\/h4>\n<p>BHM&#8217;lerin her etkile\u015fimi tek ba\u015f\u0131na g\u00f6rme e\u011filiminde olmas\u0131, sohbet tabanl\u0131 uygulamalar i\u00e7in b\u00fcy\u00fck bir sorundur. LangChain&#8217;deki &#8220;Memory&#8221; bile\u015fenleri, \u00f6nceki etkile\u015fimleri saklayarak ve BHM&#8217;ye sunarak bu sorunu \u00e7\u00f6zer. Bu sayede, BHM konu\u015fman\u0131n ba\u011flam\u0131n\u0131 hat\u0131rlayabilir ve daha tutarl\u0131, do\u011fal cevaplar verebilir.<\/p>\n<ul>\n<li><strong>ConversationBufferMemory:<\/strong> En basit bellek t\u00fcr\u00fcd\u00fcr ve t\u00fcm konu\u015fma ge\u00e7mi\u015fini bir arabellek i\u00e7inde saklar.<\/li>\n<li><strong>ConversationSummaryMemory:<\/strong> Konu\u015fma ge\u00e7mi\u015finin bir \u00f6zetini olu\u015fturarak bellek kullan\u0131m\u0131n\u0131 azalt\u0131r ve uzun sohbetler i\u00e7in daha verimlidir.<\/li>\n<li><strong>ConversationBufferWindowMemory:<\/strong> Yaln\u0131zca son N etkile\u015fimi saklayarak, belirli bir &#8220;zaman penceresi&#8221; i\u00e7indeki ba\u011flam\u0131 korur.<\/li>\n<\/ul>\n<p>Bellek, chatbotlar, sanal asistanlar ve uzun s\u00fcreli etkile\u015fim gerektiren t\u00fcm uygulamalar i\u00e7in olmazsa olmaz bir bile\u015fendir.<\/p>\n<h4>Belge Y\u00fckleyicileri (Document Loaders) ve Retriever&#8217;lar (Retrievers): Veri Eri\u015fimi ve Geri Getirme<\/h4>\n<p>LangChain, BHM&#8217;lerin kendi e\u011fitim verilerinin \u00f6tesindeki geni\u015f veri kaynaklar\u0131na eri\u015fmesini sa\u011flamak i\u00e7in \u00e7e\u015fitli bile\u015fenler sunar:<\/p>\n<ul>\n<li><strong>Document Loaders:<\/strong> PDF&#8217;ler, web sayfalar\u0131, CSV dosyalar\u0131, veritabanlar\u0131 gibi farkl\u0131 kaynaklardan veri y\u00fcklemek i\u00e7in kullan\u0131l\u0131r. Bu y\u00fckleyiciler, verileri BHM&#8217;lerin i\u015fleyebilece\u011fi &#8220;belge&#8221; format\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/li>\n<li><strong>Text Splitters:<\/strong> Y\u00fcklenen belgeleri BHM&#8217;lerin ba\u011flam penceresine s\u0131\u011facak daha k\u00fc\u00e7\u00fck par\u00e7alara (chunks) b\u00f6lmek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><strong>Vectorstores:<\/strong> Embedding&#8217;leri saklamak ve benzerlik aramalar\u0131 yapmak i\u00e7in kullan\u0131lan veritabanlar\u0131d\u0131r. Chroma, Pinecone, FAISS gibi bir\u00e7ok pop\u00fcler vekt\u00f6r veritaban\u0131yla entegrasyonu vard\u0131r.<\/li>\n<li><strong>Retrievers:<\/strong> Bir sorguya veya ba\u011flama dayal\u0131 olarak ilgili belgeleri (genellikle bir Vectorstore&#8217;dan) almak i\u00e7in kullan\u0131l\u0131r. Bu, BHM&#8217;ye g\u00fcncel veya \u00f6zel bilgiler sunarak &#8220;bilgi edinme&#8221; yetene\u011fini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/li>\n<\/ul>\n<p>Bu bile\u015fenler, BHM&#8217;ler i\u00e7in bilgiye dayal\u0131 sistemler olu\u015fturman\u0131n temelini olu\u015fturur; BHM&#8217;lerin ger\u00e7ek zamanl\u0131 verilerle veya kurum i\u00e7i belgelerle \u00e7al\u0131\u015fmas\u0131na olanak tan\u0131r.<\/p>\n<aside class=\"expert-tip\">\n        Uzman \u0130pucu: LangChain bile\u015fenlerini birle\u015ftirirken, her birinin belirli bir g\u00f6revi oldu\u011funu ve bir araya geldiklerinde \u00e7ok daha g\u00fc\u00e7l\u00fc sistemler olu\u015fturduklar\u0131n\u0131 unutmay\u0131n. Mod\u00fclerlik sayesinde, uygulaman\u0131z\u0131n belirli bir ihtiyac\u0131na g\u00f6re bile\u015fenleri kolayca de\u011fi\u015ftirebilir veya ekleyebilirsiniz. \u00d6rne\u011fin, farkl\u0131 bir BHM denemek veya yeni bir veri kayna\u011f\u0131 eklemek olduk\u00e7a basittir.<br \/>\n    <\/aside>\n<h2>\u0130lk LangChain Uygulaman\u0131z\u0131 Ad\u0131m Ad\u0131m Nas\u0131l Geli\u015ftirirsiniz?<\/h2>\n<p>\u015eimdi teoriden prati\u011fe ge\u00e7me zaman\u0131! LangChain ile basit ama i\u015flevsel bir BHM uygulamas\u0131 geli\u015ftirmek i\u00e7in ad\u0131m ad\u0131m bir rehber sunaca\u011f\u0131z. Bu \u00f6rnekte, belirli bir metin \u00fczerinde soru-cevap yapabilen bir sistem olu\u015fturaca\u011f\u0131z. Bu, bilgi taban\u0131 uygulamalar\u0131, dok\u00fcman analizi veya m\u00fc\u015fteri destek sistemleri i\u00e7in temel bir vaka analizi niteli\u011findedir.<\/p>\n<h3>Kurulum ve Temel Ortam Ayarlar\u0131 Nas\u0131l Yap\u0131l\u0131r?<\/h3>\n<p>LangChain kullanmaya ba\u015flamak i\u00e7in \u00f6ncelikle Python ortam\u0131n\u0131zda gerekli k\u00fct\u00fcphaneleri kurman\u0131z gerekiyor. Ayr\u0131ca, bir BHM sa\u011flay\u0131c\u0131s\u0131yla (bu \u00f6rnekte OpenAI kullanaca\u011f\u0131z) etkile\u015fim kurmak i\u00e7in API anahtarlar\u0131n\u0131z\u0131 ayarlaman\u0131z \u015fartt\u0131r.<\/p>\n<p><strong>Ad\u0131m 1: Gerekli K\u00fct\u00fcphaneleri Kurun<\/strong><\/p>\n<p>Terminalinizi a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\npip install langchain openai\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu komut, LangChain framework'\u00fcn\u00fc ve OpenAI modelleriyle ileti\u015fim kurmak i\u00e7in gereken OpenAI Python istemcisini y\u00fckleyecektir.<\/p>\n<p><strong>Ad\u0131m 2: API Anahtar\u0131n\u0131z\u0131 Ayarlay\u0131n<\/strong><\/p>\n<p>OpenAI'den bir API anahtar\u0131 alman\u0131z gerekecek. Bu anahtar\u0131, ortam de\u011fi\u015fkeni olarak ayarlamak en g\u00fcvenli ve \u00f6nerilen y\u00f6ntemdir. Bir\u00e7ok i\u015fletim sisteminde (Linux\/macOS) a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>\nexport OPENAI_API_KEY=\"sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\n    <\/pre>\n<p><\/code><\/p>\n<p>Windows kullan\u0131yorsan\u0131z, komut istemcisinde <code>set OPENAI_API_KEY=sk-xxxxxxxxxxxx<\/code> komutunu veya PowerShell'de <code>$env:OPENAI_API_KEY=\"sk-xxxxxxxxxxxx\"<\/code> komutunu kullanabilirsiniz. Ya da Python beti\u011finizin ba\u015f\u0131nda do\u011frudan <code>import os; os.environ[\"OPENAI_API_KEY\"] = \"sk-xxxxxxxxxxxx\"<\/code> \u015feklinde tan\u0131mlayabilirsiniz. Ancak \u00fcretim ortamlar\u0131nda bu y\u00f6ntem \u00f6nerilmez.<\/p>\n<h3>Basit Bir Soru-Cevap Botu Olu\u015fturma \u00d6rne\u011fi (Vaka Analizi)<\/h3>\n<p>Haydi \u015fimdi, verdi\u011fimiz bir metin par\u00e7as\u0131ndan belirli sorular\u0131 cevaplayabilen basit bir BHM destekli sistem olu\u015ftural\u0131m. Bu, LangChain'in en temel \"Chain\" yap\u0131s\u0131n\u0131 ve \"PromptTemplate\" kullan\u0131m\u0131n\u0131 g\u00f6sterecektir.<\/p>\n<p><strong>Problem:<\/strong> Bir \u015firket hakk\u0131nda genel bilgiler i\u00e7eren bir metinimiz var. Bu metinden, \u015firket faaliyetleri veya ge\u00e7mi\u015fi hakk\u0131nda sorular\u0131 cevaplayabilen bir yapay zeka asistan\u0131 olu\u015fturmak istiyoruz.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm Ad\u0131mlar\u0131:<\/strong><\/p>\n<ol>\n<li>Bir BHM modeli tan\u0131mlayaca\u011f\u0131z (OpenAI GPT-3.5-turbo).<\/li>\n<li>BHM'ye hangi formatta soru soraca\u011f\u0131m\u0131z\u0131 belirten bir \"PromptTemplate\" olu\u015fturaca\u011f\u0131z.<\/li>\n<li>Bu PromptTemplate ve BHM'yi bir \"LLMChain\" i\u00e7inde birle\u015ftirece\u011fiz.<\/li>\n<li>Chain'i kullanarak sorular sorup cevaplar alaca\u011f\u0131z.<\/li>\n<\/ol>\n<p><strong>Kod \u00d6rne\u011fi:<\/strong><\/p>\n<pre><code>\nfrom langchain.llms import OpenAI\nfrom langchain.prompts import PromptTemplate\nfrom langchain.chains import LLMChain\nimport os\n\n# OpenAI API anahtar\u0131n\u0131z\u0131n ortam de\u011fi\u015fkeni olarak ayarland\u0131\u011f\u0131ndan emin olun\n# os.environ[\"OPENAI_API_KEY\"] = \"sizin_api_anahtar\u0131n\u0131z_buraya\" \n\n# 1. Bir LLM Modeli Tan\u0131mlama\n# temperature parametresi, \u00e7\u0131kt\u0131n\u0131n ne kadar yarat\u0131c\u0131 veya belirleyici olaca\u011f\u0131n\u0131 ayarlar (0.0-1.0 aras\u0131)\nllm = OpenAI(temperature=0.7)\n\n# 2. PromptTemplate Olu\u015fturma\n# Soru-cevap sistemi i\u00e7in bir ba\u011flam ve bir soru de\u011fi\u015fkeni i\u00e7eren bir \u015fablon belirliyoruz.\n# \"context\" de\u011fi\u015fkeni, botun cevaplayaca\u011f\u0131 bilgiyi i\u00e7erecektir.\n# \"question\" de\u011fi\u015fkeni ise kullan\u0131c\u0131n\u0131n sorusudur.\nprompt_template = PromptTemplate(\n    input_variables=[\"context\", \"question\"],\n    template=\"\"\"A\u015fa\u011f\u0131daki ba\u011flam\u0131 kullanarak soruyu cevaplay\u0131n. \n    E\u011fer ba\u011flamda bilgi yoksa, '\u00dczg\u00fcn\u00fcm, bu bilgiye sahip de\u011filim.' deyin.\n    \n    Ba\u011flam: {context}\n    \n    Soru: {question}\n    \n    Cevap:\"\"\"\n)\n\n# 3. LLMChain Olu\u015fturma\n# PromptTemplate'i ve LLM modelini bir LLMChain i\u00e7inde birle\u015ftiriyoruz.\nqa_chain = LLMChain(llm=llm, prompt=prompt_template)\n\n# 4. Ba\u011flam ve Soru Belirleme\n# \u00d6rnek ba\u011flam\u0131m\u0131z:\ncompany_context = \"\"\"\nABC Teknoloji, 2010 y\u0131l\u0131nda kurulmu\u015f, yenilik\u00e7i yaz\u0131l\u0131m \u00e7\u00f6z\u00fcmleri sunan lider bir \u015firkettir.\nBa\u015flang\u0131\u00e7ta k\u00fc\u00e7\u00fck bir mobil uygulama geli\u015ftirme st\u00fcdyosu olarak yola \u00e7\u0131kan \u015firket,\ng\u00fcn\u00fcm\u00fczde yapay zeka ve bulut bili\u015fim alanlar\u0131nda \u00f6nc\u00fc projelere imza atmaktad\u0131r.\nMerkezi \u0130stanbul'da bulunan ABC Teknoloji'nin 200'den fazla \u00e7al\u0131\u015fan\u0131 bulunmaktad\u0131r.\n\u015eirketin ana hedeflerinden biri, s\u00fcrd\u00fcr\u00fclebilir teknolojik geli\u015fmeleri destekleyerek\ntopluma fayda sa\u011flamakt\u0131r.\n\"\"\"\n\n# \u0130lk soru\nquestion1 = \"ABC Teknoloji ne zaman kuruldu?\"\nprint(f\"Soru: {question1}\")\n# Chain'i \u00e7a\u011f\u0131r\u0131rken, PromptTemplate'te tan\u0131mlad\u0131\u011f\u0131m\u0131z input_variables'\u0131 (context ve question) s\u00f6zl\u00fck olarak iletiyoruz.\nresponse1 = qa_chain.run(context=company_context, question=question1)\nprint(f\"Cevap: {response1.strip()}\") # strip() ile fazla bo\u015fluklar\u0131 temizliyoruz.\nprint(\"-\" * 30)\n\n# \u0130kinci soru\nquestion2 = \"ABC Teknoloji'nin ana hedefleri nelerdir?\"\nprint(f\"Soru: {question2}\")\nresponse2 = qa_chain.run(context=company_context, question=question2)\nprint(f\"Cevap: {response2.strip()}\")\nprint(\"-\" * 30)\n\n# Ba\u011flamda olmayan bir soru\nquestion3 = \"ABC Teknoloji'nin CEO'su kimdir?\"\nprint(f\"Soru: {question3}\")\nresponse3 = qa_chain.run(context=company_context, question=question3)\nprint(f\"Cevap: {response3.strip()}\")\nprint(\"-\" * 30)\n    <\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki kod blo\u011fu, LangChain'in temel yap\u0131 ta\u015flar\u0131 olan LLM, PromptTemplate ve LLMChain'in nas\u0131l bir araya getirilerek basit bir soru-cevap sistemi olu\u015fturuldu\u011funu g\u00f6stermektedir. <code>llm<\/code> objesi, OpenAI API'sine yap\u0131lan \u00e7a\u011fr\u0131lar\u0131 y\u00f6netirken, <code>prompt_template<\/code> objesi, BHM'ye g\u00f6nderilecek metnin yap\u0131s\u0131n\u0131 belirler. <code>LLMChain<\/code> ise bu iki bile\u015feni birle\u015ftirerek, belirli bir ba\u011flam ve soru ile BHM'den cevap alma s\u00fcrecini soyutlar.<\/p>\n<p>\u00c7\u0131kt\u0131y\u0131 analiz etti\u011fimizde, BHM'nin verilen ba\u011flam i\u00e7indeki bilgileri do\u011fru bir \u015fekilde i\u015fleyerek sorular\u0131 cevaplad\u0131\u011f\u0131n\u0131 g\u00f6rece\u011fiz. Ba\u011flamda olmayan bir soru soruldu\u011funda ise, prompt'ta belirtti\u011fimiz gibi, \"\u00dczg\u00fcn\u00fcm, bu bilgiye sahip de\u011filim.\" \u015feklinde bir cevap d\u00f6nd\u00fcrmesi beklenir. Bu, BHM'nin yaln\u0131zca verilen bilgiyle s\u0131n\u0131rl\u0131 kalmas\u0131n\u0131 ve uydurma cevaplar vermemesini sa\u011flamak i\u00e7in \u00f6nemli bir stratejidir.<\/p>\n<p>Bu basit \u00f6rnek, LangChain'in mod\u00fcler yap\u0131s\u0131n\u0131n ve BHM'leri bir uygulamaya entegre etme kolayl\u0131\u011f\u0131n\u0131n sadece bir ba\u015flang\u0131c\u0131d\u0131r. Daha karma\u015f\u0131k uygulamalar i\u00e7in bu temel \u00fczerine bellek, agent'lar ve retriever'lar gibi di\u011fer bile\u015fenleri ekleyerek sisteminizi geni\u015fletebilirsiniz.<\/p>\n<h2>LangChain ile Daha Ak\u0131ll\u0131 ve Karma\u015f\u0131k Sistemler Nas\u0131l Kurulur?<\/h2>\n<p>Basit bir soru-cevap botu olu\u015fturduktan sonra, LangChain'in ger\u00e7ek g\u00fcc\u00fcn\u00fc ortaya koyan daha geli\u015fmi\u015f \u00f6zelliklerine odaklanabiliriz: bellek (memory) kullanarak sohbet ge\u00e7mi\u015fini y\u00f6netmek ve agent'lar ile ara\u00e7lar\u0131 kullanarak dinamik etkile\u015fimler sa\u011flamak. Bu iki \u00f6zellik, BHM destekli uygulamalar\u0131n\u0131z\u0131 \u00e7ok daha ak\u0131ll\u0131 ve kullan\u0131c\u0131 dostu hale getirecektir.<\/p>\n<h3>Bellek (Memory) Kullanarak Sohbet Ge\u00e7mi\u015fini Y\u00f6netme Nas\u0131l Yap\u0131l\u0131r?<\/h3>\n<p>\u00d6nceki \u00f6rne\u011fimizdeki soru-cevap botu, her soruyu ba\u011f\u0131ms\u0131z olarak ele al\u0131yordu ve \u00f6nceki etkile\u015fimleri hat\u0131rlam\u0131yordu. Ger\u00e7ek bir sohbet deneyimi i\u00e7in bu yeterli de\u011fildir. LangChain'in bellek bile\u015fenleri, BHM'nin sohbetin ba\u011flam\u0131n\u0131 korumas\u0131n\u0131 sa\u011flar. En yayg\u0131n bellek t\u00fcrlerinden biri olan <code>ConversationBufferMemory<\/code>'yi kullanarak bunu nas\u0131l yapaca\u011f\u0131m\u0131za bakal\u0131m.<\/p>\n<p><strong>Problem:<\/strong> Sohbet robotumuzun \u00f6nceki konu\u015fmalar\u0131 hat\u0131rlamas\u0131n\u0131 ve bu ba\u011flama g\u00f6re cevap vermesini istiyoruz.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> Bir <code>ConversationChain<\/code> olu\u015fturaca\u011f\u0131z ve i\u00e7ine bir <code>ConversationBufferMemory<\/code> ekleyece\u011fiz.<\/p>\n<pre><code>\nfrom langchain.llms import OpenAI\nfrom langchain.chains import ConversationChain\nfrom langchain.memory import ConversationBufferMemory\nimport os\n\n# OpenAI API anahtar\u0131n\u0131z\u0131n ortam de\u011fi\u015fkeni olarak ayarland\u0131\u011f\u0131ndan emin olun\n# os.environ[\"OPENAI_API_KEY\"] = \"sizin_api_anahtar\u0131n\u0131z_buraya\"\n\n# 1. Bir LLM Modeli Tan\u0131mlama\nllm = OpenAI(temperature=0.7)\n\n# 2. Bellek Bile\u015feni Olu\u015fturma\n# ConversationBufferMemory, t\u00fcm sohbet ge\u00e7mi\u015fini bir arabellek i\u00e7inde tutar.\nmemory = ConversationBufferMemory()\n\n# 3. ConversationChain Olu\u015fturma\n# ConversationChain, PromptTemplate'i otomatik olarak y\u00f6netir ve memory'yi entegre eder.\n# verbose=True, chain'in i\u00e7 \u00e7al\u0131\u015fma mant\u0131\u011f\u0131n\u0131 (prompt'lar\u0131 vb.) g\u00f6rmemizi sa\u011flar.\nconversation = ConversationChain(\n    llm=llm,\n    memory=memory,\n    verbose=True # Bu, s\u00fcrecin ad\u0131mlar\u0131n\u0131 terminalde g\u00f6rmenizi sa\u011flar.\n)\n\n# \u0130lk etkile\u015fim\nprint(\"Kullan\u0131c\u0131: Merhaba, nas\u0131ls\u0131n?\")\nresponse1 = conversation.predict(input=\"Merhaba, nas\u0131ls\u0131n?\")\nprint(f\"Bot: {response1.strip()}\")\nprint(\"-\" * 30)\n\n# \u0130kinci etkile\u015fim (\u00f6nceki ba\u011flam\u0131 kullanarak)\nprint(\"Kullan\u0131c\u0131: Benim ad\u0131m Ay\u015fe. Sen kimsin?\")\nresponse2 = conversation.predict(input=\"Benim ad\u0131m Ay\u015fe. Sen kimsin?\")\nprint(f\"Bot: {response2.strip()}\")\nprint(\"-\" * 30)\n\n# \u00dc\u00e7\u00fcnc\u00fc etkile\u015fim (hem kendi ad\u0131n\u0131 hem de kullan\u0131c\u0131n\u0131n ad\u0131n\u0131 hat\u0131rlamal\u0131)\nprint(\"Kullan\u0131c\u0131: Ay\u015fe ile sohbet etmekten keyif al\u0131yor musun?\")\nresponse3 = conversation.predict(input=\"Ay\u015fe ile sohbet etmekten keyif al\u0131yor musun?\")\nprint(f\"Bot: {response3.strip()}\")\nprint(\"-\" * 30)\n\n# Bellekteki ge\u00e7mi\u015fi kontrol etme\nprint(\"\\nBellek \u0130\u00e7eri\u011fi:\")\nprint(memory.buffer)\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>ConversationBufferMemory<\/code> sayesinde BHM, \"Ay\u015fe\" ad\u0131n\u0131 ve daha \u00f6nceki konu\u015fma ak\u0131\u015f\u0131n\u0131 hat\u0131rlayarak daha tutarl\u0131 ve do\u011fal cevaplar verebildi. <code>verbose=True<\/code> parametresi, BHM'ye g\u00f6nderilen tam prompt'u (ge\u00e7mi\u015f sohbeti de i\u00e7eren) g\u00f6rmenizi sa\u011flar, bu da hata ay\u0131klama ve prompt m\u00fchendisli\u011fi i\u00e7in \u00e7ok faydal\u0131d\u0131r.<\/p>\n<h3>Agentlar ve Ara\u00e7larla Dinamik Etkile\u015fim Nas\u0131l Sa\u011flan\u0131r?<\/h3>\n<p>Bir BHM'nin sadece metin \u00fcretmekle kalmay\u0131p, d\u0131\u015f d\u00fcnyayla etkile\u015fime ge\u00e7mesini, sorular\u0131 yan\u0131tlamak i\u00e7in kararlar almas\u0131n\u0131 ve uygun ara\u00e7lar\u0131 kullanmas\u0131n\u0131 istedi\u011fimizde \"Agent\"lar\u0131 devreye sokar\u0131z. Agent'lar, BHM'lerin \"d\u00fc\u015f\u00fcnmesini\" ve karma\u015f\u0131k g\u00f6revleri \u00e7\u00f6zmek i\u00e7in ad\u0131mlar atmas\u0131n\u0131 sa\u011flar.<\/p>\n<p><strong>Problem:<\/strong> Kullan\u0131c\u0131n\u0131n hem genel sorular\u0131n\u0131 cevaplayabilen hem de ger\u00e7ek zamanl\u0131 bilgiye (\u00f6rne\u011fin g\u00fcncel d\u00f6viz kuru) ihtiya\u00e7 duydu\u011funda d\u0131\u015far\u0131dan bilgi alabilen bir asistan olu\u015fturmak istiyoruz.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> Bir Agent olu\u015fturaca\u011f\u0131z ve ona bir veya daha fazla \"Tool\" (ara\u00e7) sa\u011flayaca\u011f\u0131z. Bu \u00f6rnekte, web aramas\u0131 yapabilen bir arac\u0131 kullanaca\u011f\u0131z (\u00f6rne\u011fin SerpAPI, Google Search API veya DuckDuckGoSearchRun).<\/p>\n<p>\u00d6ncelikle, kullanaca\u011f\u0131m\u0131z araca ba\u011fl\u0131 olarak gerekli ek k\u00fct\u00fcphaneleri kurmal\u0131y\u0131z. \u00d6rne\u011fin, <code>serpapi<\/code> i\u00e7in:<\/p>\n<pre><code>\npip install google-search-results\n    <\/pre>\n<p><\/code><\/p>\n<p>Ve SerpAPI anahtar\u0131n\u0131z\u0131 da ortam de\u011fi\u015fkeni olarak ayarlaman\u0131z gerekir:<\/p>\n<pre><code>\nexport SERPAPI_API_KEY=\"your-serpapi-api-key\"\n    <\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi agent \u00f6rne\u011fimize ge\u00e7elim:<\/p>\n<pre><code>\nfrom langchain.agents import AgentExecutor, create_react_agent\nfrom langchain_openai import OpenAI\nfrom langchain.tools import Tool\nfrom langchain_community.tools import DuckDuckGoSearchRun # SerpAPI yoksa bunu kullanabiliriz\nfrom langchain import hub\nimport os\n\n# OpenAI ve SerpAPI (veya DuckDuckGoSearchRun i\u00e7in gerekmez) API anahtarlar\u0131n\u0131n ayarland\u0131\u011f\u0131ndan emin olun\n# os.environ[\"OPENAI_API_KEY\"] = \"sizin_api_anahtar\u0131n\u0131z_buraya\"\n# os.environ[\"SERPAPI_API_KEY\"] = \"sizin_serpapi_anahtar\u0131n\u0131z_buraya\"\n\n# 1. Bir LLM Modeli Tan\u0131mlama\nllm = OpenAI(temperature=0) # Agent'lar i\u00e7in genellikle d\u00fc\u015f\u00fck s\u0131cakl\u0131k (daha deterministik) tercih edilir.\n\n# 2. Ara\u00e7lar\u0131 Tan\u0131mlama\n# Arama arac\u0131 olu\u015fturuyoruz. Bu, agent'\u0131n d\u0131\u015f d\u00fcnyadan bilgi edinmesini sa\u011flar.\n# SerpAPI yerine DuckDuckGoSearchRun kullan\u0131rsan\u0131z 'google-search-results' kurulumuna gerek kalmaz.\n# search = DuckDuckGoSearchRun() # E\u011fer SerpAPI kullanmak istemiyorsan\u0131z\nsearch_tool = Tool(\n    name=\"Search\",\n    func=DuckDuckGoSearchRun().run, # Burada SerpAPIWrapper().run da kullan\u0131labilir\n    description=\"Arama motorunu kullanarak g\u00fcncel bilgilere eri\u015fmek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.\"\n)\n\ntools = [search_tool]\n\n# 3. Agent Olu\u015fturma\n# Agent'\u0131n kullanaca\u011f\u0131 prompt'u LangChain Hub'dan \u00e7ekiyoruz. Bu, iyi tasarlanm\u0131\u015f bir prompt sa\u011flar.\nprompt = hub.pull(\"hwchase17\/react\")\n\n# ReAct Agent'\u0131n\u0131 olu\u015fturuyoruz. ReAct, modelin d\u00fc\u015f\u00fcnmesini (thought) ve eylem (action) yapmas\u0131n\u0131 sa\u011flar.\nagent = create_react_agent(llm, tools, prompt)\n\n# 4. AgentExecutor Olu\u015fturma\n# AgentExecutor, agent'\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 runtime'd\u0131r. Ara\u00e7lar\u0131 \u00e7a\u011f\u0131r\u0131r ve agent'\u0131n ad\u0131mlar\u0131n\u0131 y\u00fcr\u00fct\u00fcr.\nagent_executor = AgentExecutor(\n    agent=agent,\n    tools=tools,\n    verbose=True, # Agent'\u0131n d\u00fc\u015f\u00fcnme ve eylem ad\u0131mlar\u0131n\u0131 g\u00f6rmek i\u00e7in True yap\u0131n.\n    handle_parsing_errors=True # Agent'\u0131n \u00e7\u0131kt\u0131lar\u0131n\u0131 ayr\u0131\u015ft\u0131rmada sorun ya\u015farsa hata vermesini sa\u011flar.\n)\n\n# Agent ile etkile\u015fim\nprint(\"Kullan\u0131c\u0131: \u0130stanbul'un n\u00fcfusu ka\u00e7 ve T\u00fcrkiye'nin ba\u015fkenti neresidir?\")\nresponse1 = agent_executor.invoke({\"input\": \"\u0130stanbul'un n\u00fcfusu ka\u00e7 ve T\u00fcrkiye'nin ba\u015fkenti neresidir?\"})\nprint(f\"Bot: {response1['output'].strip()}\")\nprint(\"-\" * 30)\n\nprint(\"Kullan\u0131c\u0131: \u015eu anki dolar kuru nedir?\")\nresponse2 = agent_executor.invoke({\"input\": \"\u015eu anki dolar kuru nedir?\"})\nprint(f\"Bot: {response2['output'].strip()}\")\nprint(\"-\" * 30)\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu agent \u00f6rne\u011fi, BHM'nin sadece \u00f6\u011frendi\u011fi verilerle s\u0131n\u0131rl\u0131 kalmad\u0131\u011f\u0131n\u0131, ayn\u0131 zamanda ihtiya\u00e7 duydu\u011funda d\u0131\u015f kaynaklardan (bu durumda bir arama motoru) bilgi alabildi\u011fini g\u00f6steriyor. <code>verbose=True<\/code> sayesinde, agent'\u0131n nas\u0131l d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcn\u00fc (thought), hangi arac\u0131 \u00e7a\u011f\u0131rd\u0131\u011f\u0131n\u0131 (action), arac\u0131n ne cevap verdi\u011fini (observation) ve nihai cevab\u0131 nas\u0131l \u00fcretti\u011fini ad\u0131m ad\u0131m takip edebilirsiniz. Bu, agent'lar\u0131n karma\u015f\u0131k problemler i\u00e7in nas\u0131l \u00e7\u00f6z\u00fcm \u00fcrettiklerini anlamak a\u00e7\u0131s\u0131ndan \u00e7ok de\u011ferlidir.<\/p>\n<p>Agent'lar ve ara\u00e7lar, BHM uygulamalar\u0131na ger\u00e7ek d\u00fcnya etkile\u015fim yetene\u011fi kazand\u0131r\u0131r. Bu sayede, sadece metin tabanl\u0131 de\u011fil, ayn\u0131 zamanda dinamik ve eyleme y\u00f6nelik asistanlar, otomasyon sistemleri ve veri analiz ara\u00e7lar\u0131 olu\u015fturabilirsiniz.<\/p>\n<h2>LangChain Uygulamalar\u0131n\u0131n Performans\u0131 ve \u00d6l\u00e7eklenebilirli\u011fi Nas\u0131l \u0130yile\u015ftirilir?<\/h2>\n<p>LangChain ile g\u00fc\u00e7l\u00fc BHM uygulamalar\u0131 geli\u015ftirirken, performans ve \u00f6l\u00e7eklenebilirlik \u00f6nemli hale gelir. \u00d6zellikle \u00fcretim ortam\u0131nda \u00e7al\u0131\u015fan uygulamalar i\u00e7in bu fakt\u00f6rler kritik \u00f6neme sahiptir. \u0130\u015fte uygulaman\u0131z\u0131n daha h\u0131zl\u0131 ve daha verimli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayacak baz\u0131 ipu\u00e7lar\u0131 ve mobil uyumluluk hakk\u0131nda d\u00fc\u015f\u00fcnceler:<\/p>\n<h3>Uygulama Performans\u0131n\u0131 Art\u0131rma Stratejileri<\/h3>\n<p>BHM \u00e7a\u011fr\u0131lar\u0131 genellikle zaman al\u0131c\u0131 ve maliyetli olabilir. Performans\u0131 art\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki teknikleri de\u011ferlendirebilirsiniz:<\/p>\n<ul>\n<li><strong>Caching (\u00d6nbellekleme):<\/strong> Ayn\u0131 sorgu tekrarland\u0131\u011f\u0131nda BHM'ye tekrar \u00e7a\u011fr\u0131 yapmak yerine, daha \u00f6nce al\u0131nan cevab\u0131 \u00f6nbellekten d\u00f6nd\u00fcrmek performans\u0131 ve maliyeti \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirebilir. LangChain, \u00e7e\u015fitli \u00f6nbellekleme entegrasyonlar\u0131 sunar (InMemoryCache, RedisCache, SQLiteCache vb.).<\/li>\n<pre><code>\nfrom langchain.cache import InMemoryCache\nfrom langchain.globals import set_llm_cache\nfrom langchain.llms import OpenAI\n\n# Bellek i\u00e7i \u00f6nbelle\u011fi etkinle\u015ftir\nset_llm_cache(InMemoryCache())\n\nllm = OpenAI(temperature=0)\n\n# Ayn\u0131 sorguyu birden \u00e7ok kez \u00e7al\u0131\u015ft\u0131rma\nprint(llm.invoke(\"B\u00fcy\u00fck dil modelleri nedir?\"))\nprint(llm.invoke(\"B\u00fcy\u00fck dil modelleri nedir?\")) # Bu \u00e7a\u011fr\u0131 \u00f6nbellekten d\u00f6necektir\n        <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte ikinci \u00e7a\u011fr\u0131, OpenAI API'sine gitmek yerine \u00f6nbellekten servis edilecektir, bu da s\u00fcreyi ve maliyeti azalt\u0131r.<\/p>\n<li><strong>Asenkron \u0130\u015flemler:<\/strong> Birden fazla BHM \u00e7a\u011fr\u0131s\u0131 veya harici ara\u00e7 \u00e7a\u011fr\u0131s\u0131 yapman\u0131z gerekti\u011finde, bunlar\u0131 e\u015fzamans\u0131z (asynchronous) olarak \u00e7al\u0131\u015ft\u0131rmak, genel y\u00fcr\u00fctme s\u00fcresini \u00f6nemli \u00f6l\u00e7\u00fcde k\u0131saltabilir. LangChain'in bir\u00e7ok bile\u015feni <code>ainvoke<\/code> (asenkron invoke) veya <code>arun<\/code> gibi asenkron metodlar\u0131 destekler.<\/li>\n<li><strong>Batch \u0130\u015fleme:<\/strong> M\u00fcmk\u00fcn oldu\u011funda, birden fazla prompt'u tek bir BHM \u00e7a\u011fr\u0131s\u0131nda toplu olarak g\u00f6ndermek, API overhead'ini azaltabilir ve daha verimli olabilir. Baz\u0131 BHM sa\u011flay\u0131c\u0131lar\u0131, toplu i\u015flem API'leri sunar.<\/li>\n<li><strong>Token S\u0131n\u0131rlar\u0131n\u0131 Y\u00f6netme:<\/strong> BHM'lerin ba\u011flam penceresi (token s\u0131n\u0131r\u0131) vard\u0131r. Bu s\u0131n\u0131r\u0131n a\u015f\u0131lmas\u0131 hataya veya performans d\u00fc\u015f\u00fc\u015f\u00fcne yol a\u00e7ar. Girdi metinlerini uygun \u015fekilde b\u00f6l\u00fcmlere ay\u0131rmak (text splitting), \u00f6zetleme teknikleri kullanmak veya ak\u0131ll\u0131 bellek stratejileri (ConversationSummaryMemory, ConversationBufferWindowMemory) uygulamak bu durumu y\u00f6netmeye yard\u0131mc\u0131 olur.<\/li>\n<li><strong>Model Se\u00e7imi:<\/strong> Her zaman en b\u00fcy\u00fck veya en g\u00fc\u00e7l\u00fc modeli kullanmak zorunda de\u011filsiniz. G\u00f6revin karma\u015f\u0131kl\u0131\u011f\u0131na ba\u011fl\u0131 olarak daha k\u00fc\u00e7\u00fck, daha h\u0131zl\u0131 ve daha uygun maliyetli modeller (\u00f6rne\u011fin GPT-3.5-turbo yerine Llama 2'nin 7B versiyonu) kullanmak, performans\u0131 ve maliyeti optimize edebilir.<\/li>\n<\/ul>\n<aside class=\"expert-tip\">\n        Uzman \u0130pucu: LangChain ile geli\u015ftirme yaparken, her BHM \u00e7a\u011fr\u0131s\u0131n\u0131n maliyeti ve gecikmesi oldu\u011funu unutmay\u0131n. \u00d6zellikle prototipleme a\u015famas\u0131nda \"verbose=True\" parametresini kullanarak chain'lerin veya agent'lar\u0131n i\u00e7 i\u015fleyi\u015fini g\u00f6zlemlemek, potansiyel performans darbo\u011fazlar\u0131n\u0131 veya gereksiz \u00e7a\u011fr\u0131lar\u0131 tespit etmenize yard\u0131mc\u0131 olacakt\u0131r. \u00dcretim ortam\u0131nda ise bu parametreyi kapatmay\u0131 unutmay\u0131n.<br \/>\n    <\/aside>\n<h3>Uygulaman\u0131n \u00d6l\u00e7eklenebilirli\u011fini Sa\u011flama<\/h3>\n<p>Uygulaman\u0131z b\u00fcy\u00fcd\u00fck\u00e7e, daha fazla kullan\u0131c\u0131ya ve daha karma\u015f\u0131k isteklere hizmet verebilmesi i\u00e7in \u00f6l\u00e7eklenebilir olmas\u0131 gerekir:<\/p>\n<ul>\n<li><strong>Durumsuz (Stateless) Mimariler:<\/strong> Uygulaman\u0131z\u0131n m\u00fcmk\u00fcn oldu\u011funca durumsuz olmas\u0131n\u0131 sa\u011flamak, y\u00fck dengeleyiciler arkas\u0131nda kolayca yatay \u00f6l\u00e7eklenmesine olanak tan\u0131r. Bellek gibi durum gerektiren bile\u015fenler i\u00e7in Redis gibi harici, \u00f6l\u00e7eklenebilir bellek depolar\u0131n\u0131 kullan\u0131n.<\/li>\n<li><strong>Kapsay\u0131c\u0131la\u015ft\u0131rma (Containerization):<\/strong> Uygulaman\u0131z\u0131 Docker gibi ara\u00e7larla kapsay\u0131c\u0131lara almak, farkl\u0131 ortamlarda tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar ve Kubernetes gibi orkestrasyon ara\u00e7lar\u0131yla kolayca \u00f6l\u00e7eklendirilebilir.<\/li>\n<li><strong>\u0130zleme ve G\u00fcnl\u00fckleme (Monitoring & Logging):<\/strong> Uygulaman\u0131z\u0131n performans\u0131n\u0131, hata oranlar\u0131n\u0131 ve BHM \u00e7a\u011fr\u0131lar\u0131n\u0131 izlemek i\u00e7in ara\u00e7lar kullan\u0131n. LangChain, tracing (izleme) ara\u00e7lar\u0131yla (\u00f6rne\u011fin LangSmith) entegrasyonlar sunar. Bu, \u00fcretim ortam\u0131nda sorunlar\u0131 h\u0131zl\u0131ca tespit etmenizi ve \u00e7\u00f6zmenizi sa\u011flar.<\/li>\n<\/ul>\n<h3>Mobil Uyumlu HTML ve Kullan\u0131c\u0131 Deneyimi<\/h3>\n<p>LangChain, backend'de BHM mant\u0131\u011f\u0131n\u0131 y\u00f6neten bir framework't\u00fcr. Frontend (kullan\u0131c\u0131 aray\u00fcz\u00fc) taraf\u0131nda ise HTML, CSS ve JavaScript kullanarak mobil uyumlu deneyimler olu\u015fturabilirsiniz. Bir web aray\u00fcz\u00fc geli\u015ftiriyorsan\u0131z, responsive tasar\u0131m prensiplerini uygulamak kritik \u00f6neme sahiptir.<\/p>\n<p><strong>\u00d6rnek Mobil Uyumlu CSS Yap\u0131s\u0131 (HTML \u00e7\u0131kt\u0131s\u0131 i\u00e7erisinde yer almasa da, bu konuyu a\u00e7\u0131klamak ad\u0131na buraya eklenmi\u015ftir):<\/strong><\/p>\n<pre><code class=\"language-css\">\n\/* Genel stil tan\u0131mlamalar\u0131 *\/\nbody {\n    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n    margin: 0;\n    padding: 20px;\n    background-color: #f4f7f6;\n    color: #333;\n}\n\n.chat-container {\n    max-width: 800px;\n    margin: 20px auto;\n    background-color: #ffffff;\n    border-radius: 8px;\n    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\n    display: flex;\n    flex-direction: column;\n    min-height: 400px;\n}\n\n.chat-messages {\n    flex-grow: 1;\n    padding: 20px;\n    overflow-y: auto;\n    border-bottom: 1px solid #eee;\n}\n\n.message {\n    margin-bottom: 15px;\n    padding: 10px 15px;\n    border-radius: 20px;\n    max-width: 70%;\n    word-wrap: break-word;\n}\n\n.user-message {\n    background-color: #007bff;\n    color: white;\n    margin-left: auto;\n    border-bottom-right-radius: 0;\n}\n\n.bot-message {\n    background-color: #e2e6ea;\n    color: #333;\n    margin-right: auto;\n    border-bottom-left-radius: 0;\n}\n\n.chat-input {\n    display: flex;\n    padding: 15px;\n    border-top: 1px solid #eee;\n}\n\n.chat-input input[type=\"text\"] {\n    flex-grow: 1;\n    border: 1px solid #ccc;\n    border-radius: 20px;\n    padding: 10px 15px;\n    font-size: 1rem;\n    outline: none;\n}\n\n.chat-input button {\n    background-color: #28a745;\n    color: white;\n    border: none;\n    border-radius: 20px;\n    padding: 10px 20px;\n    margin-left: 10px;\n    cursor: pointer;\n    font-size: 1rem;\n    transition: background-color 0.3s ease;\n}\n\n.chat-input button:hover {\n    background-color: #218838;\n}\n\n\/* Mobil cihazlar i\u00e7in medya sorgular\u0131 *\/\n@media (max-width: 768px) {\n    body {\n        padding: 10px;\n    }\n\n    .chat-container {\n        margin: 0;\n        border-radius: 0;\n        box-shadow: none;\n        min-height: calc(100vh - 20px); \/* Ekran y\u00fcksekli\u011fine uyum sa\u011fla *\/\n    }\n\n    .message {\n        max-width: 85%; \/* Daha k\u00fc\u00e7\u00fck ekranlarda mesaj geni\u015fli\u011fini art\u0131r *\/\n    }\n\n    .chat-input {\n        flex-direction: column; \/* Giri\u015f alan\u0131n\u0131 ve d\u00fc\u011fmeyi dikeyde hizala *\/\n    }\n\n    .chat-input button {\n        margin-left: 0;\n        margin-top: 10px;\n        width: 100%; \/* D\u00fc\u011fmeyi tam geni\u015flik yap *\/\n        padding: 12px;\n    }\n}\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu CSS kodu, bir sohbet aray\u00fcz\u00fcn\u00fcn b\u00fcy\u00fck ekranlarda nas\u0131l g\u00f6r\u00fcnece\u011fini ve <code>@media (max-width: 768px)<\/code> medya sorgusu sayesinde daha k\u00fc\u00e7\u00fck ekranlarda (tabletler ve ak\u0131ll\u0131 telefonlar) nas\u0131l adapte olaca\u011f\u0131n\u0131 g\u00f6stermektedir. Mobil uyumlu bir kullan\u0131c\u0131 deneyimi, BHM uygulaman\u0131z\u0131n geni\u015f kitlelere ula\u015fmas\u0131 ve etkili olmas\u0131 i\u00e7in hayati \u00f6neme sahiptir. LangChain, backend mant\u0131\u011f\u0131n\u0131 sa\u011flamla\u015ft\u0131r\u0131rken, frontend geli\u015ftiricileri bu mant\u0131\u011f\u0131 mobil uyumlu aray\u00fczlere sorunsuz bir \u015fekilde entegre edebilirler.<\/p>\n<h2>Sonu\u00e7: LangChain ile Gelece\u011fe Y\u00f6nelik Uygulamalar Geli\u015ftirin<\/h2>\n<p>LangChain, B\u00fcy\u00fck Dil Modelleri'nin (BHM) g\u00fcc\u00fcn\u00fc kullanarak ak\u0131ll\u0131 ve etkile\u015fimli uygulamalar geli\u015ftirmek isteyen herkes i\u00e7in paha bi\u00e7ilmez bir ara\u00e7t\u0131r. Bu makalede, LangChain'in ne oldu\u011fundan, neden bu kadar \u00f6nemli oldu\u011funa, temel bile\u015fenlerinden ad\u0131m ad\u0131m ilk uygulaman\u0131z\u0131 nas\u0131l geli\u015ftirece\u011finize ve son olarak da performans ile \u00f6l\u00e7eklenebilirlik ipu\u00e7lar\u0131na kadar geni\u015f bir yelpazede bilgi edindiniz. LangChain, karma\u015f\u0131k BHM entegrasyonlar\u0131n\u0131 basitle\u015ftirerek, bellek y\u00f6netimi, ara\u00e7 kullan\u0131m\u0131 ve \u00e7ok ad\u0131ml\u0131 zincirleme gibi geli\u015fmi\u015f yetenekleri kolayca uygulaman\u0131za olanak tan\u0131r.<\/p>\n<p>LangChain sayesinde, sadece metin \u00fcreten botlardan \u00e7ok daha fazlas\u0131n\u0131 in\u015fa edebilirsiniz. D\u0131\u015f d\u00fcnyadan bilgi alabilen, ge\u00e7mi\u015f sohbetleri hat\u0131rlayan, karma\u015f\u0131k g\u00f6revleri planlay\u0131p y\u00fcr\u00fctebilen ve hatta kendi ba\u015f\u0131na karar verebilen \"ak\u0131ll\u0131 agent\"lar yaratabilirsiniz. Bu yetenekler, m\u00fc\u015fteri hizmetlerinden veri analizine, i\u00e7erik \u00fcretiminden ki\u015fiselle\u015ftirilmi\u015f \u00f6\u011frenme ortamlar\u0131na kadar say\u0131s\u0131z alanda devrim niteli\u011finde uygulamalar\u0131n kap\u0131lar\u0131n\u0131 aralamaktad\u0131r.<\/p>\n<p>Yapay zeka teknolojileri h\u0131zla geli\u015fmeye devam ederken, LangChain gibi framework'ler, bu geli\u015fmeleri pratik uygulamalara d\u00f6n\u00fc\u015ft\u00fcrme s\u00fcrecini demokratikle\u015ftirmektedir. Geli\u015ftiricilere karma\u015f\u0131k BHM d\u00fcnyas\u0131nda yol g\u00f6steren bir harita sunarak, yenilik\u00e7i fikirlerini ger\u00e7e\u011fe d\u00f6n\u00fc\u015ft\u00fcrmeleri i\u00e7in sa\u011flam bir temel olu\u015fturur. Unutmay\u0131n ki, BHM'ler sadece bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r; ger\u00e7ek de\u011fer, onlar\u0131 ak\u0131ll\u0131ca birle\u015ftirip ger\u00e7ek d\u00fcnya problemlerine uygulad\u0131\u011f\u0131n\u0131zda ortaya \u00e7\u0131kar. LangChain ile bu yolculu\u011fa g\u00fcvenle \u00e7\u0131kabilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p><strong>1. LangChain \u00f6\u011frenmek i\u00e7in hangi \u00f6n bilgilere ihtiyac\u0131m var?<\/strong><\/p>\n<p>Temel Python bilgisi ve B\u00fcy\u00fck Dil Modelleri'nin (BHM) nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131na dair genel bir anlay\u0131\u015f, LangChain'i \u00f6\u011frenmek i\u00e7in iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Detayl\u0131 BHM teorisi bilmenize gerek yoktur, ancak API'lerle \u00e7al\u0131\u015fmaya a\u015fina olmak s\u00fcreci kolayla\u015ft\u0131racakt\u0131r.<\/p>\n<p><strong>2. LangChain hangi BHM'leri destekliyor?<\/strong><\/p>\n<p>LangChain, OpenAI, Hugging Face, Google (PaLM), Cohere, Anthropic gibi bir\u00e7ok farkl\u0131 BHM sa\u011flay\u0131c\u0131s\u0131n\u0131 destekler. Ayr\u0131ca, yerel olarak \u00e7al\u0131\u015fan veya \u00f6zel olarak e\u011fitilmi\u015f BHM'lerle de entegrasyon imkan\u0131 sunar. Mod\u00fcler yap\u0131s\u0131 sayesinde yeni modelleri entegre etmek de olduk\u00e7a kolayd\u0131r.<\/p>\n<p><strong>3. LangChain tamamen \u00fccretsiz mi? Kulland\u0131\u011f\u0131mda bir maliyet olu\u015fur mu?<\/strong><\/p>\n<p>LangChain framework'\u00fcn\u00fcn kendisi a\u00e7\u0131k kaynakl\u0131 ve \u00fccretsizdir. Ancak, OpenAI gibi ticari BHM sa\u011flay\u0131c\u0131lar\u0131n\u0131n API'lerini kulland\u0131\u011f\u0131n\u0131zda, bu sa\u011flay\u0131c\u0131lar\u0131n belirledi\u011fi kullan\u0131m \u00fccretleri (token baz\u0131nda veya kullan\u0131m miktar\u0131na g\u00f6re) ortaya \u00e7\u0131kacakt\u0131r. A\u00e7\u0131k kaynakl\u0131 BHM'leri (\u00f6rne\u011fin Hugging Face Hub'dan) kullanarak veya kendi makinelerinizde bar\u0131nd\u0131rarak maliyeti d\u00fc\u015f\u00fcrebilirsiniz, ancak bu durumda kendi altyap\u0131 maliyetleriniz olacakt\u0131r.<\/p>\n<p><strong>4. LangChain'in ana rakipleri veya alternatifleri nelerdir?<\/strong><\/p>\n<p>LangChain'in do\u011frudan rakipleri olmamakla birlikte, benzer i\u015flevsellikler sunan farkl\u0131 framework'ler ve k\u00fct\u00fcphaneler mevcuttur. \u00d6rne\u011fin, LlamaIndex (veri indeksleme ve alma odakl\u0131), Haystack (bilgi geri getirme ve BHM boru hatlar\u0131), Semantic Kernel (Microsoft taraf\u0131ndan .NET ve Python i\u00e7in BHM orkestrasyonu) gibi k\u00fct\u00fcphaneler LangChain ile benzer alanlarda \u00e7\u00f6z\u00fcmler sunar. Ancak LangChain, genel ama\u00e7l\u0131 bir BHM uygulama geli\u015ftirme framework'\u00fc olarak olduk\u00e7a kapsaml\u0131d\u0131r.<\/p>\n<p><strong>5. LangChain ile ger\u00e7ek d\u00fcnya uygulamalar\u0131 geli\u015ftirilebilir mi?<\/strong><\/p>\n<p>Kesinlikle! LangChain, ger\u00e7ek d\u00fcnya senaryolar\u0131na y\u00f6nelik bir\u00e7ok geli\u015fmi\u015f \u00f6zellik sunar. Chatbotlar, soru-cevap sistemleri, belge \u00f6zetleyiciler, ak\u0131ll\u0131 arama motorlar\u0131, kod \u00fcrete\u00e7leri, sanal asistanlar ve \u00e7ok daha fazlas\u0131 LangChain ile geli\u015ftirilebilir. \u00d6zellikle harici veri kaynaklar\u0131yla entegrasyon ve dinamik karar verme yetenekleri sayesinde, LangChain ile in\u015fa edilen uygulamalar\u0131n potansiyeli olduk\u00e7a geni\u015ftir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"B\u00fcy\u00fck dil modellerinin (BHM) d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc g\u00fcc\u00fcn\u00fc ke\u015ffetmeye haz\u0131r m\u0131s\u0131n\u0131z? LangChain, bu devrim niteli\u011findeki modelleri kullanarak ak\u0131ll\u0131, ba\u011flamsal ve&hellip;","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":[1342],"tags":[],"class_list":{"0":"post-34332","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ai","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>LangChain&#039;e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi<\/title>\n<meta name=\"description\" content=\"B\u00fcy\u00fck dil modellerinin (BHM) d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc g\u00fcc\u00fcn\u00fc ke\u015ffetmeye haz\u0131r m\u0131s\u0131n\u0131z? LangChain, bu devrim niteli\u011findeki modelleri kullanarak ak\u0131ll\u0131, ba\u011flamsal ve etkile\u015fimli uygulamalar geli\u015ftirmenizi sa\u011flayan g\u00fc\u00e7l\u00fc bir framework&#039;t\u00fcr. Bu ad\u0131m ad\u0131m rehberimizle, LangChain d\u00fcnyas\u0131na dalacak, temel kavramlar\u0131 \u00f6\u011frenecek ve kendi BHM destekli uygulamalar\u0131n\u0131z\u0131 nas\u0131l in\u015fa edece\u011finizi ke\u015ffedeceksiniz.\" \/>\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\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"LangChain&#039;e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi\" \/>\n<meta property=\"og:description\" content=\"B\u00fcy\u00fck dil modellerinin (BHM) d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc g\u00fcc\u00fcn\u00fc ke\u015ffetmeye haz\u0131r m\u0131s\u0131n\u0131z? LangChain, bu devrim niteli\u011findeki modelleri kullanarak ak\u0131ll\u0131, ba\u011flamsal ve etkile\u015fimli uygulamalar geli\u015ftirmenizi sa\u011flayan g\u00fc\u00e7l\u00fc bir framework&#039;t\u00fcr. Bu ad\u0131m ad\u0131m rehberimizle, LangChain d\u00fcnyas\u0131na dalacak, temel kavramlar\u0131 \u00f6\u011frenecek ve kendi BHM destekli uygulamalar\u0131n\u0131z\u0131 nas\u0131l in\u015fa edece\u011finizi ke\u015ffedeceksiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-15T05:01:18+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=\"30 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"LangChain&#8217;e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi\",\"datePublished\":\"2025-11-15T05:01:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/\"},\"wordCount\":4837,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AI\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/\",\"name\":\"LangChain'e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-15T05:01:18+00:00\",\"description\":\"B\u00fcy\u00fck dil modellerinin (BHM) d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc g\u00fcc\u00fcn\u00fc ke\u015ffetmeye haz\u0131r m\u0131s\u0131n\u0131z? LangChain, bu devrim niteli\u011findeki modelleri kullanarak ak\u0131ll\u0131, ba\u011flamsal ve etkile\u015fimli uygulamalar geli\u015ftirmenizi sa\u011flayan g\u00fc\u00e7l\u00fc bir framework't\u00fcr. Bu ad\u0131m ad\u0131m rehberimizle, LangChain d\u00fcnyas\u0131na dalacak, temel kavramlar\u0131 \u00f6\u011frenecek ve kendi BHM destekli uygulamalar\u0131n\u0131z\u0131 nas\u0131l in\u015fa edece\u011finizi ke\u015ffedeceksiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"LangChain&#8217;e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi\"}]},{\"@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":"LangChain'e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi","description":"B\u00fcy\u00fck dil modellerinin (BHM) d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc g\u00fcc\u00fcn\u00fc ke\u015ffetmeye haz\u0131r m\u0131s\u0131n\u0131z? LangChain, bu devrim niteli\u011findeki modelleri kullanarak ak\u0131ll\u0131, ba\u011flamsal ve etkile\u015fimli uygulamalar geli\u015ftirmenizi sa\u011flayan g\u00fc\u00e7l\u00fc bir framework't\u00fcr. Bu ad\u0131m ad\u0131m rehberimizle, LangChain d\u00fcnyas\u0131na dalacak, temel kavramlar\u0131 \u00f6\u011frenecek ve kendi BHM destekli uygulamalar\u0131n\u0131z\u0131 nas\u0131l in\u015fa edece\u011finizi ke\u015ffedeceksiniz.","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\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"LangChain'e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi","og_description":"B\u00fcy\u00fck dil modellerinin (BHM) d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc g\u00fcc\u00fcn\u00fc ke\u015ffetmeye haz\u0131r m\u0131s\u0131n\u0131z? LangChain, bu devrim niteli\u011findeki modelleri kullanarak ak\u0131ll\u0131, ba\u011flamsal ve etkile\u015fimli uygulamalar geli\u015ftirmenizi sa\u011flayan g\u00fc\u00e7l\u00fc bir framework't\u00fcr. Bu ad\u0131m ad\u0131m rehberimizle, LangChain d\u00fcnyas\u0131na dalacak, temel kavramlar\u0131 \u00f6\u011frenecek ve kendi BHM destekli uygulamalar\u0131n\u0131z\u0131 nas\u0131l in\u015fa edece\u011finizi ke\u015ffedeceksiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-15T05:01:18+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"30 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"LangChain&#8217;e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi","datePublished":"2025-11-15T05:01:18+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/"},"wordCount":4837,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AI"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/","name":"LangChain'e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-15T05:01:18+00:00","description":"B\u00fcy\u00fck dil modellerinin (BHM) d\u00f6n\u00fc\u015ft\u00fcr\u00fcc\u00fc g\u00fcc\u00fcn\u00fc ke\u015ffetmeye haz\u0131r m\u0131s\u0131n\u0131z? LangChain, bu devrim niteli\u011findeki modelleri kullanarak ak\u0131ll\u0131, ba\u011flamsal ve etkile\u015fimli uygulamalar geli\u015ftirmenizi sa\u011flayan g\u00fc\u00e7l\u00fc bir framework't\u00fcr. Bu ad\u0131m ad\u0131m rehberimizle, LangChain d\u00fcnyas\u0131na dalacak, temel kavramlar\u0131 \u00f6\u011frenecek ve kendi BHM destekli uygulamalar\u0131n\u0131z\u0131 nas\u0131l in\u015fa edece\u011finizi ke\u015ffedeceksiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/langchaine-giris-buyuk-dil-modelleriyle-uygulama-gelistirme-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"LangChain&#8217;e Giri\u015f: B\u00fcy\u00fck Dil Modelleriyle Uygulama Geli\u015ftirme Rehberi"}]},{"@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\/34332","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=34332"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34332\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}