[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ai-engineer":4,"config":192},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":7,"topic_name":7,"spec_key":7,"spec_name":7,"locale":8,"cell_total":9,"field_total":9,"seniorities":10,"topics":14,"specs":97,"samples":108},"ai-engineer","AI Engineer","","tr",2025,[11,12,13],"junior","mid","senior",[15,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94],{"key":16,"name":17,"count":18},"agents-tool-use","Agents Tool Use",75,{"key":20,"name":21,"count":18},"aimlops-deployment-strategies-ml","Aimlops Deployment Strategies Ml",{"key":23,"name":24,"count":18},"aimlops-experiment-tracking-reproducibility","Aimlops Experiment Tracking Reproducibility",{"key":26,"name":27,"count":18},"aimlops-feature-store-data-versioning","Aimlops Feature Store Data Versioning",{"key":29,"name":30,"count":18},"aimlops-ml-cicd-pipelines","Aimlops Ml Cicd Pipelines",{"key":32,"name":33,"count":18},"aimlops-model-monitoring-drift-detection","Aimlops Model Monitoring Drift Detection",{"key":35,"name":36,"count":18},"aimlops-model-versioning-registry","Aimlops Model Versioning Registry",{"key":38,"name":39,"count":18},"aipy-async-concurrency-ml-serving","Aipy Async Concurrency Ml Serving",{"key":41,"name":42,"count":18},"aipy-data-pipeline-dataloader","Aipy Data Pipeline Dataloader",{"key":44,"name":45,"count":18},"aipy-gpu-memory-management","Aipy Gpu Memory Management",{"key":47,"name":48,"count":18},"aipy-numpy-vectorization-broadcasting","Aipy Numpy Vectorization Broadcasting",{"key":50,"name":51,"count":18},"aipy-python-ml-packaging-environments","Aipy Python Ml Packaging Environments",{"key":53,"name":54,"count":18},"aipy-tensor-ops-autograd","Aipy Tensor Ops Autograd",{"key":56,"name":57,"count":18},"embeddings-vector-search","Embeddings Vector Search",{"key":59,"name":60,"count":18},"evaluation-testing","Evaluation Testing",{"key":62,"name":63,"count":18},"fine-tuning-adaptation","Fine Tuning Adaptation",{"key":65,"name":66,"count":18},"inference-serving","Inference Serving",{"key":68,"name":69,"count":18},"llm-fundamentals","Llm Fundamentals",{"key":71,"name":72,"count":18},"prompt-engineering","Prompt Engineering",{"key":74,"name":75,"count":18},"rag-chunking-indexing","Rag Chunking Indexing",{"key":77,"name":78,"count":18},"rag-embeddings-similarity","Rag Embeddings Similarity",{"key":80,"name":81,"count":18},"rag-evaluation","Rag Evaluation",{"key":83,"name":84,"count":18},"rag-generation-context","Rag Generation Context",{"key":86,"name":87,"count":18},"rag-reranking-fusion","Rag Reranking Fusion",{"key":89,"name":90,"count":18},"rag-retrieval","Rag Retrieval",{"key":92,"name":93,"count":18},"rag-retrieval-search","Rag Retrieval Search",{"key":95,"name":96,"count":18},"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,153,166,179],{"id":110,"topic":17,"difficulty":111,"body":112,"options":113,"correct_key":115,"explanation":126},"019f5912-4546-7783-9e15-5f01a65b3ed6",1,"Bir LLM, konuşma sırasında 'tool calling' (araç çağırma) yaptığında gerçekte ne olur?",[114,117,120,123],{"key":115,"text":116},"a","Model, hangi aracı kullanmak istediğini belirten yapılandırılmış bir istek (araç adı + argümanlar) üretir; bu aracı asıl çalıştıran ve sonucu geri veren uygulamadır.",{"key":118,"text":119},"b","Model, aracın kodunu kendi çalışma zamanında doğrudan çalıştırır ve sonucu konuşmaya döndürür.",{"key":121,"text":122},"c","Model konuşmayı duraklatır ve sağlayıcının sunucularında aracı otomatik olarak, uygulamadan hiçbir kod olmadan çalıştırır.",{"key":124,"text":125},"d","Model, aracın network endpoint'ini uygulamayı hiç devreye sokmadan kendisi çağırır.","Model kendisi kod çalıştırmaz veya network çağrısı yapmaz — sadece yapılandırılmış bir niyet (araç adı + argümanlar) üretir. Bu niyeti parse edip gerçek aracı çalıştırmak ve sonucu geri beslemek uygulamanın sorumluluğundadır. b, c ve d şıkları modele sahip olmadığı bir execution yeteneği atfediyor.",{"id":128,"topic":17,"difficulty":111,"body":129,"options":130,"correct_key":118,"explanation":139},"019f5912-4555-7d4e-ae51-e5bd7e57a22a","Bir aracın (tool) şemasındaki açıklama metni, tool calling için neden önemlidir?",[131,133,135,137],{"key":115,"text":132},"Sadece insanlar için dokümantasyon amaçlıdır ve modelin gerçek davranışına hiçbir etkisi yoktur, çünkü model hangi aracı çağıracağına salt fonksiyonun iç implementasyon koduna bakarak karar verir, şema metnine değil.",{"key":118,"text":134},"Model, bir aracı ne zaman ve nasıl çağıracağına karar verirken adını, açıklamasını ve parametrelerini kullanır; bu yüzden belirsiz bir açıklama yanlış çağrı ihtimalini artırır.",{"key":121,"text":136},"Araçların sunucuda hangi sırayla çalışacağını belirler, modelin isteğinden bağımsız olarak.",{"key":124,"text":138},"Sadece JSON döndüren araçlar için gereklidir; düz metin döndüren araçların açıklamaya ihtiyacı yoktur.","Şema (ad, açıklama, parametre tanımları) modelin bir aracın ne işe yaradığı ve ne zaman kullanılacağı hakkındaki tek bilgi kaynağıdır. Zayıf bir açıklama, modelin yanlış aracı seçmesine veya argümanları hatalı doldurmasına yol açar. Salt dokümantasyon değil, doğrudan model davranışını şekillendiren bir girdidir.",{"id":141,"topic":17,"difficulty":111,"body":142,"options":143,"correct_key":121,"explanation":152},"019f5912-4557-79f8-b874-f269ad7328a5","Klasik 'agent loop' (ajan döngüsü) örüntüsünde, bir iterasyon içindeki adımların tipik sırası nedir?",[144,146,148,150],{"key":115,"text":145},"Önce eylem yap, sonra düşün ve sonucu hiç incelemeden tekrarla.",{"key":118,"text":147},"Ortamı en baştan yalnızca bir kez gözlemle, sonra daha sonraki hiçbir gözlemin ne gösterdiğine bakmaksızın o ilk eylemi tekrarlamaya devam et.",{"key":121,"text":149},"Sıradaki adımı düşün, bir tool call gibi bir eylem yap, sonucu gözlemle ve bu gözlemi sıradaki adıma karar vermek için kullan.",{"key":124,"text":151},"Mevcut tüm araçları aynı anda çağır, sonra hangi sonucun tutulacağını düşün.","Standart agent loop: düşün → eylem yap → gözlemle → tekrarla. Model sıradaki adımı düşünür, bir eylem gerçekleştirir, sonucu (gözlemi) alır ve bunu bir sonraki muhakemesine dahil eder. a, b ve d şıkları gözlemden muhakemeye geri beslemeyi atlıyor ya da sırayı bozuyor.",{"id":154,"topic":17,"difficulty":111,"body":155,"options":156,"correct_key":115,"explanation":165},"019f5912-4559-715b-92e9-bff3f1308cf6","LLM ajanlarındaki ReAct örüntüsü neyi ifade eder?",[157,159,161,163],{"key":115,"text":158},"Açık muhakeme adımlarını (düşünceleri) tool call gibi eylemlerle iç içe örmek; her eylem muhakemeyle yönlendirilir, her sonuç da onu günceller.",{"key":118,"text":160},"Bazı frontend uygulamalarının bir ajanın sohbet arayüzünü göstermek için kullandığı bir UI render framework'ü; modelin kendi muhakemesi ya da araç çağırmasıyla ilgisi yoktur.",{"key":121,"text":162},"Modelin yalnızca kullanıcı mesajlarına pasifçe tepki verdiği, konuşma boyunca kendiliğinden asla bir araç çağrısı başlatmasına izin verilmeyen bir teknik.",{"key":124,"text":164},"Uygulamanın, altta yatan veri değişmiş olabilse bile aracı tekrar çağırmak yerine önceki bir aracın çıktısını yeniden kullandığı bir önbellekleme stratejisi.","ReAct (Reason+Act), modelin muhakeme izleri ile araç eylemlerini birbirine örerek, her gözlemi sonraki muhakemeyi iyileştirmek için kullandığı bir prompting\u002Fajan örüntüsüdür. Benzer isimli JavaScript UI kütüphanesiyle ilgisi yoktur; önbellekleme veya araçsız sohbet modunu tarif etmez.",{"id":167,"topic":17,"difficulty":111,"body":168,"options":169,"correct_key":124,"explanation":178},"019f5912-4561-7885-a82c-3ee6f2db8b49","Konuşma sırasında model şu yapılandırılmış çıktıyı üretti:\n```\n{\n  \"tool_call\": {\n    \"name\": \"get_weather\",\n    \"arguments\": {\"city\": \"Ankara\"}\n  }\n}\n```\nUygulama sırada ne yapmalı?",[170,172,174,176],{"key":115,"text":171},"Bu yapılandırılmış çıktıyı görmezden gel ve doğrudan nihai cevabı üretmeye devam et; sanki model Ankara'daki güncel hava durumunu zaten biliyormuş gibi davran.",{"key":118,"text":173},"Bu ham JSON'ı nihai yanıt olarak kullanıcıya gönder.",{"key":121,"text":175},"Hiçbir şey çalıştırmadan bunu tamamlanmış bir eylem kaydı olarak veritabanına yaz.",{"key":124,"text":177},"Argümanları parse et, `get_weather`'ı `city=\"Ankara\"` ile çalıştır ve sonucu modele araç çıktısı olarak geri ver ki devam edebilsin.","Bu JSON sadece bir fonksiyon çağırma isteğidir — model henüz hiçbir hava durumu verisi almadı. Uygulama gerçek fonksiyonu verilen argümanlarla çalıştırmalı ve sonucu bir gözlem olarak geri beslemelidir. a, b ve c şıkları ya execution'ı tamamen atlıyor ya da dahili bir isteği son kullanıcıya sızdırıyor.",{"id":180,"topic":17,"difficulty":111,"body":181,"options":182,"correct_key":118,"explanation":191},"019f5912-456c-72ee-8e10-2daf618293cb","Bir destek özelliği, nadiren değişen tek bir statik SSS belgesine bakarak 'İade politikamız nedir?' sorusunu yanıtlamalı. Hangi yaklaşım en uygun?",[183,185,187,189],{"key":115,"text":184},"Cevabı arayabilmesi için tool-calling döngüsü, adım limiti ve retry mantığı olan çok adımlı bir agent kur.",{"key":118,"text":186},"İlgili SSS içeriğini barındıran tek bir prompt yeterlidir; bu sabit, tek adımlı lookup için yinelemeli bir agent döngüsüne gerek yoktur.",{"key":121,"text":188},"Herhangi bir müşteri sorusu teorik olarak birden çok araç çağrısı gerektirebileceğinden, onlarca araca sahip bir agent şarttır.",{"key":124,"text":190},"Modele açık uçlu, sürekli açık bir web arama erişimi verilmeli ki bu sabit belge için bile iade politikasını her istekte sıfırdan bağımsızca yeniden doğrulayabilsin.","İhtiyaç duyulan bilgi zaten bilinen ve sabitse, içeriği barındıran tek bir prompt (ya da tek bir doğrudan lookup) görevi, yinelemeli döngü, adım limiti veya retry yükü olmadan çözer. Sabit, tek adımlı bir cevap için tam teşekküllü bir agent kurmak fayda sağlamadan karmaşıklık ekler.",{"fields":193,"seniorities":372,"interview_shapes":373,"locales":378,"oauth":380,"question_count":383,"coach_enabled":384,"jd_match_enabled":384},[194,217,238,255,279,286,305,324,346,353,359,366],{"key":195,"name_tr":196,"name_en":196,"sort":111,"specializations":197},"backend","Backend",[198,201,204,205,208,211,214],{"key":199,"name":200,"field":195},"general","Genel",{"key":202,"name":203,"field":195},"go","Go",{"key":106,"name":107,"field":195},{"key":206,"name":207,"field":195},"java","Java",{"key":209,"name":210,"field":195},"csharp","C#\u002F.NET",{"key":212,"name":213,"field":195},"nodejs","Node.js",{"key":215,"name":216,"field":195},"php","PHP",{"key":218,"name_tr":219,"name_en":219,"sort":220,"specializations":221},"frontend","Frontend",2,[222,223,226,229,232,235],{"key":199,"name":200,"field":218},{"key":224,"name":225,"field":218},"javascript","JavaScript",{"key":227,"name":228,"field":218},"typescript","TypeScript",{"key":230,"name":231,"field":218},"react","React",{"key":233,"name":234,"field":218},"vue","Vue",{"key":236,"name":237,"field":218},"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":199,"name":200,"field":239},{"key":202,"name":203,"field":195},{"key":106,"name":107,"field":195},{"key":206,"name":207,"field":195},{"key":209,"name":210,"field":195},{"key":212,"name":213,"field":195},{"key":215,"name":216,"field":195},{"key":224,"name":225,"field":218},{"key":227,"name":228,"field":218},{"key":230,"name":231,"field":218},{"key":233,"name":234,"field":218},{"key":236,"name":237,"field":218},{"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":199,"name":200,"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":199,"name":200,"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":199,"name":200,"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":199,"name":200,"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":199,"name":200,"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":199,"name":200,"field":347},{"key":354,"name_tr":355,"name_en":355,"sort":356,"specializations":357},"data-engineer","Data Engineer",10,[358],{"key":199,"name":200,"field":354},{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"game-dev","Oyun Geliştirme","Game Development",11,[365],{"key":199,"name":200,"field":360},{"key":367,"name_tr":368,"name_en":368,"sort":369,"specializations":370},"ml-engineer","ML Engineer",12,[371],{"key":199,"name":200,"field":367},[11,12,13],{"junior":374,"mid":376,"senior":377},{"questions":375,"median_sec":3},20,{"questions":375,"median_sec":3},{"questions":375,"median_sec":3},[8,379],"en",[381,382],"google","github",21750,true]