{"id":42906,"date":"2026-06-28T21:08:49","date_gmt":"2026-06-28T18:08:49","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/"},"modified":"2026-06-28T21:09:20","modified_gmt":"2026-06-28T18:09:20","slug":"hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/","title":{"rendered":"Hukuki Kararlar\u0131 Anlamak: Gemini ile 100&#8217;den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur?"},"content":{"rendered":"<h2>Hukuki Kararlar\u0131 Anlamak: Gemini ile 100&#8217;den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur?<\/h2>\n<p>Hukuki metinlerin karma\u015f\u0131k d\u00fcnyas\u0131nda, do\u011fru bilgiye h\u0131zl\u0131ca ula\u015fmak, hem avukatlar hem de ara\u015ft\u0131rmac\u0131lar i\u00e7in hayati \u00f6nem ta\u015f\u0131r. \u00d6zellikle y\u00fczlerce sayfal\u0131k idari temyiz kararlar\u0131n\u0131 incelemek, zaman al\u0131c\u0131 ve yorucu bir s\u00fcre\u00e7 olabilir. Bu makalede, Google&#8217;\u0131n g\u00fc\u00e7l\u00fc yapay zeka modeli Gemini&#8217;\u0131 kullanarak, 100&#8217;den fazla ABD Vatanda\u015fl\u0131k ve G\u00f6\u00e7menlik Hizmetleri (USCIS) \u0130dari Temyiz Ofisi (AAO) karar\u0131ndan olu\u015fan bir koleksiyon \u00fczerinde, Retrieval Augmented Generation (RAG &#8211; Geri \u00c7a\u011f\u0131rma Destekli \u00dcretim) sistemini nas\u0131l in\u015fa etti\u011fimi ad\u0131m ad\u0131m anlataca\u011f\u0131m. Bu sistem, hukuki ara\u015ft\u0131rmalar\u0131n\u0131z\u0131 d\u00f6n\u00fc\u015ft\u00fcrecek, karma\u015f\u0131k sorulara an\u0131nda ve do\u011fru yan\u0131tlar alman\u0131z\u0131 sa\u011flayacak.<\/p>\n<h2>Hukuki Metinlerin Karma\u015f\u0131kl\u0131\u011f\u0131 ve RAG \u0130htiyac\u0131 Neden Bu Kadar \u00d6nemli?<\/h2>\n<p>Hukuk alan\u0131, genellikle anla\u015f\u0131lmas\u0131 zor, jargon dolu ve hacimli belgelerle karakterizedir. USCIS AAO kararlar\u0131 da bu t\u00fcr metinlere iyi bir \u00f6rnektir. Bu kararlar, emsal te\u015fkil eden yarg\u0131lamalar, yasal dayanaklar ve karma\u015f\u0131k olay \u00f6rg\u00fclerinin detayl\u0131 analizlerini i\u00e7erir. Y\u00fczlerce veya binlerce sayfay\u0131 bulan bu belgeler aras\u0131nda spesifik bir bilgi par\u00e7as\u0131n\u0131 bulmak, adeta samanl\u0131kta i\u011fne aramaya benzer. Geleneksel arama motorlar\u0131, anahtar kelime e\u015fle\u015ftirmesi yaparak y\u00fczeysel sonu\u00e7lar sunsa da, ba\u011flam\u0131 anlama ve karma\u015f\u0131k sorulara derinlemesine yan\u0131t verme konusunda yetersiz kal\u0131r.<\/p>\n<p>\u0130\u015fte tam da bu noktada, RAG sistemleri devreye girer ve bu zorlu\u011fa yenilik\u00e7i bir \u00e7\u00f6z\u00fcm sunar. RAG, bir dil modelinin (LLM &#8211; Large Language Model) yeteneklerini, harici bir bilgi taban\u0131ndan ilgili bilgileri &#8220;geri \u00e7a\u011f\u0131rma&#8221; yetene\u011fiyle birle\u015ftirir. Bu sayede, LLM, yaln\u0131zca kendi e\u011fitim verilerine dayanmak yerine, belirli bir belge koleksiyonundan al\u0131nan g\u00fcncel ve ba\u011flamsal olarak alakal\u0131 bilgilerle zenginle\u015ftirilmi\u015f yan\u0131tlar \u00fcretebilir. Bu, \u00f6zellikle s\u00fcrekli g\u00fcncellenen ve spesifik bilgi gerektiren hukuk gibi alanlarda kritik bir avantaj sa\u011flar. Bir avukat\u0131n, benzer bir davada daha \u00f6nce hangi kararlar\u0131n verildi\u011fini, hangi yasal dayanaklar\u0131n kullan\u0131ld\u0131\u011f\u0131n\u0131 veya belirli bir durumun emsal te\u015fkil edip etmedi\u011fini h\u0131zl\u0131ca \u00f6\u011frenmesi gerekti\u011finde, RAG sistemi paha bi\u00e7ilmez bir yard\u0131mc\u0131 haline gelir.<\/p>\n<p>RAG sistemlerinin \u00f6nemi, sadece h\u0131z ve verimlilikle s\u0131n\u0131rl\u0131 de\u011fildir. Ayn\u0131 zamanda, yapay zeka taraf\u0131ndan \u00fcretilen yan\u0131tlar\u0131n &#8220;hal\u00fcsinasyon&#8221; (ger\u00e7ek olmayan bilgi \u00fcretme) riskini azaltarak g\u00fcvenilirli\u011fi art\u0131r\u0131r. \u00c7\u00fcnk\u00fc sistem, yan\u0131tlar\u0131n\u0131 dayand\u0131rd\u0131\u011f\u0131 kaynaklar\u0131 a\u00e7\u0131k\u00e7a belirtebilir ve kullan\u0131c\u0131lar\u0131n bu kaynaklar\u0131 do\u011frulamas\u0131na olanak tan\u0131r. Bu sayede, hukuki dan\u0131\u015fmanl\u0131k veya ara\u015ft\u0131rma s\u00fcre\u00e7lerinde yapay zekan\u0131n sa\u011flad\u0131\u011f\u0131 bilgiler, daha sa\u011flam ve do\u011frulanabilir bir temel \u00fczerine oturur. USCIS kararlar\u0131 gibi y\u00fcksek hassasiyet gerektiren belgelerle \u00e7al\u0131\u015f\u0131rken, bu do\u011fruluk ve g\u00fcvenilirlik, sistemin olmazsa olmaz bir \u00f6zelli\u011fidir. K\u0131sacas\u0131, RAG, hukuki metinlerin karma\u015f\u0131kl\u0131\u011f\u0131 kar\u015f\u0131s\u0131nda, hem insan\u0131 hem de yapay zekay\u0131 g\u00fc\u00e7lendiren bir k\u00f6pr\u00fc g\u00f6revi g\u00f6r\u00fcr.<\/p>\n<h3>RAG Nedir ve Hukuk Alan\u0131nda Neden Bu Kadar \u00d6nemlidir?<\/h3>\n<p>Retrieval Augmented Generation (RAG), b\u00fcy\u00fck dil modellerinin (LLM) bilgi edinme ve \u00fcretme s\u00fcre\u00e7lerini iyile\u015ftirmek i\u00e7in kullan\u0131lan bir yapay zeka mimarisidir. Temelde iki ana a\u015famadan olu\u015fur: Geri \u00c7a\u011f\u0131rma (Retrieval) ve \u00dcretim (Generation). Geri \u00c7a\u011f\u0131rma a\u015famas\u0131nda, kullan\u0131c\u0131 sorgusu, bir vekt\u00f6r veritaban\u0131nda depolanan geni\u015f bir belge koleksiyonu i\u00e7inde en alakal\u0131 bilgi par\u00e7alar\u0131n\u0131 bulmak i\u00e7in kullan\u0131l\u0131r. Bu bilgi par\u00e7alar\u0131, genellikle &#8220;embedding&#8221; ad\u0131 verilen say\u0131sal vekt\u00f6r g\u00f6sterimleri arac\u0131l\u0131\u011f\u0131yla sorguyla anlamsal benzerliklerine g\u00f6re e\u015fle\u015ftirilir. \u00dcretim a\u015famas\u0131nda ise, geri \u00e7a\u011fr\u0131lan bu alakal\u0131 bilgi par\u00e7alar\u0131, LLM&#8217;ye (bu durumda Gemini) bir ba\u011flam olarak sunulur ve LLM, bu ba\u011flam\u0131 kullanarak kullan\u0131c\u0131 sorgusuna do\u011fal ve bilgilendirici bir yan\u0131t \u00fcretir.<\/p>\n<p>Hukuk alan\u0131nda RAG&#8217;\u0131n \u00f6nemi birka\u00e7 temel noktada toplan\u0131r. Birincisi, hukuk s\u00fcrekli de\u011fi\u015fen ve geni\u015fleyen bir aland\u0131r. LLM&#8217;ler belirli bir tarihe kadar olan verilerle e\u011fitilir ve g\u00fcncel mevzuat de\u011fi\u015fiklikleri, yeni yarg\u0131 kararlar\u0131 veya idari d\u00fczenlemeler hakk\u0131nda bilgi sahibi olmayabilirler. RAG, bu bilgi bo\u015flu\u011funu kapat\u0131r. Kendi g\u00fcncel ve spesifik belge koleksiyonunuzu (\u00f6rne\u011fin, en son USCIS kararlar\u0131n\u0131) sisteme dahil ederek, LLM&#8217;nin her zaman en yeni ve en alakal\u0131 bilgilere eri\u015fmesini sa\u011flars\u0131n\u0131z. \u0130kincisi, hukuki metinler genellikle \u00e7ok spesifik ve n\u00fcansl\u0131 detaylar i\u00e7erir. Genel ama\u00e7l\u0131 LLM&#8217;ler, bu t\u00fcr detaylar\u0131 g\u00f6zden ka\u00e7\u0131rabilir veya yanl\u0131\u015f yorumlayabilir. RAG, do\u011frudan ilgili pasajlar\u0131 LLM&#8217;ye sunarak, yan\u0131tlar\u0131n do\u011frulu\u011funu ve ba\u011flamsal uygunlu\u011funu art\u0131r\u0131r.<\/p>\n<p>\u00dc\u00e7\u00fcnc\u00fcs\u00fc, &#8220;hal\u00fcsinasyon&#8221; riski, hukuk gibi hata kabul etmeyen alanlarda b\u00fcy\u00fck bir endi\u015fe kayna\u011f\u0131d\u0131r. RAG, LLM&#8217;nin &#8220;uydurma&#8221; bilgi \u00fcretme e\u011filimini, ger\u00e7ek ve do\u011frulanabilir kaynaklardan al\u0131nan bilgilerle s\u0131n\u0131rlayarak \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Sistem, yan\u0131tlar\u0131n\u0131 dayand\u0131rd\u0131\u011f\u0131 kaynak belgeleri (\u00f6rne\u011fin, belirli bir USCIS karar\u0131n\u0131n paragraf numaras\u0131) g\u00f6sterebildi\u011fi i\u00e7in, kullan\u0131c\u0131lar \u00fcretilen bilgiyi kolayca kontrol edebilir ve g\u00fcvenilirli\u011fini art\u0131rabilir. Son olarak, RAG, avukatlar\u0131n, hukuk ara\u015ft\u0131rmac\u0131lar\u0131n\u0131n ve g\u00f6\u00e7menlik uzmanlar\u0131n\u0131n zaman\u0131n\u0131 ve eme\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Y\u00fczlerce sayfal\u0131k kararlar aras\u0131nda saatler harcamak yerine, spesifik bir soru sorarak saniyeler i\u00e7inde ilgili ve \u00f6zetlenmi\u015f bilgilere ula\u015fabilirler. Bu, \u00f6zellikle karma\u015f\u0131k g\u00f6\u00e7menlik davalar\u0131nda stratejik kararlar al\u0131rken veya m\u00fcvekkillere dan\u0131\u015fmanl\u0131k yaparken kritik bir avantaj sa\u011flar. Bu nedenle, RAG, hukuki ara\u015ft\u0131rma ve analiz s\u00fcre\u00e7lerinde devrim niteli\u011finde bir ara\u00e7 olarak konumlanmaktad\u0131r.<\/p>\n<h2>Veri Haz\u0131rl\u0131\u011f\u0131: 100+ USCIS Karar\u0131n\u0131n D\u00fczenlenmesi S\u00fcreci<\/h2>\n<p>Bir RAG sisteminin ba\u015far\u0131s\u0131, b\u00fcy\u00fck \u00f6l\u00e7\u00fcde beslendi\u011fi verinin kalitesine ve d\u00fczenine ba\u011fl\u0131d\u0131r. USCIS \u0130dari Temyiz Ofisi (AAO) kararlar\u0131, genellikle PDF format\u0131nda yay\u0131nlan\u0131r ve bu belgeler, taranm\u0131\u015f g\u00f6r\u00fcnt\u00fcler, metin katmanlar\u0131 veya her ikisinin birle\u015fimi olabilir. Bu nedenle, ilk ve en kritik ad\u0131m, bu kararlar\u0131 i\u015flenebilir bir metin format\u0131na d\u00f6n\u00fc\u015ft\u00fcrmektir. Projemizde, 100&#8217;den fazla AAO karar\u0131n\u0131 i\u00e7eren bir veri k\u00fcmesiyle \u00e7al\u0131\u015ft\u0131k. Bu kararlar\u0131n her biri, farkl\u0131 uzunluklarda ve formatlarda olabilece\u011fi i\u00e7in, standart bir \u00f6n i\u015fleme s\u00fcreci uygulamak zorunluydu.<\/p>\n<p>\u0130lk olarak, t\u00fcm PDF dosyalar\u0131n\u0131 tek tek okumak ve i\u00e7erdikleri metni \u00e7\u0131karmak i\u00e7in Python tabanl\u0131 k\u00fct\u00fcphaneler kulland\u0131k. \u00d6zellikle <code>PyPDF2<\/code> veya <code>pdfminer.six<\/code> gibi k\u00fct\u00fcphaneler, metin katman\u0131na sahip PDF&#8217;lerden metin \u00e7\u0131karmak i\u00e7in olduk\u00e7a etkilidir. E\u011fer PDF&#8217;ler taranm\u0131\u015f g\u00f6r\u00fcnt\u00fclerden olu\u015fuyorsa, Optik Karakter Tan\u0131ma (OCR &#8211; Optical Character Recognition) ara\u00e7lar\u0131na (\u00f6rne\u011fin <code>Tesseract<\/code> veya bulut tabanl\u0131 OCR hizmetleri) ba\u015fvurmak gerekebilir. Bu a\u015famada, \u00e7\u0131kar\u0131lan metnin temizli\u011fi b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r. Zira, PDF&#8217;lerden metin \u00e7\u0131karma i\u015flemi s\u0131ras\u0131nda sayfa ba\u015fl\u0131klar\u0131, dipnotlar, sayfa numaralar\u0131, anlams\u0131z karakterler veya hatal\u0131 birle\u015fimler gibi istenmeyen unsurlar ortaya \u00e7\u0131kabilir. Bu t\u00fcr g\u00fcr\u00fclt\u00fcy\u00fc temizlemek i\u00e7in d\u00fczenli ifadeler (regex) ve string manip\u00fclasyonlar\u0131 kulland\u0131k. \u00d6rne\u011fin, &#8220;Sayfa X \/ Y&#8221; gibi ifadeleri, gereksiz bo\u015fluklar\u0131 veya \u00f6zel karakterleri kald\u0131rd\u0131k.<\/p>\n<p>Veri temizli\u011finin ard\u0131ndan, her bir karar\u0131n metnini daha k\u00fc\u00e7\u00fck ve y\u00f6netilebilir par\u00e7alara b\u00f6lmek (chunking) gerekiyordu. Bu, RAG sisteminin geri \u00e7a\u011f\u0131rma a\u015famas\u0131nda daha alakal\u0131 ve odaklanm\u0131\u015f sonu\u00e7lar bulmas\u0131n\u0131 sa\u011flar. \u00c7\u00fcnk\u00fc t\u00fcm karar\u0131 tek bir par\u00e7a olarak i\u015flemek, hem performans\u0131 d\u00fc\u015f\u00fcr\u00fcr hem de anlamsal olarak alakas\u0131z k\u0131s\u0131mlar\u0131n da geri \u00e7a\u011fr\u0131lmas\u0131na neden olabilir. Chunking stratejisi, metnin do\u011fas\u0131na g\u00f6re belirlenmelidir. Hukuki metinlerde, paragraflar, b\u00f6l\u00fcmler veya belirli bir sat\u0131r say\u0131s\u0131 gibi \u00f6l\u00e7\u00fctler kullan\u0131labilir. Bizim durumumuzda, her bir karar\u0131 belirli bir kelime veya karakter say\u0131s\u0131na (\u00f6rne\u011fin 500 kelime) ve \u00fcst \u00fcste binme (overlap) oran\u0131yla (\u00f6rne\u011fin 50 kelime) b\u00f6lmeyi tercih ettik. \u00dcst \u00fcste binme, bir par\u00e7an\u0131n sonu ile bir sonraki par\u00e7an\u0131n ba\u015f\u0131 aras\u0131nda bir miktar ortak metin bulunmas\u0131 anlam\u0131na gelir; bu, ba\u011flam\u0131n kaybolmas\u0131n\u0131 engellemek i\u00e7in \u00f6nemlidir. Her bir par\u00e7aya, hangi karardan geldi\u011fini belirten benzersiz bir kimlik (ID) ve orijinal karar\u0131n ad\u0131 gibi meta veriler ekledik. Bu meta veriler, daha sonra geri \u00e7a\u011fr\u0131lan par\u00e7alar\u0131n kayna\u011f\u0131n\u0131 g\u00f6stermek ve kullan\u0131c\u0131ya tam karara y\u00f6nlendirmek i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>Metin \u00d6n \u0130\u015fleme ve Chunking Stratejileri: Detayl\u0131 Bir Bak\u0131\u015f<\/h3>\n<p>Metin \u00f6n i\u015fleme, ham veriyi yapay zeka modelleri i\u00e7in anlaml\u0131 ve kullan\u0131labilir hale getirme s\u00fcrecidir. USCIS kararlar\u0131 gibi hukuki belgelerde bu s\u00fcre\u00e7, \u00f6zellikle dikkatli bir yakla\u015f\u0131m gerektirir. \u0130lk ad\u0131m, genellikle PDF&#8217;lerden metin \u00e7\u0131kar\u0131m\u0131d\u0131r. Metin \u00e7\u0131kar\u0131ld\u0131ktan sonra, belgenin i\u00e7eri\u011fini bozmadan gereksiz k\u0131s\u0131mlar\u0131 ay\u0131klamak esast\u0131r. \u00d6rne\u011fin, her sayfan\u0131n ba\u015f\u0131nda veya sonunda tekrar eden ba\u015fl\u0131klar, sayfa numaralar\u0131, dipnotlar, telif hakk\u0131 bildirimleri veya dosya yollar\u0131 gibi yap\u0131sal \u00f6\u011feler temizlenmelidir. Bu temizlik i\u015flemi, d\u00fczenli ifadeler (regular expressions) kullan\u0131larak otomatize edilebilir. \u00d6rne\u011fin, <code>re.sub(r'\\n\\s*\\n', '\\n\\n', text)<\/code> gibi bir ifade ile birden fazla bo\u015f sat\u0131r\u0131 tek bir bo\u015f sat\u0131ra indirgeyerek metni daha d\u00fczenli hale getirebiliriz.<\/p>\n<p>Metnin temizlenmesinin ard\u0131ndan, &#8220;chunking&#8221; ad\u0131 verilen par\u00e7alama stratejisi devreye girer. Chunking, b\u00fcy\u00fck metin belgelerini daha k\u00fc\u00e7\u00fck, y\u00f6netilebilir ve anlamsal olarak tutarl\u0131 par\u00e7alara b\u00f6lme i\u015flemidir. Bu i\u015flem, vekt\u00f6r veritaban\u0131nda depolanacak ve sorgularla e\u015fle\u015ftirilecek birimlerin boyutunu belirler. Hukuki metinlerde chunking yaparken, anlamsal b\u00fct\u00fcnl\u00fc\u011f\u00fc korumak kritik \u00f6neme sahiptir. Rastgele bir karakter say\u0131s\u0131na g\u00f6re kesmek yerine, metnin do\u011fal yap\u0131lar\u0131n\u0131 (paragraflar, ba\u015fl\u0131klar, b\u00f6l\u00fcmler) dikkate almak daha verimli sonu\u00e7lar verir. \u00d6rne\u011fin, bir paragraf\u0131 b\u00f6lmektense, t\u00fcm paragraf\u0131 bir chunk olarak almak daha mant\u0131kl\u0131d\u0131r. E\u011fer paragraflar \u00e7ok uzunsa, belirli bir kelime veya karakter say\u0131s\u0131n\u0131 a\u015fan paragraflar\u0131 daha k\u00fc\u00e7\u00fck alt paragraflara b\u00f6lmek gerekebilir.<\/p>\n<p>Chunking stratejileri aras\u0131nda &#8220;fixed-size chunking&#8221; (sabit boyutlu par\u00e7alama) ve &#8220;recursive chunking&#8221; (\u00f6zyinelemeli par\u00e7alama) \u00f6ne \u00e7\u0131kar. Sabit boyutlu par\u00e7alama, metni belirli bir karakter veya kelime say\u0131s\u0131na g\u00f6re b\u00f6ler ve her par\u00e7an\u0131n sonunda belirli bir miktar &#8220;\u00fcst \u00fcste binme&#8221; (overlap) b\u0131rak\u0131r. \u00dcst \u00fcste binme, bir par\u00e7an\u0131n sonundaki bilgilerin bir sonraki par\u00e7an\u0131n ba\u015f\u0131nda tekrarlanmas\u0131n\u0131 sa\u011flayarak, bir sorgunun iki farkl\u0131 par\u00e7a aras\u0131nda kalan bir bilgiye denk gelmesi durumunda ba\u011flam kayb\u0131n\u0131 \u00f6nler. \u00d6rne\u011fin, 500 karakterlik par\u00e7alar ve 50 karakterlik \u00fcst \u00fcste binme kullanabiliriz. \u00d6zyinelemeli par\u00e7alama ise daha sofistike bir yakla\u015f\u0131md\u0131r. Metni \u00f6nce b\u00fcy\u00fck ayra\u00e7larla (\u00f6rne\u011fin, &#8220;## B\u00f6l\u00fcm&#8221;, &#8220;\\n\\n&#8221;) b\u00f6lmeye \u00e7al\u0131\u015f\u0131r. E\u011fer par\u00e7alar hala \u00e7ok b\u00fcy\u00fckse, daha k\u00fc\u00e7\u00fck ayra\u00e7larla (\u00f6rne\u011fin, &#8220;\\n&#8221;, &#8220;. &#8220;) b\u00f6lmeye devam eder. Bu y\u00f6ntem, metnin hiyerar\u015fik yap\u0131s\u0131n\u0131 daha iyi korur ve anlamsal olarak daha tutarl\u0131 par\u00e7alar \u00fcretir. Her bir par\u00e7aya, orijinal belgeye at\u0131fta bulunmay\u0131 sa\u011flayan belge ad\u0131, sayfa numaras\u0131 veya benzersiz bir kimlik gibi meta veriler eklemek, geri \u00e7a\u011fr\u0131lan bilginin do\u011frulanabilirli\u011fini art\u0131r\u0131r.<\/p>\n<div class=\"code-container\">\n<pre><code>\nfrom PyPDF2 import PdfReader\nimport re\n\ndef extract_text_from_pdf(pdf_path):\n    reader = PdfReader(pdf_path)\n    text = \"\"\n    for page in reader.pages:\n        text += page.extract_text() + \"\\n\"\n    return text\n\ndef clean_text(text):\n    # Sayfa numaralar\u0131n\u0131, ba\u015fl\u0131klar\u0131 vb. temizle\n    text = re.sub(r'Page \\d+ of \\d+', '', text)\n    text = re.sub(r'^\\s*USCIS\\s*AAO\\s*Decision\\s*.*$', '', text, flags=re.MULTILINE)\n    # Birden fazla bo\u015f sat\u0131r\u0131 tek bo\u015f sat\u0131ra indirge\n    text = re.sub(r'\\n\\s*\\n', '\\n\\n', text)\n    # Ba\u015ftaki ve sondaki bo\u015fluklar\u0131 temizle\n    text = text.strip()\n    return text\n\ndef chunk_text(text, chunk_size=500, chunk_overlap=50):\n    chunks = []\n    current_pos = 0\n    while current_pos < len(text):\n        end_pos = min(current_pos + chunk_size, len(text))\n        chunk = text[current_pos:end_pos]\n        chunks.append(chunk)\n        current_pos += chunk_size - chunk_overlap\n        if current_pos >= len(text): # Son par\u00e7an\u0131n sonu\n            break\n    return chunks\n\n# \u00d6rnek kullan\u0131m\n# pdf_path = \"ornek_karar.pdf\"\n# raw_text = extract_text_from_pdf(pdf_path)\n# cleaned_text = clean_text(raw_text)\n# text_chunks = chunk_text(cleaned_text)\n# print(f\"Toplam par\u00e7a say\u0131s\u0131: {len(text_chunks)}\")\n# print(text_chunks[0])\n      <\/code><\/pre>\n<\/p><\/div>\n<h2>Vekt\u00f6r Veritaban\u0131 Se\u00e7imi ve G\u00f6mme (Embedding) \u0130\u015flemleri Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>Metin \u00f6n i\u015fleme ve par\u00e7alama ad\u0131mlar\u0131n\u0131 tamamlad\u0131ktan sonra, RAG sistemimizin kalbi olan vekt\u00f6r veritaban\u0131n\u0131 olu\u015fturma a\u015famas\u0131na ge\u00e7iyoruz. Vekt\u00f6r veritabanlar\u0131, metin par\u00e7alar\u0131n\u0131n &#8220;embedding&#8221; ad\u0131 verilen say\u0131sal vekt\u00f6r g\u00f6sterimlerini depolamak ve h\u0131zl\u0131ca sorgulamak i\u00e7in \u00f6zel olarak tasarlanm\u0131\u015ft\u0131r. Her bir metin par\u00e7as\u0131, anlamsal olarak benzer metinlerin vekt\u00f6r uzay\u0131nda birbirine yak\u0131n konumland\u0131\u011f\u0131 y\u00fcksek boyutlu bir vekt\u00f6re d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr. Bu sayede, bir kullan\u0131c\u0131 sorgusu geldi\u011finde, sorgunun vekt\u00f6r\u00fc ile veritaban\u0131ndaki t\u00fcm metin par\u00e7alar\u0131n\u0131n vekt\u00f6rleri aras\u0131ndaki &#8220;benzerlik&#8221; \u00f6l\u00e7\u00fclerek en alakal\u0131 par\u00e7alar h\u0131zl\u0131ca bulunabilir.<\/p>\n<p>Projemizde, vekt\u00f6r veritaban\u0131 olarak <a href=\"https:\/\/www.pinecone.io\/\" target=\"_blank\">Pinecone<\/a>&#8216;u tercih ettik. Pinecone, b\u00fcy\u00fck \u00f6l\u00e7ekli vekt\u00f6r aramalar\u0131 i\u00e7in optimize edilmi\u015f, y\u00f6netilen bir hizmettir. Ancak <a href=\"https:\/\/www.chromadb.ai\/\" target=\"_blank\">ChromaDB<\/a>, <a href=\"https:\/\/weaviate.io\/\" target=\"_blank\">Weaviate<\/a> veya a\u00e7\u0131k kaynakl\u0131 <a href=\"https:\/\/github.com\/facebookresearch\/faiss\" target=\"_blank\">Faiss<\/a> gibi ba\u015fka se\u00e7enekler de mevcuttur. Se\u00e7im, projenin \u00f6l\u00e7e\u011fine, b\u00fct\u00e7esine ve y\u00f6netim kolayl\u0131\u011f\u0131 beklentisine g\u00f6re de\u011fi\u015febilir. Pinecone&#8217;u se\u00e7memizin ana nedenleri, kolay entegrasyonu, \u00f6l\u00e7eklenebilirli\u011fi ve performans\u0131d\u0131r. Her bir metin par\u00e7as\u0131n\u0131 bir vekt\u00f6re d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in ise Google&#8217;\u0131n Gemini API&#8217;sinin sa\u011flad\u0131\u011f\u0131 embedding modelini kulland\u0131k. Gemini&#8217;nin embedding modelleri, karma\u015f\u0131k metinleri dahi y\u00fcksek do\u011frulukla say\u0131sal g\u00f6sterimlere d\u00f6n\u00fc\u015ft\u00fcrme yetene\u011fine sahiptir, bu da anlamsal arama kalitesini do\u011frudan etkiler.<\/p>\n<p>G\u00f6mme (embedding) i\u015flemi \u015fu ad\u0131mlarla ger\u00e7ekle\u015ftirilir: \u0130lk olarak, Pinecone ortam\u0131m\u0131z\u0131 kurar ve API anahtar\u0131m\u0131z\u0131 kullanarak bir ba\u011flant\u0131 olu\u015ftururuz. Ard\u0131ndan, daha \u00f6nce haz\u0131rlad\u0131\u011f\u0131m\u0131z her bir metin par\u00e7as\u0131n\u0131 al\u0131r\u0131z. Her bir par\u00e7a i\u00e7in Gemini&#8217;nin embedding modelini \u00e7a\u011f\u0131rarak ilgili vekt\u00f6r\u00fc elde ederiz. Bu i\u015flem, genellikle bir d\u00f6ng\u00fc i\u00e7inde her par\u00e7a i\u00e7in ayr\u0131 ayr\u0131 yap\u0131l\u0131r. Elde edilen vekt\u00f6r, o metin par\u00e7as\u0131n\u0131n anlamsal \u00f6z\u00fcn\u00fc temsil eder. Son olarak, bu vekt\u00f6rleri, ili\u015fkili olduklar\u0131 metin par\u00e7as\u0131 ve meta verileriyle (\u00f6rne\u011fin, orijinal belge ad\u0131, par\u00e7a ID&#8217;si) birlikte Pinecone indeksimize y\u00fckleriz. Bu y\u00fckleme i\u015flemi, Pinecone&#8217;un indeksleme yetenekleri sayesinde h\u0131zl\u0131 ve verimli bir \u015fekilde ger\u00e7ekle\u015fir. Y\u00fckleme tamamland\u0131\u011f\u0131nda, USCIS kararlar\u0131ndan olu\u015fan t\u00fcm bilgi taban\u0131m\u0131z, anlamsal arama i\u00e7in haz\u0131r hale gelmi\u015f olur. Bu sayede, karma\u015f\u0131k hukuki sorgulara an\u0131nda ve ilgili metin par\u00e7alar\u0131yla desteklenmi\u015f yan\u0131tlar \u00fcretebilecek g\u00fc\u00e7l\u00fc bir altyap\u0131 olu\u015fturmu\u015f oluruz.<\/p>\n<h3>Neden Vekt\u00f6r Veritabanlar\u0131 ve Nas\u0131l \u00c7al\u0131\u015f\u0131rlar?<\/h3>\n<p>Vekt\u00f6r veritabanlar\u0131, geleneksel veritabanlar\u0131ndan farkl\u0131 olarak, verileri do\u011frudan depolamak yerine, onlar\u0131n say\u0131sal vekt\u00f6r g\u00f6sterimlerini (embedding&#8217;lerini) saklar. Bu vekt\u00f6rler, metin, g\u00f6r\u00fcnt\u00fc, ses gibi farkl\u0131 veri t\u00fcrlerinin anlamsal \u00f6zelliklerini y\u00fcksek boyutlu bir uzayda temsil eder. Her bir boyut, verinin belirli bir \u00f6zelli\u011fine kar\u015f\u0131l\u0131k gelir ve benzer anlama sahip veriler, bu vekt\u00f6r uzay\u0131nda birbirine daha yak\u0131n konumlan\u0131r. Bu temel prensip, vekt\u00f6r veritabanlar\u0131n\u0131 anlamsal arama ve benzerlik tabanl\u0131 sorgular i\u00e7in vazge\u00e7ilmez k\u0131lar.<\/p>\n<p>Peki, bir vekt\u00f6r veritaban\u0131 nas\u0131l \u00e7al\u0131\u015f\u0131r? S\u00fcre\u00e7 genellikle \u015fu ad\u0131mlar\u0131 i\u00e7erir:<\/p>\n<ol>\n<li><strong>G\u00f6mme (Embedding) Olu\u015fturma:<\/strong> \u0130lk olarak, depolamak istedi\u011finiz her veri par\u00e7as\u0131 (\u00f6rne\u011fin, USCIS karar\u0131ndan bir metin par\u00e7as\u0131) bir &#8220;embedding modeli&#8221; (\u00f6rne\u011fin Gemini&#8217;nin embedding modeli) arac\u0131l\u0131\u011f\u0131yla say\u0131sal bir vekt\u00f6re d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr. Bu model, metnin ba\u011flam\u0131n\u0131 ve anlamsal anlam\u0131n\u0131 yakalayarak onu say\u0131sal bir temsile d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/li>\n<li><strong>Vekt\u00f6r Depolama:<\/strong> Olu\u015fturulan bu vekt\u00f6rler, ilgili orijinal metin par\u00e7as\u0131 ve herhangi bir meta veri (\u00f6rne\u011fin, belge ad\u0131, par\u00e7a ID&#8217;si) ile birlikte vekt\u00f6r veritaban\u0131na depolan\u0131r. Veritaban\u0131, bu vekt\u00f6rleri h\u0131zl\u0131 arama i\u00e7in optimize edilmi\u015f \u00f6zel indeksleme yap\u0131lar\u0131 (\u00f6rne\u011fin, HNSW &#8211; Hierarchical Navigable Small World) kullanarak saklar.<\/li>\n<li><strong>Sorgu \u0130\u015fleme:<\/strong> Bir kullan\u0131c\u0131 bir sorgu (\u00f6rne\u011fin, &#8220;H-1B vize reddi i\u00e7in hangi emsal kararlar var?&#8221;) g\u00f6nderdi\u011finde, bu sorgu da ayn\u0131 embedding modeli kullan\u0131larak bir vekt\u00f6re d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr.<\/li>\n<li><strong>Benzerlik Aramas\u0131:<\/strong> Sorgu vekt\u00f6r\u00fc, veritaban\u0131ndaki t\u00fcm depolanm\u0131\u015f vekt\u00f6rlerle kar\u015f\u0131la\u015ft\u0131r\u0131l\u0131r. Vekt\u00f6rler aras\u0131ndaki &#8220;mesafe&#8221; veya &#8220;benzerlik&#8221; (\u00f6rne\u011fin, kosin\u00fcs benzerli\u011fi) hesaplan\u0131r. Daha k\u00fc\u00e7\u00fck mesafe veya daha y\u00fcksek benzerlik, iki vekt\u00f6r\u00fcn anlamsal olarak daha yak\u0131n oldu\u011fu anlam\u0131na gelir.<\/li>\n<li><strong>En Alakal\u0131 Sonu\u00e7lar\u0131 Geri \u00c7a\u011f\u0131rma:<\/strong> Veritaban\u0131, sorgu vekt\u00f6r\u00fcne en benzer olan top-k (\u00f6rne\u011fin, en benzer 5) vekt\u00f6r\u00fc ve bunlara kar\u015f\u0131l\u0131k gelen metin par\u00e7alar\u0131n\u0131 geri d\u00f6nd\u00fcr\u00fcr.<\/li>\n<\/ol>\n<p>    Vekt\u00f6r veritabanlar\u0131, geleneksel anahtar kelime tabanl\u0131 aramalardan \u00e7ok daha g\u00fc\u00e7l\u00fcd\u00fcr \u00e7\u00fcnk\u00fc kelimelerin tam e\u015fle\u015fmesine de\u011fil, anlamlar\u0131na odaklan\u0131r. Bu, \u00f6zellikle hukuki metinlerdeki karma\u015f\u0131k kavramlar\u0131 ve n\u00fcanslar\u0131 anlamak i\u00e7in hayati \u00f6nem ta\u015f\u0131r. \u00d6rne\u011fin, &#8220;H-1B vize reddi&#8221; sorgusu, sadece bu kelimeleri i\u00e7eren belgeleri de\u011fil, ayn\u0131 zamanda &#8220;i\u015f vizesi onay\u0131 reddi&#8221; veya &#8220;yabanc\u0131 i\u015f\u00e7i stat\u00fcs\u00fc itiraz\u0131&#8221; gibi anlamsal olarak ilgili kavramlar\u0131 i\u00e7eren belgeleri de bulabilir. Bu yetenek, RAG sistemimizin USCIS kararlar\u0131 gibi geni\u015f ve karma\u015f\u0131k bir veri k\u00fcmesinden en do\u011fru ve ba\u011flamsal olarak alakal\u0131 bilgileri \u00e7ekmesini sa\u011flar.<\/p>\n<div class=\"code-container\">\n<pre><code>\nimport google.generativeai as genai\nfrom pinecone import Pinecone, Index\nimport os\n\n# API anahtarlar\u0131n\u0131 ortam de\u011fi\u015fkenlerinden al\nGEMINI_API_KEY = os.getenv(\"GEMINI_API_KEY\")\nPINECONE_API_KEY = os.getenv(\"PINECONE_API_KEY\")\nPINECONE_ENVIRONMENT = os.getenv(\"PINECONE_ENVIRONMENT\") # \u00d6rne\u011fin \"us-west-2\"\n\ngenai.configure(api_key=GEMINI_API_KEY)\n\n# Pinecone'a ba\u011flan\npc = Pinecone(api_key=PINECONE_API_KEY, environment=PINECONE_ENVIRONMENT)\n\n# \u0130ndeks ad\u0131n\u0131 tan\u0131mla\nindex_name = \"uscis-aao-decisions\"\n\n# \u0130ndeks yoksa olu\u015ftur\nif index_name not in pc.list_indexes():\n    pc.create_index(\n        name=index_name,\n        dimension=768, # Gemini embedding modelinin boyutu\n        metric='cosine'\n    )\n\nindex = pc.Index(index_name)\n\ndef get_gemini_embedding(text):\n    # Gemini embedding modelini kullanarak vekt\u00f6r olu\u015ftur\n    model = genai.get_model(\"models\/embedding-001\")\n    embedding = model.embed_content(content=text)[\"embedding\"]\n    return embedding\n\ndef upsert_chunks_to_pinecone(chunks_with_metadata):\n    vectors_to_upsert = []\n    for i, chunk_data in enumerate(chunks_with_metadata):\n        chunk_id = chunk_data[\"id\"]\n        chunk_text = chunk_data[\"text\"]\n        chunk_metadata = chunk_data[\"metadata\"]\n\n        embedding = get_gemini_embedding(chunk_text)\n        vectors_to_upsert.append({\n            \"id\": chunk_id,\n            \"values\": embedding,\n            \"metadata\": chunk_metadata\n        })\n    \n    # Vekt\u00f6rleri Pinecone'a y\u00fckle (batching ile daha verimli)\n    # Pinecone.upsert() methodu genellikle list of dict al\u0131r\n    index.upsert(vectors=vectors_to_upsert)\n    print(f\"Toplam {len(vectors_to_upsert)} vekt\u00f6r Pinecone'a y\u00fcklendi.\")\n\n# \u00d6rnek kullan\u0131m (yukar\u0131daki chunk_text fonksiyonundan gelen \u00e7\u0131kt\u0131ya g\u00f6re)\n# \u00d6rnek olarak bir liste olu\u015fturuyoruz\n# sample_chunks_with_metadata = [\n#     {\"id\": \"doc1_chunk1\", \"text\": \"Bu ilk karar\u0131n ilk par\u00e7as\u0131d\u0131r.\", \"metadata\": {\"document_id\": \"doc1\", \"page\": 1}},\n#     {\"id\": \"doc1_chunk2\", \"text\": \"Bu ilk karar\u0131n ikinci par\u00e7as\u0131d\u0131r.\", \"metadata\": {\"document_id\": \"doc1\", \"page\": 1}},\n#     # ... di\u011fer par\u00e7alar\n# ]\n# upsert_chunks_to_pinecone(sample_chunks_with_metadata)\n      <\/code><\/pre>\n<\/p><\/div>\n<h2>Gemini Entegrasyonu: Ak\u0131ll\u0131 Sorgulama ve Yan\u0131tlama Yetenekleri<\/h2>\n<p>Veri haz\u0131rl\u0131\u011f\u0131 ve vekt\u00f6r veritaban\u0131 olu\u015fturma ad\u0131mlar\u0131n\u0131 ba\u015far\u0131yla tamamlad\u0131ktan sonra, RAG sistemimizin en heyecan verici k\u0131sm\u0131 olan Gemini entegrasyonuna ge\u00e7iyoruz. Bu a\u015famada, kullan\u0131c\u0131dan gelen bir sorguyu i\u015fleyecek, vekt\u00f6r veritaban\u0131m\u0131zdan en alakal\u0131 bilgileri geri \u00e7a\u011f\u0131racak ve son olarak bu bilgileri kullanarak Gemini&#8217;nin geli\u015fmi\u015f dil modelinden ak\u0131ll\u0131 ve ba\u011flamsal olarak do\u011fru bir yan\u0131t alaca\u011f\u0131z. Gemini, hem metin anlama hem de metin \u00fcretme konusundaki \u00fcst\u00fcn yetenekleriyle, RAG sistemimizin temelini olu\u015fturuyor.<\/p>\n<p>Sistem \u015fu \u015fekilde i\u015fler: Bir kullan\u0131c\u0131 bir soru sordu\u011funda (\u00f6rne\u011fin, &#8220;L-1A vizesi i\u00e7in y\u00f6netici veya m\u00fcd\u00fcr tan\u0131m\u0131 nedir?&#8221;), ilk olarak bu sorguyu Gemini&#8217;nin embedding modelini kullanarak bir vekt\u00f6re d\u00f6n\u00fc\u015ft\u00fcr\u00fcr\u00fcz. Bu sorgu vekt\u00f6r\u00fc daha sonra Pinecone indeksimizde bir benzerlik aramas\u0131 yapmak i\u00e7in kullan\u0131l\u0131r. Pinecone, sorgu vekt\u00f6r\u00fcne en yak\u0131n olan (yani anlamsal olarak en alakal\u0131) birka\u00e7 metin par\u00e7as\u0131n\u0131 (chunk) geri d\u00f6nd\u00fcr\u00fcr. Bu geri \u00e7a\u011fr\u0131lan par\u00e7alar, USCIS kararlar\u0131ndan al\u0131nm\u0131\u015f ilgili pasajlard\u0131r ve kullan\u0131c\u0131n\u0131n sorusuyla do\u011frudan ba\u011flant\u0131l\u0131 bilgileri i\u00e7erir.<\/p>\n<p>Geri \u00e7a\u011fr\u0131lan bu metin par\u00e7alar\u0131, do\u011frudan Gemini&#8217;ye g\u00f6nderilmez. Bunun yerine, bu par\u00e7alar\u0131 ve kullan\u0131c\u0131n\u0131n orijinal sorusunu i\u00e7eren \u00f6zel olarak haz\u0131rlanm\u0131\u015f bir &#8220;prompt&#8221; (y\u00f6nerge) olu\u015ftururuz. Prompt, Gemini&#8217;ye ne yapmas\u0131 gerekti\u011fini (\u00f6rne\u011fin, &#8220;A\u015fa\u011f\u0131daki ba\u011flam\u0131 kullanarak soruya yan\u0131t verin ve yan\u0131t\u0131n\u0131z\u0131 bu ba\u011flamla s\u0131n\u0131rlay\u0131n&#8221;) ve hangi bilgileri kullanmas\u0131 gerekti\u011fini a\u00e7\u0131k\u00e7a belirtir. Bu prompt, genellikle \u015fu yap\u0131y\u0131 takip eder:<\/p>\n<div class=\"code-container\">\n<pre><code>\n\"A\u015fa\u011f\u0131daki USCIS kararlar\u0131ndan al\u0131nan ba\u011flam\u0131 kullanarak \u015fu soruya yan\u0131t verin: [Kullan\u0131c\u0131n\u0131n Sorusu]\\n\\nBa\u011flam:\\n[Geri \u00c7a\u011fr\u0131lan Metin Par\u00e7as\u0131 1]\\n[Geri \u00c7a\u011fr\u0131lan Metin Par\u00e7as\u0131 2]\\n...\\n[Geri \u00c7a\u011fr\u0131lan Metin Par\u00e7as\u0131 N]\\n\\nYan\u0131t\u0131n\u0131z\u0131 sadece verilen ba\u011flamla s\u0131n\u0131rlay\u0131n ve ba\u011flamda olmayan bilgileri eklemeyin. Yan\u0131t\u0131n\u0131zda, m\u00fcmk\u00fcnse kaynak karara at\u0131fta bulunun.\"\n        <\/code><\/pre>\n<\/p><\/div>\n<p>    Bu prompt, Gemini&#8217;nin &#8220;hal\u00fcsinasyon&#8221; yapma riskini azalt\u0131r ve yan\u0131t\u0131n yaln\u0131zca sa\u011flanan kaynaklarla s\u0131n\u0131rl\u0131 kalmas\u0131n\u0131 sa\u011flar. Gemini&#8217;nin dil modeli, bu prompt&#8217;u i\u015fler ve geri \u00e7a\u011fr\u0131lan bilgilerden yola \u00e7\u0131karak kullan\u0131c\u0131 sorgusuna do\u011fal dilde, \u00f6zetlenmi\u015f ve do\u011fru bir yan\u0131t \u00fcretir. \u00dcretilen yan\u0131t, sadece bilgiyi sunmakla kalmaz, ayn\u0131 zamanda hukuki metinlerin karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 basitle\u015ftirerek anla\u015f\u0131l\u0131r bir formatta sunar. Bu entegrasyon sayesinde, RAG sistemimiz, y\u00fczlerce hukuki belge aras\u0131nda kaybolmak yerine, spesifik ve anlamsal olarak alakal\u0131 bilgilere h\u0131zl\u0131ca ula\u015fan ve bunlar\u0131 ak\u0131ll\u0131ca yorumlayan bir hukuk asistan\u0131na d\u00f6n\u00fc\u015f\u00fcr.<\/p>\n<h3>Gemini API Kullan\u0131m\u0131 ve Prompt M\u00fchendisli\u011fi \u0130pu\u00e7lar\u0131<\/h3>\n<p>Gemini API&#8217;sini RAG sistemimize entegre etmek, yapay zekan\u0131n g\u00fcc\u00fcn\u00fc hukuki ara\u015ft\u0131rmalar\u0131m\u0131za katman\u0131n anahtar\u0131d\u0131r. Gemini API&#8217;si, metin \u00fcretimi, metin anlama ve g\u00f6mme (embedding) gibi \u00e7e\u015fitli g\u00f6revler i\u00e7in g\u00fc\u00e7l\u00fc modeller sunar. Bu modelleri verimli bir \u015fekilde kullanmak i\u00e7in do\u011fru API \u00e7a\u011fr\u0131lar\u0131n\u0131 yapmak ve &#8220;prompt m\u00fchendisli\u011fi&#8221; konusunda ustala\u015fmak gerekir.<\/p>\n<p>Gemini API&#8217;si ile etkile\u015fim, genellikle Google Cloud Client Library for Python (<code>google-generativeai<\/code>) kullan\u0131larak ger\u00e7ekle\u015ftirilir. \u0130lk ad\u0131m, API anahtar\u0131n\u0131z\u0131 yap\u0131land\u0131rmak ve kullanaca\u011f\u0131n\u0131z modeli belirtmektir. Metin \u00fcretimi i\u00e7in genellikle <code>models\/gemini-pro<\/code> gibi bir model tercih edilirken, embedding&#8217;ler i\u00e7in <code>models\/embedding-001<\/code> kullan\u0131l\u0131r. Bir sorguya yan\u0131t \u00fcretmek i\u00e7in, geri \u00e7a\u011fr\u0131lan metin par\u00e7alar\u0131n\u0131 ve kullan\u0131c\u0131n\u0131n sorusunu i\u00e7eren bir prompt olu\u015fturulur ve bu prompt, Gemini modeline g\u00f6nderilir. \u00d6rne\u011fin:<\/p>\n<div class=\"code-container\">\n<pre><code>\nimport google.generativeai as genai\nimport os\n\nGEMINI_API_KEY = os.getenv(\"GEMINI_API_KEY\")\ngenai.configure(api_key=GEMINI_API_KEY)\n\ndef generate_rag_response(query, retrieved_chunks):\n    model = genai.GenerativeModel('gemini-pro')\n    \n    context = \"\\n\".join([chunk[\"text\"] for chunk in retrieved_chunks])\n    \n    prompt = f\"\"\"\n    A\u015fa\u011f\u0131daki USCIS kararlar\u0131ndan al\u0131nan ba\u011flam\u0131 kullanarak \u015fu soruya yan\u0131t verin: {query}\n    \n    Ba\u011flam:\n    {context}\n    \n    Yan\u0131t\u0131n\u0131z\u0131 sadece verilen ba\u011flamla s\u0131n\u0131rlay\u0131n ve ba\u011flamda olmayan bilgileri eklemeyin. \n    M\u00fcmk\u00fcnse, yan\u0131t\u0131n\u0131zda kaynak karara at\u0131fta bulunun (\u00f6rne\u011fin, \"Karar XXX'e g\u00f6re...\").\n    \"\"\"\n    \n    response = model.generate_content(prompt)\n    return response.text\n\n# \u00d6rnek kullan\u0131m\n# user_query = \"L-1A vizesi i\u00e7in y\u00f6netici veya m\u00fcd\u00fcr tan\u0131m\u0131 nedir?\"\n# retrieved_chunks = [\n#     {\"text\": \"Karar YYY, bir y\u00f6neticinin temel g\u00f6revlerinin \u015firket stratejilerini belirlemek oldu\u011funu belirtir.\", \"metadata\": {\"document_id\": \"YYY\"}},\n#     {\"text\": \"Karar ZZZ, bir m\u00fcd\u00fcr\u00fcn g\u00fcnl\u00fck operasyonlar\u0131 denetlemekten sorumlu oldu\u011funu a\u00e7\u0131klar.\", \"metadata\": {\"document_id\": \"ZZZ\"}}\n# ]\n# response_text = generate_rag_response(user_query, retrieved_chunks)\n# print(response_text)\n        <\/code><\/pre>\n<\/p><\/div>\n<p>Prompt m\u00fchendisli\u011fi, LLM&#8217;lerden en iyi yan\u0131tlar\u0131 alman\u0131n sanat\u0131d\u0131r. RAG sistemlerinde, prompt&#8217;unuzun yap\u0131s\u0131, LLM&#8217;nin geri \u00e7a\u011fr\u0131lan bilgiyi nas\u0131l yorumlayaca\u011f\u0131n\u0131 ve kullanaca\u011f\u0131n\u0131 do\u011frudan etkiler. \u0130\u015fte baz\u0131 ipu\u00e7lar\u0131:<\/p>\n<ul>\n<li><strong>A\u00e7\u0131k Talimatlar:<\/strong> LLM&#8217;den ne bekledi\u011finizi net bir \u015fekilde belirtin. &#8220;Yan\u0131t\u0131n\u0131z\u0131 sadece verilen ba\u011flamla s\u0131n\u0131rlay\u0131n&#8221; veya &#8220;\u00d6zetle&#8221; gibi ifadeler kullan\u0131n.<\/li>\n<li><strong>Ba\u011flam\u0131 Vurgulay\u0131n:<\/strong> Geri \u00e7a\u011fr\u0131lan metin par\u00e7alar\u0131n\u0131 prompt i\u00e7inde a\u00e7\u0131k\u00e7a &#8220;Ba\u011flam:&#8221; veya &#8220;Kaynak Metin:&#8221; gibi bir ba\u015fl\u0131k alt\u0131nda sunun.<\/li>\n<li><strong>Rol Tan\u0131mlama:<\/strong> LLM&#8217;ye bir rol atayabilirsiniz (\u00f6rne\u011fin, &#8220;Sen bir hukuk uzman\u0131s\u0131n&#8230;&#8221;). Bu, yan\u0131t\u0131n tonunu ve stilini etkileyebilir.<\/li>\n<li><strong>Format Belirleme:<\/strong> Yan\u0131t\u0131n belirli bir formatta olmas\u0131n\u0131 istiyorsan\u0131z (\u00f6rne\u011fin, madde i\u015faretli liste, \u00f6zet), bunu prompt&#8217;ta belirtin.<\/li>\n<li><strong>Negatif K\u0131s\u0131tlamalar:<\/strong> &#8220;Hal\u00fcsinasyon yapma&#8221;, &#8220;ba\u011flam d\u0131\u015f\u0131 bilgi ekleme&#8221; gibi negatif k\u0131s\u0131tlamalar, yan\u0131t\u0131n do\u011frulu\u011funu art\u0131r\u0131r.<\/li>\n<li><strong>Kaynak At\u0131f\u0131:<\/strong> LLM&#8217;den, yan\u0131t\u0131nda kulland\u0131\u011f\u0131 bilgilerin kaynaklar\u0131na (\u00f6rne\u011fin, karar numaras\u0131) at\u0131fta bulunmas\u0131n\u0131 isteyin. Bu, do\u011frulanabilirli\u011fi art\u0131r\u0131r.<\/li>\n<\/ul>\n<p>Prompt m\u00fchendisli\u011fi, deneme yan\u0131lma yoluyla geli\u015ftirilen bir beceridir. Farkl\u0131 prompt yap\u0131lar\u0131 ve ifadeleri deneyerek, Gemini&#8217;den en do\u011fru ve kullan\u0131\u015fl\u0131 yan\u0131tlar\u0131 alacak optimum stratejiyi bulabilirsiniz. Bu, RAG sisteminizin hukuki metinlerle etkile\u015fimini \u00e7ok daha verimli ve g\u00fcvenilir hale getirecektir.<\/p>\n<h2>RAG Sistemini Geli\u015ftirme ve \u0130yile\u015ftirme \u0130pu\u00e7lar\u0131<\/h2>\n<p>Bir RAG sistemi kurmak sadece ba\u015flang\u0131\u00e7t\u0131r; ger\u00e7ek potansiyeli, s\u00fcrekli iyile\u015ftirme ve geli\u015ftirme s\u00fcre\u00e7leriyle ortaya \u00e7\u0131kar. USCIS kararlar\u0131 gibi kritik hukuki belgeler \u00fczerinde \u00e7al\u0131\u015fan bir sistem i\u00e7in do\u011fruluk, h\u0131z ve g\u00fcvenilirlik her zaman en \u00fcst d\u00fczeyde olmal\u0131d\u0131r. \u0130\u015fte RAG sisteminizi daha da g\u00fc\u00e7lendirmek i\u00e7in uygulayabilece\u011finiz baz\u0131 ileri d\u00fczey ipu\u00e7lar\u0131 ve stratejiler:<\/p>\n<ol>\n<li><strong>Geli\u015fmi\u015f Chunking Stratejileri:<\/strong> Sabit boyutlu par\u00e7alamadan daha sofistike y\u00f6ntemlere ge\u00e7i\u015f yap\u0131n. \u00d6rne\u011fin, metnin anlamsal yap\u0131s\u0131n\u0131 daha iyi anlayan &#8220;recursive chunking&#8221; veya belge ba\u015fl\u0131klar\u0131n\u0131, alt ba\u015fl\u0131klar\u0131n\u0131 ve paragraflar\u0131n\u0131 dikkate alarak par\u00e7alar olu\u015fturan &#8220;semantic chunking&#8221; tekniklerini deneyin. Daha k\u00fc\u00e7\u00fck, ancak anlamsal olarak daha yo\u011fun par\u00e7alar, daha hassas geri \u00e7a\u011f\u0131rma sonu\u00e7lar\u0131 verebilir. Ayr\u0131ca, &#8220;parent document retrieval&#8221; gibi y\u00f6ntemlerle, k\u00fc\u00e7\u00fck par\u00e7alar\u0131 sorgulay\u0131p, ard\u0131ndan bu par\u00e7alar\u0131n ait oldu\u011fu daha b\u00fcy\u00fck &#8220;ebeveyn&#8221; belgeyi ba\u011flam olarak kullanabilirsiniz.<\/li>\n<li><strong>\u00c7ok Modelli G\u00f6mme (Multimodal Embeddings):<\/strong> E\u011fer veri setinizde sadece metin de\u011fil, ayn\u0131 zamanda g\u00f6rseller, tablolar veya diyagramlar gibi ba\u015fka medya t\u00fcrleri de varsa, Gemini&#8217;nin \u00e7ok modelli embedding yeteneklerini kullanmay\u0131 d\u00fc\u015f\u00fcn\u00fcn. Bu, sisteminizin farkl\u0131 veri t\u00fcrleri aras\u0131ndaki ili\u015fkileri anlamas\u0131na ve daha zengin bir ba\u011flam sunmas\u0131na olanak tan\u0131r. Hukuki belgelerde grafikler veya tablolar nadir olsa da, ileride farkl\u0131 veri t\u00fcrleriyle \u00e7al\u0131\u015fman\u0131z gerekebilir.<\/li>\n<li><strong>Sorgu Geni\u015fletme (Query Expansion):<\/strong> Kullan\u0131c\u0131 sorgular\u0131 bazen \u00e7ok k\u0131sa veya belirsiz olabilir. Sorgu geni\u015fletme teknikleri, orijinal sorguyu daha zengin ve kapsaml\u0131 hale getirerek vekt\u00f6r aramas\u0131n\u0131n do\u011frulu\u011funu art\u0131r\u0131r. \u00d6rne\u011fin, kullan\u0131c\u0131 sorgusunu bir LLM&#8217;e g\u00f6ndererek potansiyel e\u015f anlaml\u0131lar, ilgili kavramlar veya daha detayl\u0131 bir a\u00e7\u0131klama isteyebilirsiniz. Bu geni\u015fletilmi\u015f sorguyu daha sonra embedding olu\u015fturmak i\u00e7in kullanabilir veya birden fazla sorgu vekt\u00f6r\u00fcyle arama yapabilirsiniz.<\/li>\n<li><strong>Yeniden S\u0131ralama (Re-ranking) Modelleri:<\/strong> Vekt\u00f6r veritaban\u0131ndan geri \u00e7a\u011fr\u0131lan ilk N adet sonu\u00e7, her zaman en alakal\u0131 olanlar olmayabilir. Bir &#8220;re-ranking&#8221; modeli kullanarak, geri \u00e7a\u011fr\u0131lan par\u00e7alar\u0131 kullan\u0131c\u0131n\u0131n orijinal sorgusuyla olan ili\u015fkilerine g\u00f6re yeniden s\u0131ralayabilirsiniz. Bu modeller, genellikle daha k\u00fc\u00e7\u00fck ve daha odaklanm\u0131\u015f dil modelleridir ve geri \u00e7a\u011fr\u0131lan her bir par\u00e7a ile sorgu aras\u0131ndaki anlamsal ili\u015fkiyi daha derinlemesine de\u011ferlendirir. Bu, LLM&#8217;ye sunulan ba\u011flam\u0131n kalitesini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/li>\n<li><strong>Kullan\u0131c\u0131 Geri Bildirimi ve \u00d6\u011frenme:<\/strong> Sisteminizin performans\u0131n\u0131 s\u00fcrekli olarak izleyin ve kullan\u0131c\u0131 geri bildirimlerini toplay\u0131n. Hangi yan\u0131tlar\u0131n yararl\u0131 oldu\u011fu, hangilerinin olmad\u0131\u011f\u0131 gibi bilgiler, sisteminizi iyile\u015ftirmek i\u00e7in paha bi\u00e7ilmezdir. Bu geri bildirimleri kullanarak, embedding modelinizi, prompt stratejilerinizi veya hatta chunking y\u00f6ntemlerinizi ayarlayabilirsiniz. Aktif \u00f6\u011frenme d\u00f6ng\u00fcleri kurarak, sistemin zamanla kendi kendine daha iyi hale gelmesini sa\u011flayabilirsiniz.<\/li>\n<li><strong>G\u00fcvenilirlik ve \u015eeffafl\u0131k:<\/strong> \u00d6zellikle hukuk alan\u0131nda, \u00fcretilen yan\u0131tlar\u0131n g\u00fcvenilirli\u011fi ve \u015feffafl\u0131\u011f\u0131 esast\u0131r. RAG sisteminiz, her yan\u0131t\u0131n hangi kaynak belgelerden (USCIS kararlar\u0131, sayfa numaralar\u0131 vb.) geldi\u011fini a\u00e7\u0131k\u00e7a belirtmelidir. Bu, kullan\u0131c\u0131lar\u0131n bilgiyi do\u011frulamas\u0131n\u0131 ve sistemin \u015feffafl\u0131\u011f\u0131n\u0131 art\u0131r\u0131r. Ayr\u0131ca, yan\u0131tlarda belirsizlik veya yetersiz bilgi oldu\u011funda, bunu d\u00fcr\u00fcst\u00e7e belirten bir mekanizma da ekleyebilirsiniz.<\/li>\n<li><strong>\u00d6l\u00e7eklenebilirlik ve Performans Optimizasyonu:<\/strong> Veri setiniz b\u00fcy\u00fcd\u00fck\u00e7e, sisteminizin \u00f6l\u00e7eklenebilirli\u011fini ve performans\u0131n\u0131 g\u00f6zden ge\u00e7irin. Vekt\u00f6r veritaban\u0131 sa\u011flay\u0131c\u0131n\u0131z\u0131n (Pinecone gibi) \u00f6l\u00e7eklendirme se\u00e7eneklerini inceleyin. Embedding olu\u015fturma ve Pinecone&#8217;a y\u00fckleme s\u00fcre\u00e7lerini grupland\u0131rarak (batching) daha verimli hale getirin.<\/li>\n<\/ol>\n<p>Bu ipu\u00e7lar\u0131n\u0131 uygulayarak, RAG sisteminizi basit bir bilgi geri \u00e7a\u011f\u0131rma arac\u0131ndan, hukuki ara\u015ft\u0131rmalar\u0131n\u0131z i\u00e7in vazge\u00e7ilmez, ak\u0131ll\u0131 ve g\u00fcvenilir bir asistana d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz. S\u00fcrekli iterasyon ve iyile\u015ftirme, bu t\u00fcr yapay zeka sistemlerinin ba\u015far\u0131s\u0131n\u0131n anahtar\u0131d\u0131r.<\/p>\n<h2>Sonu\u00e7: Hukuki Ara\u015ft\u0131rmalarda Yeni Bir D\u00f6nem<\/h2>\n<p>Bu makalede, 100&#8217;den fazla USCIS \u0130dari Temyiz Ofisi (AAO) karar\u0131 \u00fczerinde, Google&#8217;\u0131n Gemini yapay zeka modelini kullanarak g\u00fc\u00e7l\u00fc bir Retrieval Augmented Generation (RAG) sistemi kurman\u0131n t\u00fcm a\u015famalar\u0131n\u0131 detayl\u0131 bir \u015fekilde inceledik. Hukuki metinlerin karma\u015f\u0131kl\u0131\u011f\u0131ndan, veri haz\u0131rl\u0131\u011f\u0131 ve chunking stratejilerine, vekt\u00f6r veritaban\u0131 se\u00e7imi ve embedding i\u015flemlerinden Gemini entegrasyonu ve prompt m\u00fchendisli\u011fine kadar her ad\u0131m\u0131 ele ald\u0131k. G\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi, RAG sistemleri, b\u00fcy\u00fck ve karma\u015f\u0131k belge koleksiyonlar\u0131ndan anlaml\u0131 ve do\u011fru bilgi \u00e7\u0131karman\u0131n anahtar\u0131n\u0131 sunuyor.<\/p>\n<p>Kurdu\u011fumuz bu sistem, geleneksel anahtar kelime tabanl\u0131 arama motorlar\u0131n\u0131n \u00f6tesine ge\u00e7erek, anlamsal benzerlik ve ba\u011flam\u0131 anlama yetene\u011fiyle hukuki ara\u015ft\u0131rmalarda devrim yaratma potansiyeli ta\u015f\u0131yor. Avukatlar, hukuk ara\u015ft\u0131rmac\u0131lar\u0131 ve g\u00f6\u00e7menlik uzmanlar\u0131 i\u00e7in, saatler s\u00fcren manuel belge inceleme s\u00fcre\u00e7lerini dakikalara indirgeyerek, daha stratejik ve verimli \u00e7al\u0131\u015fman\u0131n kap\u0131lar\u0131n\u0131 aral\u0131yor. Gemini&#8217;nin g\u00fc\u00e7l\u00fc dil modelini, spesifik ve g\u00fcncel bir bilgi taban\u0131yla birle\u015ftirerek, &#8220;hal\u00fcsinasyon&#8221; riskini minimize ederken, do\u011frulanabilir ve g\u00fcvenilir yan\u0131tlar elde etmeyi ba\u015fard\u0131k. Bu, \u00f6zellikle hata pay\u0131n\u0131n \u00e7ok d\u00fc\u015f\u00fck olmas\u0131 gereken hukuk gibi alanlarda kritik bir avantajd\u0131r.<\/p>\n<p>Ancak, bir RAG sisteminin in\u015fas\u0131 tek seferlik bir proje de\u011fildir. S\u00fcrekli iyile\u015ftirme, yeni verilerin entegrasyonu ve geli\u015fmi\u015f tekniklerin uygulanmas\u0131, sistemin uzun vadeli ba\u015far\u0131s\u0131 i\u00e7in esast\u0131r. Geli\u015fmi\u015f chunking stratejileri, yeniden s\u0131ralama modelleri ve kullan\u0131c\u0131 geri bildirimlerini dikkate alarak sisteminizi daha da optimize edebilirsiniz. Hukuki ara\u015ft\u0131rmalar\u0131n gelece\u011fi, yapay zekan\u0131n bu t\u00fcr ak\u0131ll\u0131 ve destekleyici sistemlerle entegrasyonunda yat\u0131yor. Bu RAG sistemi, sadece USCIS kararlar\u0131 i\u00e7in de\u011fil, herhangi bir geni\u015f ve karma\u015f\u0131k belge koleksiyonu \u00fczerinde bilgi edinme ve anlama s\u00fcre\u00e7lerini d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in bir model te\u015fkil etmektedir. Bu teknoloji, hukuki alanda bilgiye eri\u015fimi demokratikle\u015ftirerek, daha h\u0131zl\u0131 ve bilin\u00e7li kararlar al\u0131nmas\u0131na yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li>\n            <strong>RAG sistemi kurmak i\u00e7in hangi teknik bilgiye sahip olmam gerekiyor?<\/strong><\/p>\n<p>Temel Python programlama bilgisi, veri yap\u0131lar\u0131, API&#8217;lerle \u00e7al\u0131\u015fma deneyimi ve do\u011fal dil i\u015fleme (NLP) kavramlar\u0131na a\u015final\u0131k faydal\u0131 olacakt\u0131r. Vekt\u00f6r veritabanlar\u0131 ve b\u00fcy\u00fck dil modelleri hakk\u0131nda genel bir anlay\u0131\u015f da s\u00fcreci kolayla\u015ft\u0131racakt\u0131r. Ancak ad\u0131m ad\u0131m rehberler ve k\u00fct\u00fcphane dok\u00fcmantasyonlar\u0131 ile bu konularda kendinizi geli\u015ftirebilirsiniz.<\/p>\n<\/li>\n<li>\n            <strong>USCIS kararlar\u0131 d\u0131\u015f\u0131ndaki hukuki belgeler i\u00e7in de bu sistemi kullanabilir miyim?<\/strong><\/p>\n<p>Kesinlikle! Bu makalede a\u00e7\u0131klanan RAG mimarisi, USCIS kararlar\u0131 gibi belirli bir hukuki belge t\u00fcr\u00fcne \u00f6zg\u00fc de\u011fildir. Herhangi bir yasal mevzuat, mahkeme kararlar\u0131, \u015firket politikalar\u0131, s\u00f6zle\u015fmeler veya di\u011fer metin tabanl\u0131 belgeler \u00fczerinde benzer bir sistemi uygulayabilirsiniz. \u00d6nemli olan, veri haz\u0131rl\u0131\u011f\u0131 ve chunking ad\u0131mlar\u0131n\u0131 belge t\u00fcr\u00fcn\u00fcze g\u00f6re uyarlamakt\u0131r.<\/p>\n<\/li>\n<li>\n            <strong>Gemini yerine ba\u015fka bir b\u00fcy\u00fck dil modeli (LLM) kullanabilir miyim?<\/strong><\/p>\n<p>Evet, Gemini yerine OpenAI&#8217;nin GPT modelleri, Anthropic&#8217;in Claude&#8217;u veya a\u00e7\u0131k kaynakl\u0131 modeller gibi ba\u015fka LLM&#8217;leri de entegre edebilirsiniz. Her modelin kendine \u00f6zg\u00fc yetenekleri ve API&#8217;leri vard\u0131r, bu nedenle entegrasyon ad\u0131mlar\u0131nda ilgili modelin dok\u00fcmantasyonuna ba\u015fvurman\u0131z gerekecektir. Temel RAG prensipleri ayn\u0131 kalacakt\u0131r.<\/p>\n<\/li>\n<li>\n            <strong>RAG sisteminin do\u011frulu\u011funu nas\u0131l test edebilirim?<\/strong><\/p>\n<p>Do\u011frulu\u011fu test etmek i\u00e7in, sisteminize daha \u00f6nce yan\u0131tlar\u0131n\u0131 bildi\u011finiz sorular\u0131 sorarak \u00e7\u0131kt\u0131y\u0131 manuel olarak de\u011ferlendirebilirsiniz. Ayr\u0131ca, belirli bir do\u011fruluk e\u015fi\u011fi belirleyerek (\u00f6rne\u011fin, yan\u0131t\u0131n %X oran\u0131nda do\u011fru ve ba\u011flamda olmas\u0131), bir test veri seti \u00fczerinde otomatik de\u011ferlendirmeler yapabilirsiniz. Yan\u0131t\u0131n kaynaklara at\u0131fta bulunup bulunmad\u0131\u011f\u0131n\u0131 ve bu kaynaklar\u0131n ger\u00e7ekten ilgili olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek de \u00f6nemlidir.<\/p>\n<\/li>\n<li>\n            <strong>Bu sistemin maliyeti nedir?<\/strong><\/p>\n<p>Maliyet, kulland\u0131\u011f\u0131n\u0131z hizmetlere (Gemini API, Pinecone gibi y\u00f6netilen vekt\u00f6r veritabanlar\u0131), veri hacminize ve kullan\u0131m s\u0131kl\u0131\u011f\u0131n\u0131za g\u00f6re de\u011fi\u015fir. Genellikle, API \u00e7a\u011fr\u0131lar\u0131 (embedding ve LLM \u00e7a\u011fr\u0131lar\u0131) ve vekt\u00f6r veritaban\u0131 depolama\/sorgulama i\u00e7in bir maliyet olu\u015fur. Bir\u00e7ok sa\u011flay\u0131c\u0131, d\u00fc\u015f\u00fck kullan\u0131m seviyeleri i\u00e7in \u00fccretsiz katmanlar veya deneme s\u00fcr\u00fcmleri sunar, bu da ba\u015flang\u0131\u00e7 i\u00e7in iyi bir f\u0131rsatt\u0131r.<\/p>\n<\/li>\n<\/ul>\n<p>#RAGSistemi #GeminiAI #USCIS #YapayZeka #HukukiTeknoloji #Do\u011falDil\u0130\u015fleme #Vekt\u00f6rVeritaban\u0131<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/gemini-rag-legal-decisions\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/gemini-rag-legal-decisions<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"Hukuki metinlerin karma\u015f\u0131k d\u00fcnyas\u0131nda, do\u011fru bilgiye h\u0131zl\u0131ca ula\u015fmak, hem avukatlar hem de ara\u015ft\u0131rmac\u0131lar i\u00e7in hayati \u00f6nem ta\u015f\u0131r.","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-42906","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>Hukuki Kararlar\u0131 Anlamak: Gemini ile 100&#039;den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur? - 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\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Hukuki Kararlar\u0131 Anlamak: Gemini ile 100&#039;den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur?\" \/>\n<meta property=\"og:description\" content=\"Hukuki metinlerin karma\u015f\u0131k d\u00fcnyas\u0131nda, do\u011fru bilgiye h\u0131zl\u0131ca ula\u015fmak, hem avukatlar hem de ara\u015ft\u0131rmac\u0131lar i\u00e7in hayati \u00f6nem ta\u015f\u0131r.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-28T18:08:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-28T18:09:20+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\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Hukuki Kararlar\u0131 Anlamak: Gemini ile 100&#8217;den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur?\",\"datePublished\":\"2026-06-28T18:08:49+00:00\",\"dateModified\":\"2026-06-28T18:09:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/\"},\"wordCount\":5245,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/\",\"name\":\"Hukuki Kararlar\u0131 Anlamak: Gemini ile 100'den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-06-28T18:08:49+00:00\",\"dateModified\":\"2026-06-28T18:09:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hukuki Kararlar\u0131 Anlamak: Gemini ile 100&#8217;den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur?\"}]},{\"@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":"Hukuki Kararlar\u0131 Anlamak: Gemini ile 100'den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur? - 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\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/","og_locale":"tr_TR","og_type":"article","og_title":"Hukuki Kararlar\u0131 Anlamak: Gemini ile 100'den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur?","og_description":"Hukuki metinlerin karma\u015f\u0131k d\u00fcnyas\u0131nda, do\u011fru bilgiye h\u0131zl\u0131ca ula\u015fmak, hem avukatlar hem de ara\u015ft\u0131rmac\u0131lar i\u00e7in hayati \u00f6nem ta\u015f\u0131r.","og_url":"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-06-28T18:08:49+00:00","article_modified_time":"2026-06-28T18:09:20+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\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Hukuki Kararlar\u0131 Anlamak: Gemini ile 100&#8217;den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur?","datePublished":"2026-06-28T18:08:49+00:00","dateModified":"2026-06-28T18:09:20+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/"},"wordCount":5245,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/","url":"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/","name":"Hukuki Kararlar\u0131 Anlamak: Gemini ile 100'den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-06-28T18:08:49+00:00","dateModified":"2026-06-28T18:09:20+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/hukuki-kararlari-anlamak-gemini-ile-100den-fazla-uscis-temyiz-karari-uzerine-bir-rag-sistemi-nasil-kurulur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Hukuki Kararlar\u0131 Anlamak: Gemini ile 100&#8217;den Fazla USCIS Temyiz Karar\u0131 \u00dczerine Bir RAG Sistemi Nas\u0131l Kurulur?"}]},{"@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\/42906","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=42906"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/42906\/revisions"}],"predecessor-version":[{"id":42907,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/42906\/revisions\/42907"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=42906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=42906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=42906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}