[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ai-engineer\u002Frag-generation-context":4,"config":193},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":97,"samples":108},"ai-engineer","AI Engineer","","rag-generation-context","Rag Generation Context","tr",75,2025,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,85,88,91,94],{"key":19,"name":20,"count":11},"agents-tool-use","Agents Tool Use",{"key":22,"name":23,"count":11},"aimlops-deployment-strategies-ml","Aimlops Deployment Strategies Ml",{"key":25,"name":26,"count":11},"aimlops-experiment-tracking-reproducibility","Aimlops Experiment Tracking Reproducibility",{"key":28,"name":29,"count":11},"aimlops-feature-store-data-versioning","Aimlops Feature Store Data Versioning",{"key":31,"name":32,"count":11},"aimlops-ml-cicd-pipelines","Aimlops Ml Cicd Pipelines",{"key":34,"name":35,"count":11},"aimlops-model-monitoring-drift-detection","Aimlops Model Monitoring Drift Detection",{"key":37,"name":38,"count":11},"aimlops-model-versioning-registry","Aimlops Model Versioning Registry",{"key":40,"name":41,"count":11},"aipy-async-concurrency-ml-serving","Aipy Async Concurrency Ml Serving",{"key":43,"name":44,"count":11},"aipy-data-pipeline-dataloader","Aipy Data Pipeline Dataloader",{"key":46,"name":47,"count":11},"aipy-gpu-memory-management","Aipy Gpu Memory Management",{"key":49,"name":50,"count":11},"aipy-numpy-vectorization-broadcasting","Aipy Numpy Vectorization Broadcasting",{"key":52,"name":53,"count":11},"aipy-python-ml-packaging-environments","Aipy Python Ml Packaging Environments",{"key":55,"name":56,"count":11},"aipy-tensor-ops-autograd","Aipy Tensor Ops Autograd",{"key":58,"name":59,"count":11},"embeddings-vector-search","Embeddings Vector Search",{"key":61,"name":62,"count":11},"evaluation-testing","Evaluation Testing",{"key":64,"name":65,"count":11},"fine-tuning-adaptation","Fine Tuning Adaptation",{"key":67,"name":68,"count":11},"inference-serving","Inference Serving",{"key":70,"name":71,"count":11},"llm-fundamentals","Llm Fundamentals",{"key":73,"name":74,"count":11},"prompt-engineering","Prompt Engineering",{"key":76,"name":77,"count":11},"rag-chunking-indexing","Rag Chunking Indexing",{"key":79,"name":80,"count":11},"rag-embeddings-similarity","Rag Embeddings Similarity",{"key":82,"name":83,"count":11},"rag-evaluation","Rag Evaluation",{"key":8,"name":9,"count":11},{"key":86,"name":87,"count":11},"rag-reranking-fusion","Rag Reranking Fusion",{"key":89,"name":90,"count":11},"rag-retrieval","Rag Retrieval",{"key":92,"name":93,"count":11},"rag-retrieval-search","Rag Retrieval Search",{"key":95,"name":96,"count":11},"safety-guardrails","Safety Guardrails",[98,102,105],{"key":99,"name":100,"count":101},"llm-rag","LLM\u002FRAG",450,{"key":103,"name":104,"count":101},"mlops","MLOps",{"key":106,"name":107,"count":101},"python","Python",[109,127,140,154,167,180],{"id":110,"topic":9,"difficulty":111,"body":112,"options":113,"correct_key":115,"explanation":126},"019f667f-d986-7506-966c-c8c614ed867e",1,"Bir RAG pipeline'ında retrieval, aday chunk'ları seçer; ancak zaten retrieve edilmiş bu chunk'ların hangi sırayla, nasıl filtrelenip biçimlendirilerek modele ulaşacağına ayrı bir adım karar verir. Bu adıma genellikle ne denir?",[114,117,120,123],{"key":115,"text":116},"a","Context assembly (bağlam derleme)",{"key":118,"text":119},"b","Retrieval yeniden puanlama",{"key":121,"text":122},"c","Query expansion (sorgu genişletme)",{"key":124,"text":125},"d","Index oluşturma","Context assembly, retrieval ile generation arasında asıl prompt'u kuran adımdır: chunk sırasını, filtrelemeyi ve biçimlendirmeyi belirler. Retrieval yeniden puanlama arama sırasında adayları yeniden sıralar; query expansion kullanıcının sorgusunu retriever için yeniden yazar; index oluşturma ise herhangi bir sorgu gelmeden önce, embedding'ler saklanırken yapılır.",{"id":128,"topic":9,"difficulty":111,"body":129,"options":130,"correct_key":118,"explanation":139},"019f667f-d986-7efd-91ed-a39c1274f878","```python\nimport tiktoken\nenc = tiktoken.get_encoding(\"cl100k_base\")\ninstruction = (\n    \"Answer the user's question using only the information in the \"\n    \"context below. If the context does not contain the answer, \"\n    \"say you don't know.\"\n)\nprint(len(enc.encode(instruction)))\n```\nBu ne yazdırır?",[131,133,135,137],{"key":115,"text":132},"21",{"key":118,"text":134},"29",{"key":121,"text":136},"35",{"key":124,"text":138},"44","Bu talimat metnini yukarıdaki tokenizer ile encode etmek 29 token verir (snippet çalıştırılarak doğrulandı). Herhangi bir retrieve edilmiş chunk eklenmeden önce, bu sabit talimat maliyeti soyut context bütçesinden düşülmelidir.",{"id":141,"topic":9,"difficulty":142,"body":143,"options":144,"correct_key":121,"explanation":153},"019f667f-d987-77ea-92d0-ac4857a3110b",2,"Yukarıdaki sistem talimatı 29 token, kullanıcı sorgusu 10 token, retrieve edilen üç chunk sırasıyla 26, 28 ve 28 token tutuyor (hepsi aynı tokenizer ile sayıldı). Bu istek için soyut context bütçesi 120 token ise, üç chunk da eklendiğinde ne olur?",[145,147,149,151],{"key":115,"text":146},"Hepsi sığar, 1 token pay kalır",{"key":118,"text":148},"Hepsi tam olarak 120 token'da sığar",{"key":121,"text":150},"Sığmaz — toplam 121 token, bütçeyi 1 token aşıyor",{"key":124,"text":152},"Sığmaz — toplam 132 token, bütçeyi 12 token aşıyor","29 + 10 + 26 + 28 + 28 = 121, bu da 120 token'lık bütçeyi 1 token aşıyor demektir. Bu içeriğin sığması için en az bir chunk (ya da sorgu\u002Ftalimat) kısaltılmalı ya da bir chunk düşürülmelidir.",{"id":155,"topic":9,"difficulty":142,"body":156,"options":157,"correct_key":124,"explanation":166},"019f667f-d988-70b0-be4e-d5b16cf7d376","Aynı sabit yükle (talimat 29 + sorgu 10 = 39 token) ve 120 bütçeyle, chunk'lar sırayla tek tek eklenir (26, 28, 28 token) ve bir chunk yalnızca ekleme sonrası toplam bütçe içinde kalıyorsa tutulur. Üç chunk'tan kaçı sonunda dahil edilir ve nihai çalışan toplam nedir?",[158,160,162,164],{"key":115,"text":159},"3 chunk, 121 token",{"key":118,"text":161},"1 chunk, 65 token",{"key":121,"text":163},"0 chunk, 39 token",{"key":124,"text":165},"2 chunk, 93 token","39 + 26 = 65 (sığar), 65 + 28 = 93 (sığar), 93 + 28 = 121 (120'yi aşar, bu yüzden bu chunk düşürülür ve döngü durur). Yani 2 chunk dahil edilir, nihai çalışan toplam 93 token'dır.",{"id":168,"topic":9,"difficulty":111,"body":169,"options":170,"correct_key":115,"explanation":179},"019f667f-d988-7834-a095-ff47b3c8e092","Bir context-assembly döngüsü token bütçesine yaklaşmış durumda ve sıradaki aday chunk yalnızca kısmen sığacak. Standart uygulama nedir?",[171,173,175,177],{"key":115,"text":172},"Chunk'ı tamamen düşür, yalnızca bütün chunk'ları tut",{"key":118,"text":174},"Kalan bütçeyi doldurmak için chunk'ı cümle ortasından kes",{"key":121,"text":176},"Eklemeden önce chunk'ı anlık olarak özetle",{"key":124,"text":178},"Kalan bütçeyi tüm chunk'lara eşit paylaştır","Bir chunk'ı cümle ortasından kesmek, tam da ihtiyaç duyulan bilgiyi kesip anlamsız bir parça eklemek riskini taşır. Temel context assembly'de standart yaklaşım, ya bütün chunk ya hiç ilkesidir: tam sığmayan chunk kesilmez, atlanır.",{"id":181,"topic":9,"difficulty":142,"body":182,"options":183,"correct_key":118,"explanation":192},"019f667f-d989-70d9-8ac0-6b68312e1105","Bir RAG sistemi, hepsi doğru şekilde alakalı olan 7 chunk'ı prompt'a derliyor. En önemli tek chunk, 4. pozisyonda (ortada) yer alıyor. Modelin cevabı bu chunk'taki bilgiyi kaçırıyor. En olası açıklama nedir?",[184,186,188,190],{"key":115,"text":185},"Chunk'ın embedding'i retrieval sırasında bozulmuştur",{"key":118,"text":187},"Uzun bir context'te pozisyon, o chunk'a verilen dikkati azaltmıştır",{"key":121,"text":189},"Chunk chunk-başına token limitini aşmış ve sessizce düşürülmüştür",{"key":124,"text":191},"Retrieval o chunk'ı hiç bulamamıştır","Bu, \"lost in the middle\" (ortada kaybolma) etkisidir: hem retrieval hem assembly doğru çalışmıştır (chunk prompt'ta mevcuttur), ama uzun bir context'in ortasındaki konumu onun cevapta kullanılma olasılığını düşürür — bu bir retrieval hatası değil, dikkat\u002Fpozisyon sorunudur.",{"fields":194,"seniorities":372,"interview_shapes":373,"locales":378,"oauth":380,"question_count":383,"coach_enabled":384,"jd_match_enabled":384},[195,218,238,255,279,286,305,324,346,353,359,366],{"key":196,"name_tr":197,"name_en":197,"sort":111,"specializations":198},"backend","Backend",[199,202,205,206,209,212,215],{"key":200,"name":201,"field":196},"general","Genel",{"key":203,"name":204,"field":196},"go","Go",{"key":106,"name":107,"field":196},{"key":207,"name":208,"field":196},"java","Java",{"key":210,"name":211,"field":196},"csharp","C#\u002F.NET",{"key":213,"name":214,"field":196},"nodejs","Node.js",{"key":216,"name":217,"field":196},"php","PHP",{"key":219,"name_tr":220,"name_en":220,"sort":142,"specializations":221},"frontend","Frontend",[222,223,226,229,232,235],{"key":200,"name":201,"field":219},{"key":224,"name":225,"field":219},"javascript","JavaScript",{"key":227,"name":228,"field":219},"typescript","TypeScript",{"key":230,"name":231,"field":219},"react","React",{"key":233,"name":234,"field":219},"vue","Vue",{"key":236,"name":237,"field":219},"angular","Angular",{"key":239,"name_tr":240,"name_en":240,"sort":241,"specializations":242},"fullstack","Fullstack",3,[243,244,245,246,247,248,249,250,251,252,253,254],{"key":200,"name":201,"field":239},{"key":203,"name":204,"field":196},{"key":106,"name":107,"field":196},{"key":207,"name":208,"field":196},{"key":210,"name":211,"field":196},{"key":213,"name":214,"field":196},{"key":216,"name":217,"field":196},{"key":224,"name":225,"field":219},{"key":227,"name":228,"field":219},{"key":230,"name":231,"field":219},{"key":233,"name":234,"field":219},{"key":236,"name":237,"field":219},{"key":256,"name_tr":257,"name_en":257,"sort":258,"specializations":259},"devops-cloud","DevOps \u002F Cloud",4,[260,261,264,267,270,273,276],{"key":200,"name":201,"field":256},{"key":262,"name":263,"field":256},"aws","AWS",{"key":265,"name":266,"field":256},"gcp","GCP",{"key":268,"name":269,"field":256},"azure","Azure",{"key":271,"name":272,"field":256},"kubernetes","Kubernetes",{"key":274,"name":275,"field":256},"terraform","Terraform",{"key":277,"name":278,"field":256},"linux","Linux",{"key":5,"name_tr":6,"name_en":6,"sort":280,"specializations":281},5,[282,283,284,285],{"key":200,"name":201,"field":5},{"key":106,"name":107,"field":5},{"key":99,"name":100,"field":5},{"key":103,"name":104,"field":5},{"key":287,"name_tr":288,"name_en":289,"sort":290,"specializations":291},"database","Veritabanı","Database",6,[292,293,296,299,302],{"key":200,"name":201,"field":287},{"key":294,"name":295,"field":287},"postgresql","PostgreSQL",{"key":297,"name":298,"field":287},"mysql","MySQL",{"key":300,"name":301,"field":287},"mongodb","MongoDB",{"key":303,"name":304,"field":287},"redis","Redis",{"key":306,"name_tr":307,"name_en":308,"sort":309,"specializations":310},"mobile","Mobil","Mobile",7,[311,312,315,318,321],{"key":200,"name":201,"field":306},{"key":313,"name":314,"field":306},"ios-swift","iOS (Swift)",{"key":316,"name":317,"field":306},"android-kotlin","Android (Kotlin)",{"key":319,"name":320,"field":306},"flutter","Flutter",{"key":322,"name":323,"field":306},"react-native","React Native",{"key":325,"name_tr":326,"name_en":327,"sort":328,"specializations":329},"security","Güvenlik","Security",8,[330,331,334,337,340,343],{"key":200,"name":201,"field":325},{"key":332,"name":333,"field":325},"appsec","AppSec",{"key":335,"name":336,"field":325},"offensive-pentest","Offensive \u002F Pentest",{"key":338,"name":339,"field":325},"cloud-security","Cloud Security",{"key":341,"name":342,"field":325},"devsecops","DevSecOps",{"key":344,"name":345,"field":325},"blue-team-incident","Blue Team \u002F Incident",{"key":347,"name_tr":348,"name_en":349,"sort":350,"specializations":351},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[352],{"key":200,"name":201,"field":347},{"key":354,"name_tr":355,"name_en":355,"sort":356,"specializations":357},"data-engineer","Data Engineer",10,[358],{"key":200,"name":201,"field":354},{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"game-dev","Oyun Geliştirme","Game Development",11,[365],{"key":200,"name":201,"field":360},{"key":367,"name_tr":368,"name_en":368,"sort":369,"specializations":370},"ml-engineer","ML Engineer",12,[371],{"key":200,"name":201,"field":367},[14,15,16],{"junior":374,"mid":376,"senior":377},{"questions":375,"median_sec":3},20,{"questions":375,"median_sec":3},{"questions":375,"median_sec":3},[10,379],"en",[381,382],"google","github",21750,true]