{"id":38221,"date":"2026-01-26T04:30:42","date_gmt":"2026-01-26T01:30:42","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/"},"modified":"2026-01-26T04:30:42","modified_gmt":"2026-01-26T01:30:42","slug":"kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/","title":{"rendered":"Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin &#8211; B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak"},"content":{"rendered":"<h2>Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin &#8211; B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak<\/h2>\n<p>Yapay zeka ile hikaye olu\u015fturma d\u00fcnyas\u0131na ho\u015f geldiniz! Bu serinin ilk b\u00f6l\u00fcm\u00fcnde, bir yapay zeka hikaye olu\u015fturucunun temel konseptlerini ve Retrieval-Augmented Generation (RAG) mimarisinin neden bu kadar g\u00fc\u00e7l\u00fc bir yakla\u015f\u0131m oldu\u011funu incelemi\u015ftik. \u015eimdi ise teoriden prati\u011fe ge\u00e7me zaman\u0131. Bu ikinci b\u00f6l\u00fcmde, kendi RAG tabanl\u0131 hikaye olu\u015fturucunuz i\u00e7in gerekli olan temel RAG hatt\u0131n\u0131 ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Veri haz\u0131rl\u0131\u011f\u0131ndan vekt\u00f6r veritaban\u0131 entegrasyonuna, bilgi eri\u015fiminden \u00fcretim a\u015famas\u0131na kadar her detay\u0131 ke\u015ffedin.<\/p>\n<h3>1. RAG Mimarisine Derinlemesine Bak\u0131\u015f<\/h3>\n<p>Retrieval-Augmented Generation (RAG), b\u00fcy\u00fck dil modellerinin (LLM&#8217;ler) bilgi yeteneklerini art\u0131rmak i\u00e7in tasarlanm\u0131\u015f yenilik\u00e7i bir yap\u0131d\u0131r. Geleneksel LLM&#8217;lerin s\u0131n\u0131rl\u0131l\u0131klar\u0131n\u0131 a\u015farak, daha g\u00fcncel, do\u011fru ve ba\u011flama \u00f6zel yan\u0131tlar \u00fcretmelerini sa\u011flar. Bu b\u00f6l\u00fcmde RAG&#8217;\u0131n temel bile\u015fenlerini ve hikaye olu\u015fturmadaki \u00f6nemini inceleyece\u011fiz.<\/p>\n<h4>1.1. RAG Nedir ve Neden \u00d6nemlidir?<\/h4>\n<p>RAG, bir sorguya yan\u0131t \u00fcretmeden \u00f6nce harici bir bilgi taban\u0131ndan ilgili bilgileri &#8220;geri \u00e7a\u011f\u0131ran&#8221; (retrieve) ve ard\u0131ndan bu bilgileri LLM&#8217;ye &#8220;geli\u015ftirilmi\u015f&#8221; (augmented) bir ba\u011flam olarak sunarak yan\u0131t\u0131 &#8220;olu\u015fturan&#8221; (generate) bir \u00e7er\u00e7evedir. Hikaye olu\u015fturma ba\u011flam\u0131nda, RAG modelin belirli bir karakter, olay \u00f6rg\u00fcs\u00fc veya d\u00fcnya hakk\u0131nda daha \u00f6nce hi\u00e7 g\u00f6rmedi\u011fi detaylar\u0131 \u00f6\u011frenmesini ve bunlar\u0131 hikayeye entegre etmesini sa\u011flar. Bu, hikayelerin daha zengin, tutarl\u0131 ve \u00f6zg\u00fcn olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h4>1.2. Geleneksel LLM&#8217;lerin S\u0131n\u0131rl\u0131l\u0131klar\u0131<\/h4>\n<p>Geleneksel LLM&#8217;ler, e\u011fitim verilerinde g\u00f6rd\u00fckleri bilgilere s\u0131k\u0131 s\u0131k\u0131ya ba\u011fl\u0131d\u0131r. Bu durum, &#8220;hal\u00fcsinasyon&#8221; olarak bilinen yanl\u0131\u015f veya uydurma bilgiler \u00fcretmelerine, g\u00fcncel olmayan verilere sahip olmalar\u0131na ve belirli bir alandaki derinlemesine uzmanl\u0131ktan yoksun olmalar\u0131na neden olabilir. Ayr\u0131ca, modelin e\u011fitim verilerinde bulunmayan yeni bir konsept hakk\u0131nda tutarl\u0131 bir hikaye yazmas\u0131 zordur. RAG, bu s\u0131n\u0131rl\u0131l\u0131klar\u0131 harici, g\u00fcncellenebilir bir bilgi kayna\u011f\u0131 ekleyerek giderir.<\/p>\n<h4>1.3. RAG&#8217;\u0131n Temel Bile\u015fenleri<\/h4>\n<p>RAG hatt\u0131 genellikle \u00fc\u00e7 ana bile\u015fenden olu\u015fur:<\/p>\n<ol>\n<li><b>Bilgi Kayna\u011f\u0131 (Knowledge Base):<\/b> Hikayeler, kitaplar, karakter biyografileri veya d\u00fcnya bilgileri gibi metinlerin depoland\u0131\u011f\u0131 yer. Genellikle bir vekt\u00f6r veritaban\u0131 olarak d\u00fczenlenir.<\/li>\n<li><b>Eri\u015fim Mod\u00fcl\u00fc (Retriever):<\/b> Kullan\u0131c\u0131n\u0131n sorgusuna veya hikaye istemine en uygun bilgileri bilgi kayna\u011f\u0131ndan bulan ve geri \u00e7a\u011f\u0131ran k\u0131s\u0131md\u0131r.<\/li>\n<li><b>\u00dcretim Mod\u00fcl\u00fc (Generator):<\/b> Geri \u00e7a\u011fr\u0131lan bilgilerle birlikte kullan\u0131c\u0131n\u0131n istemini alarak nihai hikaye par\u00e7as\u0131n\u0131 veya yan\u0131t\u0131 \u00fcreten b\u00fcy\u00fck dil modelidir.<\/li>\n<\/ol>\n<p>Bu bile\u015fenler, LLM&#8217;nin sadece kendi dahili bilgilerine de\u011fil, ayn\u0131 zamanda d\u0131\u015f d\u00fcnyadan gelen g\u00fcncel ve spesifik bilgilere de eri\u015fmesini sa\u011flayarak hikaye anlat\u0131m\u0131nda devrim yarat\u0131r.<\/p>\n<h3>2. Veri Haz\u0131rl\u0131\u011f\u0131 ve Kaynak Se\u00e7imi<\/h3>\n<p>RAG hatt\u0131n\u0131n ba\u015far\u0131s\u0131, kullan\u0131lan verinin kalitesine ve uygunlu\u011funa do\u011frudan ba\u011fl\u0131d\u0131r. Hikaye olu\u015fturucu i\u00e7in do\u011fru ve zengin veri kaynaklar\u0131n\u0131 se\u00e7mek, bu verileri etkili bir \u015fekilde i\u015flemek, modelin \u00fcretece\u011fi hikayelerin derinli\u011fini ve tutarl\u0131l\u0131\u011f\u0131n\u0131 belirleyecektir.<\/p>\n<h4>2.1. Hikaye Veri K\u00fcmelerinin Toplanmas\u0131<\/h4>\n<p>Hikaye olu\u015fturucunuz i\u00e7in veri toplarken, \u00e7e\u015fitlili\u011fe ve ilgili alanlara odaklanmak \u00f6nemlidir. Potansiyel veri kaynaklar\u0131 \u015funlar\u0131 i\u00e7erebilir:<\/p>\n<ul>\n<li><b>Edebiyat Eserleri:<\/b> Klasik romanlar, k\u0131sa hikayeler, \u015fiirler.<\/li>\n<li><b>Senaryolar ve Oyun Metinleri:<\/b> Karakter diyaloglar\u0131 ve olay \u00f6rg\u00fcs\u00fc yap\u0131lar\u0131 hakk\u0131nda zengin bilgi sunar.<\/li>\n<li><b>Kurgusal Ansiklopediler\/Wikiler:<\/b> Belirli evrenler, karakterler, mitolojiler hakk\u0131nda detayl\u0131 bilgiler.<\/li>\n<li><b>Blog Yaz\u0131lar\u0131 ve Makaleler:<\/b> Belirli temalar veya d\u00fcnya in\u015fas\u0131 hakk\u0131nda ilham verebilir.<\/li>\n<\/ul>\n<p>Verileri toplarken telif haklar\u0131na dikkat etmek ve yasal kaynaklar\u0131 tercih etmek kritik \u00f6neme sahiptir. \u00d6rne\u011fin, Project Gutenberg gibi platformlar telif hakk\u0131 olmayan binlerce esere eri\u015fim sa\u011flar.<\/p>\n<h4>2.2. Veri Temizleme ve \u00d6n \u0130\u015fleme Teknikleri<\/h4>\n<p>Toplanan ham veriler genellikle g\u00fcr\u00fclt\u00fcl\u00fc ve d\u00fczensizdir. Bu verilerin RAG hatt\u0131na beslenmeden \u00f6nce temizlenmesi ve \u00f6n i\u015flenmesi gerekir:<\/p>\n<ul>\n<li><b>Metin Normalizasyonu:<\/b> T\u00fcm metni k\u00fc\u00e7\u00fck harfe d\u00f6n\u00fc\u015ft\u00fcrme, noktalama i\u015faretlerini kald\u0131rma veya standartla\u015ft\u0131rma.<\/li>\n<li><b>Durak Kelimeleri Kald\u0131rma (Stop Word Removal):<\/b> &#8220;ve&#8221;, &#8220;bir&#8221;, &#8220;ile&#8221; gibi s\u0131k kullan\u0131lan ancak anlamsal de\u011feri d\u00fc\u015f\u00fck kelimeleri \u00e7\u0131karma (iste\u011fe ba\u011fl\u0131, ba\u011flama g\u00f6re de\u011fi\u015fir).<\/li>\n<li><b>K\u00f6k Bulma (Stemming\/Lemmatization):<\/b> Kelimeleri k\u00f6k formlar\u0131na indirgeme (&#8220;ko\u015fuyor&#8221; -> &#8220;ko\u015f&#8221;).<\/li>\n<li><b>HTML Etiketlerini Kald\u0131rma:<\/b> Web&#8217;den al\u0131nan verilerdeki HTML etiketlerini temizleme.<\/li>\n<\/ul>\n<h4>2.3. Chunking Stratejileri<\/h4>\n<p>LLM&#8217;lerin s\u0131n\u0131rl\u0131 bir ba\u011flam penceresi vard\u0131r. Bu nedenle, t\u00fcm bir kitab\u0131 tek seferde i\u015flemek yerine, metinleri daha k\u00fc\u00e7\u00fck, y\u00f6netilebilir &#8220;par\u00e7alara&#8221; (chunks) ay\u0131rmak gerekir. Bu par\u00e7alar, vekt\u00f6r veritaban\u0131nda saklanacak ve sorgulara yan\u0131t olarak geri \u00e7a\u011fr\u0131lacakt\u0131r.<\/p>\n<p>Etkili chunking stratejileri:<\/p>\n<ul>\n<li><b>Sabit Boyutlu Chunking:<\/b> Belirli bir kelime veya karakter say\u0131s\u0131na g\u00f6re metni par\u00e7alara ay\u0131rma. \u00d6rn: Her 500 karakterde bir yeni par\u00e7a.<\/li>\n<li><b>\u00d6rt\u00fc\u015fmeli Chunking (Overlap):<\/b> Par\u00e7alar aras\u0131nda belirli bir miktarda \u00f6rt\u00fc\u015fme b\u0131rakarak ba\u011flam kayb\u0131n\u0131 azaltma. \u00d6rn: 500 karakterlik par\u00e7alar, 50 karakterlik \u00f6rt\u00fc\u015fme ile.<\/li>\n<li><b>Anlamsal Chunking:<\/b> C\u00fcmleler, paragraflar veya b\u00f6l\u00fcm ba\u015fl\u0131klar\u0131 gibi anlamsal birimlere g\u00f6re par\u00e7alama. Bu, daha tutarl\u0131 ba\u011flamlar sa\u011flar.<\/li>\n<\/ul>\n<pre><code class=\"language-python\">\nfrom langchain.text_splitter import RecursiveCharacterTextSplitter\n\n# \u00d6rnek metin\ntext = \"Uzun zaman \u00f6nce, \u00e7ok uzak bir galakside... Jedi \u015e\u00f6valyeleri bar\u0131\u015f\u0131 koruyordu. Ancak karanl\u0131k bir g\u00fc\u00e7 y\u00fckseliyordu. \u0130mparatorluk, galaksiyi demir yumrukla y\u00f6netmeye ba\u015flad\u0131.\"\n\n# RecursiveCharacterTextSplitter kullanarak chunking\ntext_splitter = RecursiveCharacterTextSplitter(\n    chunk_size=100,\n    chunk_overlap=20,\n    length_function=len,\n    separators=[\"\\n\\n\", \"\\n\", \" \", \"\"]\n)\nchunks = text_splitter.split_text(text)\n\nfor i, chunk in enumerate(chunks):\n    print(f\"Chunk {i+1}: {chunk}\\n---\")\n<\/pre>\n<p><\/code><br \/>\nBu ad\u0131m, RAG hatt\u0131n\u0131n verimli \u00e7al\u0131\u015fmas\u0131 i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<h3>3. Vekt\u00f6r Veritaban\u0131 ve G\u00f6mme Modelleri<\/h3>\n<p>Verilerimizi par\u00e7alara ay\u0131rd\u0131ktan sonra, bunlar\u0131 RAG hatt\u0131n\u0131n eri\u015fim a\u015famas\u0131nda kullan\u0131labilir hale getirmemiz gerekir. Bu, metin par\u00e7alar\u0131n\u0131 say\u0131sal vekt\u00f6rlere d\u00f6n\u00fc\u015ft\u00fcrmek ve bu vekt\u00f6rleri bir vekt\u00f6r veritaban\u0131nda depolamak anlam\u0131na gelir.<\/p>\n<h4>3.1. G\u00f6mme Modellerinin (Embedding Models) Rol\u00fc<\/h4>\n<p>G\u00f6mme modelleri, metinleri y\u00fcksek boyutlu vekt\u00f6r uzay\u0131nda say\u0131sal temsillerine (embedding) d\u00f6n\u00fc\u015ft\u00fcren derin \u00f6\u011frenme modelleridir. Bu vekt\u00f6rler, metinlerin anlamsal anlam\u0131n\u0131 yakalar; yani anlamsal olarak benzer metinler, vekt\u00f6r uzay\u0131nda birbirine daha yak\u0131n konumlan\u0131r. Hikaye olu\u015fturucumuz i\u00e7in, bir sorgu ile ilgili hikaye par\u00e7alar\u0131n\u0131 bulmak amac\u0131yla bu benzerlikten faydalanaca\u011f\u0131z.<\/p>\n<p>Pop\u00fcler g\u00f6mme modelleri:<\/p>\n<ul>\n<li><b>OpenAI Embeddings (text-embedding-ada-002):<\/b> Y\u00fcksek performansl\u0131 ve kullan\u0131m\u0131 kolay.<\/li>\n<li><b>Hugging Face Modelleri (Sentence Transformers):<\/b> A\u00e7\u0131k kaynakl\u0131 ve yerel olarak \u00e7al\u0131\u015ft\u0131r\u0131labilir, maliyet etkin \u00e7\u00f6z\u00fcmler sunar (\u00f6rn. <code>all-MiniLM-L6-v2<\/code>).<\/li>\n<li><b>Cohere Embeddings:<\/b> Farkl\u0131 dillerde ve g\u00f6revlerde iyi performans g\u00f6sterir.<\/li>\n<\/ul>\n<p>Model se\u00e7imi, projenizin b\u00fct\u00e7esine, performans gereksinimlerine ve dil deste\u011fine ba\u011fl\u0131d\u0131r.<\/p>\n<h4>3.2. Uygun Vekt\u00f6r Veritaban\u0131 Se\u00e7imi<\/h4>\n<p>Vekt\u00f6r veritabanlar\u0131, g\u00f6mme vekt\u00f6rlerini depolamak ve h\u0131zl\u0131 benzerlik aramalar\u0131 yapmak i\u00e7in optimize edilmi\u015f \u00f6zel veritabanlar\u0131d\u0131r.<\/p>\n<p>Pop\u00fcler vekt\u00f6r veritabanlar\u0131:<\/p>\n<ul>\n<li><b>Pinecone:<\/b> Bulut tabanl\u0131, \u00f6l\u00e7eklenebilir ve y\u00f6netilen bir hizmet. B\u00fcy\u00fck \u00f6l\u00e7ekli uygulamalar i\u00e7in idealdir.<\/li>\n<li><b>Weaviate:<\/b> A\u00e7\u0131k kaynakl\u0131, kendi kendine bar\u0131nd\u0131r\u0131labilir veya bulut hizmeti olarak kullan\u0131labilir. Zengin filtreleme ve semantik arama yetenekleri sunar.<\/li>\n<li><b>ChromaDB:<\/b> Hafif, a\u00e7\u0131k kaynakl\u0131 ve yerel geli\u015ftirme i\u00e7in m\u00fckemmel. Ba\u015flang\u0131\u00e7 projeleri i\u00e7in iyi bir se\u00e7imdir.<\/li>\n<li><b>FAISS (Facebook AI Similarity Search):<\/b> Sadece benzerlik arama k\u00fct\u00fcphanesi, depolama i\u00e7in ba\u015fka bir \u00e7\u00f6z\u00fcmle entegre edilmesi gerekir. B\u00fcy\u00fck \u00f6l\u00e7ekli, yerel \u00e7\u00f6z\u00fcmler i\u00e7in g\u00fc\u00e7l\u00fcd\u00fcr.<\/li>\n<\/ul>\n<p>Se\u00e7iminiz, projenizin \u00f6l\u00e7e\u011fine, altyap\u0131 tercihlerine ve maliyet k\u0131s\u0131tlamalar\u0131na g\u00f6re de\u011fi\u015fecektir.<\/p>\n<h4>3.3. Verilerin Vekt\u00f6rle\u015ftirilmesi ve Dizinleme<\/h4>\n<p>Se\u00e7ti\u011finiz g\u00f6mme modeli ve vekt\u00f6r veritaban\u0131 ile metin par\u00e7alar\u0131n\u0131z\u0131 vekt\u00f6rle\u015ftirebilir ve veritaban\u0131na dizinleyebilirsiniz.<\/p>\n<pre><code class=\"language-python\">\nfrom langchain_community.embeddings import OpenAIEmbeddings\nfrom langchain_community.vectorstores import Chroma\n\n# OpenAI API anahtar\u0131n\u0131z\u0131 ayarlay\u0131n\nimport os\nos.environ[\"OPENAI_API_KEY\"] = \"YOUR_OPENAI_API_KEY\"\n\n# G\u00f6mme modelini ba\u015flat\u0131n\nembeddings_model = OpenAIEmbeddings()\n\n# \u00d6rnek metin par\u00e7alar\u0131 (\u00f6nceki ad\u0131mdan)\nchunks = [\n    \"Uzun zaman \u00f6nce, \u00e7ok uzak bir galakside...\",\n    \"Jedi \u015e\u00f6valyeleri bar\u0131\u015f\u0131 koruyordu.\",\n    \"Ancak karanl\u0131k bir g\u00fc\u00e7 y\u00fckseliyordu.\",\n    \"\u0130mparatorluk, galaksiyi demir yumrukla y\u00f6netmeye ba\u015flad\u0131.\"\n]\n\n# ChromaDB kullanarak vekt\u00f6r veritaban\u0131 olu\u015fturma ve dizinleme\n# persist_directory ile veritaban\u0131n\u0131 diske kaydedebilirsiniz\nvectorstore = Chroma.from_documents(\n    documents=[{\"page_content\": chunk} for chunk in chunks], # Langchain'in Document format\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcyoruz\n    embedding=embeddings_model,\n    persist_directory=\".\/chroma_db\"\n)\n\nprint(\"Veriler vekt\u00f6rle\u015ftirildi ve vekt\u00f6r veritaban\u0131na dizinlendi.\")\n<\/pre>\n<p><\/code><br \/>\nBu ad\u0131m, RAG hatt\u0131n\u0131n \"Retrieval\" (Eri\u015fim) a\u015famas\u0131n\u0131n temelini olu\u015fturur.<\/p>\n<h3>4. Bilgi Eri\u015fim (Retrieval) Mekanizmas\u0131<\/h3>\n<p>Vekt\u00f6r veritaban\u0131m\u0131z haz\u0131r oldu\u011funa g\u00f6re, art\u0131k kullan\u0131c\u0131dan gelen bir sorguya veya hikaye istemine en uygun bilgileri nas\u0131l geri \u00e7a\u011f\u0131raca\u011f\u0131m\u0131z\u0131 tan\u0131mlayabiliriz. Bu a\u015fama, RAG'\u0131n kalbidir ve \u00fcretilecek hikayenin kalitesini do\u011frudan etkiler.<\/p>\n<h4>4.1. Sorgu G\u00f6mme ve Benzerlik Aramas\u0131<\/h4>\n<p>Kullan\u0131c\u0131 bir hikaye istemi (\u00f6rn: \"Bir ormanda ya\u015fayan cesur bir prensesin maceralar\u0131n\u0131 anlat.\") g\u00f6nderdi\u011finde, bu sorgu da ayn\u0131 g\u00f6mme modeli kullan\u0131larak bir vekt\u00f6re d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr. Ard\u0131ndan, bu sorgu vekt\u00f6r\u00fc ile vekt\u00f6r veritaban\u0131ndaki t\u00fcm metin par\u00e7as\u0131 vekt\u00f6rleri aras\u0131ndaki benzerlik hesaplan\u0131r. En yayg\u0131n benzerlik \u00f6l\u00e7\u00fct\u00fc kosin\u00fcs benzerli\u011fidir.<\/p>\n<pre><code class=\"language-python\">\n# \u00d6nceki ad\u0131mdan devam ediyoruz\n# Vekt\u00f6r veritaban\u0131n\u0131 y\u00fckl\u00fcyoruz (e\u011fer persist_directory kullan\u0131ld\u0131ysa)\n# vectorstore = Chroma(persist_directory=\".\/chroma_db\", embedding_function=embeddings_model)\n\nquery = \"Galaksideki Jedi'lar ve imparatorluk aras\u0131ndaki \u00e7at\u0131\u015fma hakk\u0131nda bir hikaye.\"\n\n# Benzerlik aramas\u0131 yapma\n# k parametresi, ka\u00e7 tane en benzer par\u00e7an\u0131n geri \u00e7a\u011fr\u0131laca\u011f\u0131n\u0131 belirtir\nretrieved_docs = vectorstore.similarity_search(query, k=2)\n\nprint(f\"Sorgu: '{query}' i\u00e7in geri \u00e7a\u011fr\u0131lan belgeler:\")\nfor doc in retrieved_docs:\n    print(f\"- {doc.page_content}\")\n<\/pre>\n<p><\/code><br \/>\nBu kod par\u00e7as\u0131, sorguya en benzer metin par\u00e7alar\u0131n\u0131 vekt\u00f6r veritaban\u0131ndan nas\u0131l alaca\u011f\u0131m\u0131z\u0131 g\u00f6sterir.<\/p>\n<h4>4.2. Eri\u015fim Stratejileri<\/h4>\n<p>Basit benzerlik aramas\u0131n\u0131n \u00f6tesinde, eri\u015fim s\u00fcrecini optimize etmek i\u00e7in \u00e7e\u015fitli stratejiler mevcuttur:<\/p>\n<ul>\n<li><b>Top-k Eri\u015fim:<\/b> En y\u00fcksek benzerlik skoruna sahip <code>k<\/code> adet belgeyi do\u011frudan geri \u00e7a\u011f\u0131rma. En basit ve yayg\u0131n y\u00f6ntemdir.<\/li>\n<li><b>Max Marginal Relevance (MMR):<\/b> Hem sorguya olan benzerli\u011fi hem de geri \u00e7a\u011fr\u0131lan belgeler aras\u0131ndaki \u00e7e\u015fitlili\u011fi dikkate al\u0131r. Bu, birbirine \u00e7ok benzer belgelerin geri \u00e7a\u011fr\u0131lmas\u0131n\u0131 engelleyerek daha \u00e7e\u015fitli bir ba\u011flam sa\u011flar.<\/li>\n<li><b>Yeniden S\u0131ralama (Re-ranking):<\/b> \u0130lk <code>k<\/code> adet belgeyi geri \u00e7a\u011f\u0131rd\u0131ktan sonra, daha sofistike bir model (\u00f6rn. \u00e7apraz kodlay\u0131c\u0131) kullanarak bu belgeleri yeniden s\u0131ralama. Bu, en alakal\u0131 belgelerin \u00f6ne \u00e7\u0131kmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><b>\u00c7oklu Sorgu Olu\u015fturma:<\/b> Orijinal sorgudan birden fazla, hafif\u00e7e farkl\u0131 sorgu t\u00fcretme ve her biri i\u00e7in arama yapma. Bu, daha kapsaml\u0131 bir bilgi k\u00fcmesi elde etmeye yard\u0131mc\u0131 olabilir.<\/li>\n<\/ul>\n<h4>4.3. Geri \u00c7a\u011f\u0131rma Metrikleri ve Optimizasyon<\/h4>\n<p>Eri\u015fim a\u015famas\u0131n\u0131n etkinli\u011fini \u00f6l\u00e7mek i\u00e7in metrikler kullanabiliriz:<\/p>\n<ul>\n<li><b>Recall (Geri \u00c7a\u011f\u0131rma):<\/b> \u0130lgili t\u00fcm belgelerin ne kadar\u0131n\u0131n geri \u00e7a\u011fr\u0131ld\u0131\u011f\u0131n\u0131 \u00f6l\u00e7er.<\/li>\n<li><b>Precision (Kesinlik):<\/b> Geri \u00e7a\u011fr\u0131lan belgelerin ne kadar\u0131n\u0131n ger\u00e7ekten ilgili oldu\u011funu \u00f6l\u00e7er.<\/li>\n<li><b>MAP (Mean Average Precision) \/ MRR (Mean Reciprocal Rank):<\/b> S\u0131ralama kalitesini de\u011ferlendiren daha geli\u015fmi\u015f metriklerdir.<\/li>\n<\/ul>\n<p>Eri\u015fim performans\u0131n\u0131 art\u0131rmak i\u00e7in chunking stratejilerini ayarlayabilir, farkl\u0131 g\u00f6mme modelleri deneyebilir veya daha geli\u015fmi\u015f eri\u015fim algoritmalar\u0131 kullanabiliriz.<\/p>\n<h3>5. \u00dcretim (Generation) A\u015famas\u0131 ve LLM Entegrasyonu<\/h3>\n<p>RAG hatt\u0131n\u0131n son a\u015famas\u0131, geri \u00e7a\u011fr\u0131lan bilgileri kullanarak nihai hikaye par\u00e7as\u0131n\u0131 veya yan\u0131t\u0131 \u00fcretmektir. Bu a\u015fama, b\u00fcy\u00fck dil modelinin (LLM) yeteneklerini ve dikkatli prompt m\u00fchendisli\u011fini gerektirir.<\/p>\n<h4>5.1. Ba\u011flam Olu\u015fturma (Context Augmentation)<\/h4>\n<p>Eri\u015fim a\u015famas\u0131nda elde etti\u011fimiz metin par\u00e7alar\u0131, LLM'ye sunulacak \"ba\u011flam\u0131\" olu\u015fturur. Bu par\u00e7alar, kullan\u0131c\u0131n\u0131n orijinal sorgusuyla birle\u015ftirilerek LLM'ye g\u00f6nderilecek nihai prompt'u olu\u015fturur. Ba\u011flam\u0131n a\u00e7\u0131k, \u00f6zl\u00fc ve ilgili olmas\u0131, LLM'nin daha do\u011fru ve tutarl\u0131 hikayeler \u00fcretmesini sa\u011flar.<\/p>\n<pre><code class=\"language-python\">\n# Geri \u00e7a\u011fr\u0131lan belgeler (retrieved_docs) ve sorgu (query)\n# retrieved_docs = [doc1, doc2] gibi Document nesneleri\n\ncontext_text = \"\\n\\n\".join([doc.page_content for doc in retrieved_docs])\n\n# LLM'ye g\u00f6nderilecek prompt'u olu\u015fturma\nprompt_template = f\"\"\"\nA\u015fa\u011f\u0131daki ba\u011flam\u0131 kullanarak, kullan\u0131c\u0131 iste\u011fine uygun yarat\u0131c\u0131 ve tutarl\u0131 bir hikaye par\u00e7as\u0131 olu\u015ftur.\nBa\u011flam:\n---\n{context_text}\n---\nKullan\u0131c\u0131 \u0130ste\u011fi: {query}\n\nHikaye:\n\"\"\"\nprint(prompt_template)\n<\/pre>\n<p><\/code><\/p>\n<h4>5.2. LLM Se\u00e7imi ve Entegrasyonu<\/h4>\n<p>Hikaye olu\u015fturma i\u00e7in g\u00fc\u00e7l\u00fc ve yarat\u0131c\u0131 bir LLM se\u00e7mek \u00f6nemlidir.<\/p>\n<ul>\n<li><b>OpenAI API (GPT-3.5, GPT-4):<\/b> Y\u00fcksek kaliteli metin \u00fcretimi ve geni\u015f dil anlama yetenekleri sunar.<\/li>\n<li><b>Google Gemini:<\/b> Google'\u0131n yeni nesil \u00e7ok modlu LLM'si, zengin hikayeler i\u00e7in potansiyel sunar.<\/li>\n<li><b>Hugging Face Hub Modelleri (Llama 2, Mistral):<\/b> A\u00e7\u0131k kaynakl\u0131 se\u00e7enekler, yerel olarak \u00e7al\u0131\u015ft\u0131r\u0131labilir ve maliyet etkin olabilir.<\/li>\n<\/ul>\n<p>Se\u00e7ti\u011finiz LLM'yi Python k\u00fct\u00fcphaneleri (\u00f6rn. <code>langchain<\/code>, <code>transformers<\/code>) arac\u0131l\u0131\u011f\u0131yla entegre edebilirsiniz.<\/p>\n<pre><code class=\"language-python\">\nfrom langchain_openai import ChatOpenAI\nfrom langchain.chains import create_retrieval_chain\nfrom langchain.chains.combine_documents import create_stuff_documents_chain\nfrom langchain_core.prompts import ChatPromptTemplate\n\n# LLM'yi ba\u015flatma\nllm = ChatOpenAI(model=\"gpt-3.5-turbo\", temperature=0.7) # Yarat\u0131c\u0131l\u0131k i\u00e7in temperature ayar\u0131\n\n# Prompt template'i tan\u0131mlama\nprompt = ChatPromptTemplate.from_template(\"\"\"\nA\u015fa\u011f\u0131daki ba\u011flam\u0131 kullanarak, kullan\u0131c\u0131 iste\u011fine uygun yarat\u0131c\u0131 ve tutarl\u0131 bir hikaye par\u00e7as\u0131 olu\u015ftur.\nE\u011fer ba\u011flamda ilgili bilgi yoksa, kendi yarat\u0131c\u0131l\u0131\u011f\u0131n\u0131 kullanarak mant\u0131kl\u0131 bir hikaye yaz.\nBa\u011flam: {context}\nKullan\u0131c\u0131 \u0130ste\u011fi: {input}\n\nHikaye:\n\"\"\")\n\n# Belgeleri birle\u015ftirme zinciri\ndocument_chain = create_stuff_documents_chain(llm, prompt)\n\n# Retrieval zinciri olu\u015fturma\n# vectorstore.as_retriever() ile retriever nesnesi al\u0131yoruz\nretrieval_chain = create_retrieval_chain(vectorstore.as_retriever(), document_chain)\n\n# Zinciri \u00e7al\u0131\u015ft\u0131rma\nresponse = retrieval_chain.invoke({\"input\": query})\n\nprint(\"\\n\u00dcretilen Hikaye:\")\nprint(response[\"answer\"])\n<\/pre>\n<p><\/code><\/p>\n<h4>5.3. Prompt M\u00fchendisli\u011fi<\/h4>\n<p>LLM'ye verilen prompt'un kalitesi, \u00fcretilen hikayenin kalitesini do\u011frudan etkiler.<\/p>\n<ul>\n<li><b>A\u00e7\u0131k Talimatlar:<\/b> LLM'den ne bekledi\u011finizi net bir \u015fekilde belirtin (\u00f6rn. \"Yarat\u0131c\u0131 ve tutarl\u0131 bir hikaye par\u00e7as\u0131 olu\u015ftur.\").<\/li>\n<li><b>Rol Tan\u0131mlama:<\/b> LLM'ye bir rol atayabilirsiniz (\u00f6rn. \"Sen bir fantastik hikaye yazar\u0131 olarak...\").<\/li>\n<li><b>K\u0131s\u0131tlamalar:<\/b> Hikayenin uzunlu\u011fu, tonu, i\u00e7ermesi gereken anahtar kelimeler gibi k\u0131s\u0131tlamalar ekleyebilirsiniz.<\/li>\n<li><b>\u00d6rnekler (Few-shot learning):<\/b> Baz\u0131 durumlarda, LLM'ye birka\u00e7 \u00f6rnek hikaye sunmak, istenen tarz\u0131 anlamas\u0131na yard\u0131mc\u0131 olabilir.<\/li>\n<\/ul>\n<p>Prompt m\u00fchendisli\u011fi, iteratif bir s\u00fcre\u00e7tir ve en iyi sonu\u00e7lar\u0131 elde etmek i\u00e7in deneme yan\u0131lma gerektirebilir.<\/p>\n<h3>6. RAG Hatt\u0131n\u0131n Test Edilmesi ve \u0130yile\u015ftirilmesi<\/h3>\n<p>Bir RAG hatt\u0131 kurmak sadece ba\u015flang\u0131\u00e7t\u0131r. En iyi performans\u0131 elde etmek i\u00e7in s\u00fcrekli test ve iyile\u015ftirme gereklidir. Bu b\u00f6l\u00fcm, hatt\u0131n\u0131z\u0131n etkinli\u011fini nas\u0131l de\u011ferlendirece\u011finizi ve zamanla nas\u0131l geli\u015ftirece\u011finizi anlatmaktad\u0131r.<\/p>\n<h4>6.1. Performans Metrikleri<\/h4>\n<p>RAG hatt\u0131n\u0131z\u0131n hikaye olu\u015fturma yeteneklerini de\u011ferlendirmek i\u00e7in \u00e7e\u015fitli metrikler kullanabilirsiniz:<\/p>\n<ul>\n<li><b>\u0130lgi (Relevance):<\/b> Geri \u00e7a\u011fr\u0131lan belgelerin ve \u00fcretilen hikayenin orijinal sorguyla ne kadar ilgili oldu\u011fu.<\/li>\n<li><b>Do\u011fruluk (Faithfulness):<\/b> \u00dcretilen hikayenin geri \u00e7a\u011fr\u0131lan bilgilere ne kadar sad\u0131k kald\u0131\u011f\u0131. Hal\u00fcsinasyon yap\u0131p yapmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n<li><b>Tutarl\u0131l\u0131k (Coherence):<\/b> \u00dcretilen hikayenin dilbilgisel olarak do\u011fru, mant\u0131ksal olarak tutarl\u0131 ve ak\u0131c\u0131 olup olmad\u0131\u011f\u0131.<\/li>\n<li><b>Ak\u0131c\u0131l\u0131k (Fluency):<\/b> \u00dcretilen metnin do\u011fal ve okunabilir olmas\u0131.<\/li>\n<li><b>Yarat\u0131c\u0131l\u0131k (Creativity):<\/b> \u00d6zellikle hikaye olu\u015fturucular i\u00e7in \u00f6nemlidir. Hikayenin \u00f6zg\u00fcn, ilgi \u00e7ekici ve beklenmedik unsurlar i\u00e7erip i\u00e7ermedi\u011fi.<\/li>\n<\/ul>\n<p>Bu metriklerin \u00e7o\u011fu s\u00fcbjektif olabilir, bu nedenle insan de\u011ferlendirmesi genellikle kritik \u00f6neme sahiptir.<\/p>\n<h4>6.2. \u0130teratif \u0130yile\u015ftirme S\u00fcreci<\/h4>\n<p>RAG hatt\u0131n\u0131z\u0131 optimize etmek iteratif bir s\u00fcre\u00e7tir:<\/p>\n<ol>\n<li><b>Veri Kaynaklar\u0131n\u0131 Geni\u015fletme:<\/b> Daha fazla ve daha \u00e7e\u015fitli hikaye verisi ekleyin.<\/li>\n<li><b>Chunking Stratejilerini Ayarlama:<\/b> Farkl\u0131 chunk boyutlar\u0131 ve \u00f6rt\u00fc\u015fme oranlar\u0131 deneyin.<\/li>\n<li><b>G\u00f6mme Modeli Se\u00e7imi:<\/b> Farkl\u0131 g\u00f6mme modellerini test edin ve performanslar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/li>\n<li><b>Vekt\u00f6r Veritaban\u0131 Optimizasyonu:<\/b> Dizinleme parametrelerini ayarlay\u0131n, daha h\u0131zl\u0131 arama algoritmalar\u0131 kullan\u0131n.<\/li>\n<li><b>Eri\u015fim Stratejileri:<\/b> Top-k, MMR veya yeniden s\u0131ralama gibi farkl\u0131 eri\u015fim y\u00f6ntemlerini deneyin.<\/li>\n<li><b>Prompt M\u00fchendisli\u011fi:<\/b> LLM'ye verilen prompt'lar\u0131 s\u00fcrekli olarak iyile\u015ftirin.<\/li>\n<li><b>LLM Se\u00e7imi\/Ayar\u0131:<\/b> Farkl\u0131 LLM'leri deneyin veya mevcut LLM'nin s\u0131cakl\u0131k (temperature) gibi parametrelerini ayarlay\u0131n.<\/li>\n<\/ol>\n<h4>6.3. Kullan\u0131c\u0131 Geri Bildirimlerinin \u00d6nemi<\/h4>\n<p>Ger\u00e7ek kullan\u0131c\u0131lar\u0131n geri bildirimleri, RAG hatt\u0131n\u0131z\u0131n eksiklerini ve geli\u015ftirilebilecek alanlar\u0131 ortaya \u00e7\u0131karmada paha bi\u00e7ilmezdir. Kullan\u0131c\u0131lardan \u00fcretilen hikayelerin kalitesi, ilgi d\u00fczeyi ve tutarl\u0131l\u0131\u011f\u0131 hakk\u0131nda geri bildirim toplay\u0131n. Bu geri bildirimleri analiz ederek, hangi bile\u015fenlerin daha fazla dikkat gerektirdi\u011fini belirleyebilir ve iyile\u015ftirme d\u00f6ng\u00fcs\u00fcne entegre edebilirsiniz. A\/B testleri veya anketler bu s\u00fcre\u00e7te yard\u0131mc\u0131 olabilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu b\u00f6l\u00fcmde, kendi yapay zeka hikaye olu\u015fturucunuz i\u00e7in RAG hatt\u0131n\u0131n temel bile\u015fenlerini ve kurulum ad\u0131mlar\u0131n\u0131 detayl\u0131 bir \u015fekilde inceledik. Veri haz\u0131rl\u0131\u011f\u0131ndan ba\u015flayarak, metinleri par\u00e7alara ay\u0131rma, g\u00f6mme modelleriyle vekt\u00f6rle\u015ftirme, vekt\u00f6r veritaban\u0131nda dizinleme, bilgi eri\u015fim mekanizmalar\u0131n\u0131 kurma ve son olarak b\u00fcy\u00fck dil modelleriyle hikaye \u00fcretme a\u015famalar\u0131n\u0131 ele ald\u0131k. Kurdu\u011fumuz bu sa\u011flam RAG hatt\u0131, modelinizin sadece ezberlenmi\u015f bilgilerle de\u011fil, ayn\u0131 zamanda d\u0131\u015far\u0131dan edindi\u011fi zengin ve g\u00fcncel bilgilerle de yarat\u0131c\u0131 ve tutarl\u0131 hikayeler \u00fcretmesini sa\u011flayacakt\u0131r. Bir sonraki b\u00f6l\u00fcmde, bu hatt\u0131 kullan\u0131c\u0131 dostu bir aray\u00fczle nas\u0131l birle\u015ftirece\u011fimizi ve da\u011f\u0131t\u0131m ad\u0131mlar\u0131n\u0131 ke\u015ffedece\u011fiz.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>RAG ile geleneksel fine-tuning aras\u0131ndaki fark nedir?<\/h4>\n<p>RAG, LLM'nin mevcut bilgilerini harici bir bilgi taban\u0131ndan al\u0131nan g\u00fcncel ve spesifik bilgilerle geni\u015fletirken, fine-tuning (ince ayar) LLM'nin davran\u0131\u015f\u0131n\u0131 veya belirli bir g\u00f6revdeki performans\u0131n\u0131 iyile\u015ftirmek i\u00e7in modelin a\u011f\u0131rl\u0131klar\u0131n\u0131 k\u00fc\u00e7\u00fck bir veri k\u00fcmesi \u00fczerinde e\u011fiterek de\u011fi\u015ftirir. RAG, modelin yeniden e\u011fitilmesine gerek kalmadan bilgi taban\u0131n\u0131 g\u00fcncellemeyi kolayla\u015ft\u0131r\u0131r ve \"hal\u00fcsinasyonlar\u0131\" azaltmaya yard\u0131mc\u0131 olur.<\/p>\n<h4>Hangi g\u00f6mme modelini se\u00e7meliyim?<\/h4>\n<p>Se\u00e7iminiz b\u00fct\u00e7enize, performans gereksinimlerinize ve modelin yerel olarak m\u0131 yoksa bulutta m\u0131 \u00e7al\u0131\u015faca\u011f\u0131na ba\u011fl\u0131d\u0131r. OpenAI'\u0131n <code>text-embedding-ada-002<\/code> modeli genellikle iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Maliyet etkin ve a\u00e7\u0131k kaynakl\u0131 bir \u00e7\u00f6z\u00fcm ar\u0131yorsan\u0131z, Hugging Face'deki Sentence Transformers modelleri (\u00f6rn. <code>all-MiniLM-L6-v2<\/code>) iyi bir alternatif olabilir.<\/p>\n<h4>Vekt\u00f6r veritaban\u0131 se\u00e7erken nelere dikkat etmeliyim?<\/h4>\n<p>\u00d6l\u00e7eklenebilirlik (veri miktar\u0131n\u0131z ne kadar b\u00fcy\u00fcyecek?), maliyet (bulut hizmetleri vs. kendi kendine bar\u0131nd\u0131rma), kolay kullan\u0131m (API'lerin basitli\u011fi), filtreleme yetenekleri ve topluluk deste\u011fi gibi fakt\u00f6rleri g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131s\u0131n\u0131z. K\u00fc\u00e7\u00fck projeler i\u00e7in ChromaDB veya FAISS yeterli olabilirken, b\u00fcy\u00fck \u00f6l\u00e7ekli ve \u00fcretim ortamlar\u0131 i\u00e7in Pinecone veya Weaviate daha uygun olabilir.<\/p>\n<h4>RAG hatt\u0131m\u0131n performans\u0131n\u0131 nas\u0131l \u00f6l\u00e7erim?<\/h4>\n<p>Performans\u0131 \u00f6l\u00e7mek i\u00e7in hem otomatik metrikler hem de insan de\u011ferlendirmesi kullanabilirsiniz. Otomatik metrikler aras\u0131nda geri \u00e7a\u011fr\u0131lan belgelerin ilgi d\u00fczeyi (recall, precision) ve \u00fcretilen metnin tutarl\u0131l\u0131\u011f\u0131 (ROUGE, BLEU gibi metin benzerli\u011fi metrikleri) yer alabilir. Ancak, hikaye olu\u015fturma gibi yarat\u0131c\u0131 g\u00f6revlerde, \u00fcretilen hikayelerin yarat\u0131c\u0131l\u0131\u011f\u0131, ak\u0131c\u0131l\u0131\u011f\u0131 ve tutarl\u0131l\u0131\u011f\u0131 i\u00e7in insan de\u011ferlendirmesi (uzman yorumlar\u0131, kullan\u0131c\u0131 anketleri) kritik \u00f6neme sahiptir.<\/p>\n","protected":false},"excerpt":{"rendered":"Etkili chunking stratejileri:","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-38221","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>Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin - B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak - 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\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin - B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak\" \/>\n<meta property=\"og:description\" content=\"Etkili chunking stratejileri:\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-26T01:30:42+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=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin &#8211; B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak\",\"datePublished\":\"2026-01-26T01:30:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/\"},\"wordCount\":2894,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/\",\"name\":\"Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin - B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-26T01:30:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin &#8211; B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak\"}]},{\"@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":"Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin - B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak - 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\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/","og_locale":"tr_TR","og_type":"article","og_title":"Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin - B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak","og_description":"Etkili chunking stratejileri:","og_url":"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-26T01:30:42+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin &#8211; B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak","datePublished":"2026-01-26T01:30:42+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/"},"wordCount":2894,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/","url":"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/","name":"Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin - B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-26T01:30:42+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/kendi-yapay-zeka-hikaye-olusturucunuzu-rag-ile-insa-edin-bolum-2-rag-hattini-kurmak\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kendi Yapay Zeka Hikaye Olu\u015fturucunuzu RAG ile \u0130n\u015fa Edin &#8211; B\u00f6l\u00fcm 2: RAG Hatt\u0131n\u0131 Kurmak"}]},{"@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\/38221","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=38221"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38221\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38221"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38221"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}