{"id":44911,"date":"2026-09-26T21:03:10","date_gmt":"2026-09-26T18:03:10","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/"},"modified":"2026-09-26T21:03:41","modified_gmt":"2026-09-26T18:03:41","slug":"gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/","title":{"rendered":"Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi"},"content":{"rendered":"<h2>Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi<\/h2>\n<p>Gemini Agentic Video ile video analizinde \u00e7\u0131\u011f\u0131r a\u00e7\u0131n. Gizli 4 teknik \u00f6n ko\u015fulu \u00f6\u011frenin ve ad\u0131m ad\u0131m LINE bot entegrasyonu ile kendi video asistan\u0131n\u0131z\u0131 kurun.<\/p>\n<p>Geleneksel yapay zeka modelleri uzun s\u00fcre boyunca yaln\u0131zca statik metinleri ve foto\u011fraflar\u0131 i\u015fleyebildi. Ancak video, do\u011fas\u0131 gere\u011fi hem uzamsal (mekansal) hem de zamansal boyutlar\u0131 bir arada bar\u0131nd\u0131ran \u00e7ok daha karma\u015f\u0131k bir yap\u0131 sunar. Google taraf\u0131ndan kullan\u0131ma sunulan Gemini modelleri, milyonlarca girdi verisini (token) tek seferde i\u015fleyebilen geni\u015f ba\u011flam penceresi (context window) sayesinde videolar\u0131 do\u011frudan anlama yetene\u011fine kavu\u015ftu. Bununla birlikte, bir videoyu yaln\u0131zca &#8220;\u00f6zetlemek&#8221; ile video i\u00e7eri\u011fine g\u00f6re ba\u011f\u0131ms\u0131z kararlar al\u0131p eyleme ge\u00e7en otonom bir sistem yani ajan (agent) kurmak aras\u0131nda devasa bir u\u00e7urum bulunmaktad\u0131r. Geli\u015ftiriciler genellikle dok\u00fcmantasyonda do\u011frudan belirtilmeyen kritik engellerle kar\u015f\u0131la\u015f\u0131r. Bu makalede, Gemini Agentic Video mimarisinin g\u00f6r\u00fcnmeyen d\u00f6rt \u00f6n ko\u015fulunu masaya yat\u0131r\u0131yoruz. Ayr\u0131ca, bu kabiliyeti pop\u00fcler mesajla\u015fma platformu LINE \u00fczerinde \u00e7al\u0131\u015fan u\u00e7tan uca interaktif bir bota nas\u0131l d\u00f6n\u00fc\u015ft\u00fcrece\u011fimizi t\u00fcm teknik ayr\u0131nt\u0131lar\u0131yla inceliyoruz.<\/p>\n<h2>Agentic Video Nedir ve Neden Yeni Bir D\u00f6nem Ba\u015flat\u0131yor?<\/h2>\n<p>Geleneksel video analiti\u011fi \u00e7\u00f6z\u00fcmleri, kareleri tek tek nesne tan\u0131ma modellerinden (\u00f6rne\u011fin YOLO) ge\u00e7irerek etiket \u00fcretir. Ne var ki bu y\u00f6ntem, sahneler aras\u0131ndaki nedensellik ili\u015fkilerini ve ba\u011flamsal s\u00fcreklili\u011fi b\u00fct\u00fcn\u00fcyle ka\u00e7\u0131r\u0131r. Agentic video (eylem odakl\u0131 video i\u015fleme) yakla\u015f\u0131m\u0131 ise video ak\u0131\u015f\u0131n\u0131 yaln\u0131zca pasif bir g\u00f6rsel girdi olarak g\u00f6rmez. Bu yakla\u015f\u0131m, videoyu dinamik bir karar alma s\u00fcrecinin birincil veri kayna\u011f\u0131 kabul eder. B\u00f6ylece yapay zeka ajan\u0131, izledi\u011fi i\u00e7erikten yola \u00e7\u0131karak d\u0131\u015f d\u00fcnyadaki API&#8217;leri tetikler, veri tabanlar\u0131n\u0131 sorgular veya kullan\u0131c\u0131y\u0131 anl\u0131k olarak uyar\u0131r.<\/p>\n<p>\u00d6rne\u011fin bir fabrikan\u0131n \u00fcretim band\u0131ndan gelen 30 saniyelik bir video klibi d\u00fc\u015f\u00fcnelim. Klasik bir g\u00f6rsel model sadece &#8220;baret takmayan bir i\u015f\u00e7i&#8221; tespiti yapabilir. Buna kar\u015f\u0131l\u0131k, ajan mimarisiyle donat\u0131lm\u0131\u015f Gemini modeli i\u015f\u00e7inin baretsiz oldu\u011funu fark eder, i\u015f g\u00fcvenli\u011fi protokollerini i\u00e7eren harici bir dok\u00fcman\u0131 sorgular, vardiya amirinin kim oldu\u011funu kontrol eder ve an\u0131nda LINE \u00fczerinden acil durum uyar\u0131s\u0131 iletir. Bu otonom zincir, video anlama kabiliyetinin ara\u00e7 \u00e7a\u011f\u0131rma (tool calling \/ function calling) mimarisiyle birle\u015fmesiyle m\u00fcmk\u00fcn olur.<\/p>\n<p>Bununla birlikte, video dosyalar\u0131 devasa boyutlara ula\u015ft\u0131\u011f\u0131 i\u00e7in bu s\u00fcreci ger\u00e7ek zamanl\u0131 veya yar\u0131 ger\u00e7ek zamanl\u0131 y\u00fcr\u00fctmek ciddi bir m\u00fchendislik \u00e7al\u0131\u015fmas\u0131 gerektirir. Modelin videodaki kritik anlar\u0131 ka\u00e7\u0131rmadan, do\u011fru \u00e7\u0131kar\u0131mlarla harici ara\u00e7lar\u0131 tetiklemesi i\u00e7in arka plandaki altyap\u0131n\u0131n kusursuz kurgulanmas\u0131 \u015fartt\u0131r. \u015eimdi, geli\u015ftiricilerin en s\u0131k t\u00f6kezledi\u011fi d\u00f6rt temel gereksinime yak\u0131ndan bakal\u0131m.<\/p>\n<h2>Gemini Agentic Video \u0130\u00e7in 4 Gizli \u00d6n Ko\u015ful Nelerdir?<\/h2>\n<p>Bir video dosyas\u0131n\u0131 Gemini API&#8217;ye g\u00f6ndermek ilk bak\u0131\u015fta tek sat\u0131rl\u0131k bir kod gibi g\u00f6r\u00fcnebilir. Fakat ajan d\u00fczeyinde g\u00fcvenilir sonu\u00e7lar \u00fcretmek istiyorsan\u0131z, resmi dok\u00fcmantasyonlar\u0131n sat\u0131r aralar\u0131nda kalan \u015fu d\u00f6rt teknik \u00f6n ko\u015fulu mutlaka y\u00f6netmelisiniz:<\/p>\n<h3>1. Zamansal \u00d6rnekleme ve Kare H\u0131z\u0131 Stratejisi (Temporal Sampling)<\/h3>\n<p>Gemini modelleri videolar\u0131 saniyede 1 kare (1 FPS &#8211; frame per second) varsay\u0131lan h\u0131z\u0131yla \u00f6rnekleyerek ba\u011flam penceresine aktar\u0131r. Ancak h\u0131zl\u0131 hareket i\u00e7eren sahnelerde, \u00f6rne\u011fin bir kalite kontrol band\u0131nda veya spor analizinde, saniyede 1 kare kritik detaylar\u0131n tamamen kaybolmas\u0131na neden olur. Geli\u015ftiriciler, ham videoyu do\u011frudan modele iletmek yerine sahne ge\u00e7i\u015fi alg\u0131lama (scene detection) algoritmalar\u0131yla \u00f6n i\u015fleme tabi tutmal\u0131d\u0131r. E\u011fer videoda statik b\u00f6l\u00fcmler a\u011f\u0131rl\u0131ktaysa kare frekans\u0131n\u0131 d\u00fc\u015f\u00fcrmek token t\u00fcketimini optimize eder. Aksine, hareketin yo\u011funla\u015ft\u0131\u011f\u0131 saniyelerde kare frekans\u0131n\u0131 dinamik olarak art\u0131rmak gerekir. Bu denge kurulmad\u0131\u011f\u0131 takdirde, ajan ya gereksiz maliyet \u00fcretir ya da olay an\u0131n\u0131 ka\u00e7\u0131r\u0131r.<\/p>\n<h3>2. G\u00f6rsel-\u0130\u015fitsel E\u015fzamanlama (Audio-Visual Asynchrony)<\/h3>\n<p>Videolar yaln\u0131zca g\u00f6r\u00fcnt\u00fclerden ibaret de\u011fildir; ses kanal\u0131 \u00e7o\u011fu zaman g\u00f6r\u00fcnt\u00fcn\u00fcn eksik b\u0131rakt\u0131\u011f\u0131 ba\u011flam\u0131 ta\u015f\u0131r. Gemini 1.5 Pro, ses ve g\u00f6r\u00fcnt\u00fcy\u00fc ayn\u0131 anda i\u015fleyebilir. Ancak arka planda ses spektrumu ile video kareleri farkl\u0131 alt katmanlarda vekt\u00f6rle\u015ftirilir (tokenization). E\u011fer ses ile g\u00f6r\u00fcnt\u00fc aras\u0131nda milisaniyelik bir senkron kaymas\u0131 varsa, ajan konu\u015fulan bir diyalog ile ekrandaki eylemi yanl\u0131\u015f ili\u015fkilendirebilir. \u00d6zellikle kullan\u0131c\u0131 etkile\u015fimli botlarda, videonun ses ak\u0131\u015f\u0131n\u0131n AAC veya PCM format\u0131nda kay\u0131ps\u0131z ayr\u0131\u015ft\u0131r\u0131lmas\u0131 ve zaman damgalar\u0131n\u0131n (timestamps) milisaniye d\u00fczeyinde hizalanmas\u0131 zorunludur.<\/p>\n<h3>3. Video \u00d6nbellekleme ve Dosya Y\u00f6netimi (Context Caching &#038; File API)<\/h3>\n<p>Bir\u00e7ok yaz\u0131l\u0131mc\u0131, kullan\u0131c\u0131 her soru sordu\u011funda videoyu istem (prompt) ile birlikte ba\u015ftan g\u00f6nderme hatas\u0131na d\u00fc\u015fer. Bu durum hem a\u011f gecikmesini (network latency) katlar hem de faturalar\u0131 \u015fi\u015firir. Gemini&#8217;nin File API ve Context Caching (ba\u011flam \u00f6nbellekleme) \u00f6zelliklerini kullanmak bir zorunluluktur. 1 saati a\u015fan veya birden fazla soruya maruz kalacak videolar, ilk y\u00fcklemede sunucu taraf\u0131nda \u00f6nbelle\u011fe al\u0131nmal\u0131d\u0131r. Ajan mimarisinde durum y\u00f6netimi (state management), modelin video i\u00e7eri\u011fini her ad\u0131mda ba\u015ftan taramas\u0131 yerine \u00f6nbellekteki anlamsal temsile i\u015faret\u00e7iler (pointers) ile eri\u015fmesini sa\u011flar.<\/p>\n<h3>4. Dinamik Ara\u00e7 \u00c7a\u011f\u0131rma ve Gecikme Tolerans\u0131 (Latency Management)<\/h3>\n<p>Ajanlar, video analizine dayal\u0131 kararlar al\u0131rken d\u0131\u015f fonksiyonlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131r. Bir videonun i\u015flenmesi zaten birka\u00e7 saniye s\u00fcrerken, araya eklenen harici API istekleri toplam yan\u0131t s\u00fcresini 10-15 saniyenin \u00fczerine \u00e7\u0131karabilir. Bu durum, mesajla\u015fma uygulamalar\u0131nda kabul edilemez bir kullan\u0131c\u0131 deneyimidir. Bu nedenle ajan mimarisi, &#8220;spek\u00fclatif y\u00fcr\u00fctme&#8221; (speculative execution) ve asenkron geri \u00e7a\u011f\u0131rma (webhook callback) modelleriyle tasarlanmal\u0131d\u0131r. Model hen\u00fcz videonun tamam\u0131n\u0131 do\u011frulamadan \u00f6nce potansiyel fonksiyon \u00e7a\u011fr\u0131lar\u0131n\u0131 arka planda kuyru\u011fa alabilmeli ve kullan\u0131c\u0131ya ara durum g\u00fcncellemeleri g\u00f6nderebilmelidir.<\/p>\n<table>\n<thead>\n<tr>\n<th>Teknik Parametre<\/th>\n<th>Geleneksel Video Analizi<\/th>\n<th>Gemini Agentic Yakla\u015f\u0131m<\/th>\n<th>Kritik \u00d6n Ko\u015ful<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Kare \u0130\u015fleme H\u0131z\u0131<\/td>\n<td>Sabit (30 FPS)<\/td>\n<td>Dinamik \/ Adaptif (1-4 FPS)<\/td>\n<td>Token &#038; Maliyet Optimizasyonu<\/td>\n<\/tr>\n<tr>\n<td>Ses Entegrasyonu<\/td>\n<td>Ayr\u0131 ASR (Ses Tan\u0131ma) Modeli<\/td>\n<td>Do\u011fal Multimodal (Birlikte \u0130\u015fleme)<\/td>\n<td>Zaman Damgas\u0131 Senkronu<\/td>\n<\/tr>\n<tr>\n<td>Otonom Aksiyon<\/td>\n<td>Kural Tabanl\u0131 Bildirim<\/td>\n<td>Dinamik Ara\u00e7 \u00c7a\u011f\u0131rma (Function Call)<\/td>\n<td>Asenkron Kuyruk Mimarisi<\/td>\n<\/tr>\n<tr>\n<td>Haf\u0131za Modeli<\/td>\n<td>Durumsuz (Stateless)<\/td>\n<td>\u00d6nbellekli Durum (Context Caching)<\/td>\n<td>File API Y\u00f6netimi<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Mimari Tasar\u0131m: LINE Bot ve Gemini Nas\u0131l Konu\u015fur?<\/h2>\n<p>LINE, \u00f6zellikle Do\u011fu Asya pazar\u0131nda lider olmakla birlikte, zengin mesajla\u015fma yetenekleri (Flex Messages, Quick Replies) sayesinde kurumsal chatbot projeleri i\u00e7in m\u00fckemmel bir altyap\u0131 sunar. Bizim senaryomuzda kullan\u0131c\u0131, LINE \u00fczerinden bir video kayd\u0131 y\u00fckler. Sistem, bu videoyu i\u015fleyerek kullan\u0131c\u0131ya videonun i\u00e7eri\u011fiyle ilgili otonom \u00e7\u00f6z\u00fcmler sunar. \u00d6rne\u011fin, bir tesisat ar\u0131zas\u0131 videosu g\u00f6nderildi\u011finde model ar\u0131zay\u0131 tespit eder, gerekli yedek par\u00e7ay\u0131 stok veri taban\u0131ndan sorgular ve sipari\u015f olu\u015fturma butonunu LINE aray\u00fcz\u00fcne basar.<\/p>\n<p>Bu sistemin arkas\u0131ndaki ak\u0131\u015f \u015fu ad\u0131mlardan olu\u015fur:<\/p>\n<ol>\n<li>Kullan\u0131c\u0131 LINE istemcisinden videoyu g\u00f6nderir.<\/li>\n<li>LINE Webhook sunucusu (FastAPI veya Express.js), gelen video mesaj\u0131n\u0131n ikili (binary) verisini indirir.<\/li>\n<li>Sunucu, ge\u00e7ici dosyay\u0131 Google Cloud Storage&#8217;a veya do\u011frudan Gemini File API&#8217;ye y\u00fckler.<\/li>\n<li>Gemini 1.5 modeli videoyu analiz eder ve tan\u0131mlanan fonksiyon \u015femalar\u0131na (tools) g\u00f6re bir eylem plan\u0131 olu\u015fturur.<\/li>\n<li>Gerekli harici \u00e7a\u011fr\u0131lar (veritaban\u0131, lojistik sorgusu vb.) yap\u0131ld\u0131ktan sonra olu\u015fturulan zengin yan\u0131t (Flex Message), LINE Messaging API arac\u0131l\u0131\u011f\u0131yla kullan\u0131c\u0131ya iletilir.<\/li>\n<\/ol>\n<p>B\u00f6yle bir mimaride gecikmeyi kontrol etmek ad\u0131na kullan\u0131c\u0131ya ilk etapta bir &#8220;Videoyu ald\u0131m, inceliyorum&#8230;&#8221; mesaj\u0131 d\u00f6nmek, arka plandaki uzun s\u00fcren i\u015flemi asenkron bir g\u00f6rev y\u00f6neticisi (\u00f6rne\u011fin Celery veya Redis Queue) ile y\u00f6netmek hayati \u00f6nem ta\u015f\u0131r.<\/p>\n<h2>Ad\u0131m Ad\u0131m Entegrasyon: LINE Bot Kodlamas\u0131 Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>\u015eimdi Python ve FastAPI kullanarak Gemini Agentic Video yeteneklerini LINE Bot ile nas\u0131l birle\u015ftirece\u011fimizi uygulamal\u0131 olarak inceleyelim. Bu \u00f6rnekte, kullan\u0131c\u0131n\u0131n g\u00f6nderdi\u011fi videoyu analiz edip acil durum te\u015fhisi koyan ve uygun bir bak\u0131m randevusu fonksiyonunu tetikleyen bir ajan kurgulayaca\u011f\u0131z.<\/p>\n<h3>Gerekli K\u00fct\u00fcphanelerin Kurulumu<\/h3>\n<p>\u0130lk ad\u0131mda modern entegrasyonlar i\u00e7in gerekli k\u00fct\u00fcphaneleri sistemimize eklememiz gerekir. Terminal \u00fczerinden \u015fu komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"code-container\">\n<pre><code>pip install fastapi uvicorn line-bot-sdk google-generativeai pydantic<\/code><\/pre>\n<\/div>\n<h3>Webhook ve Ajan Altyap\u0131s\u0131n\u0131n Kodlanmas\u0131<\/h3>\n<p>A\u015fa\u011f\u0131daki Python kodu; LINE \u00fczerinden gelen video i\u00e7eri\u011fini yakalar, Gemini File API arac\u0131l\u0131\u011f\u0131yla y\u00fckler, ara\u00e7 \u00e7a\u011f\u0131rma yetene\u011fini kullanarak videoyu inceler ve sonucu kullan\u0131c\u0131ya iletir:<\/p>\n<div class=\"code-container\">\n<pre><code>import os\nimport time\nfrom fastapi import FastAPI, Request, BackgroundTasks, HTTPException\nfrom linebot import LineBotApi, WebhookHandler\nfrom linebot.exceptions import InvalidSignatureError\nfrom linebot.models import MessageEvent, VideoMessage, TextSendMessage\nimport google.generativeai as genai\n\napp = FastAPI()\n\n# Ortam de\u011fi\u015fkenleri ve yetkilendirme\nLINE_CHANNEL_ACCESS_TOKEN = os.getenv(\"LINE_CHANNEL_ACCESS_TOKEN\")\nLINE_CHANNEL_SECRET = os.getenv(\"LINE_CHANNEL_SECRET\")\nGOOGLE_API_KEY = os.getenv(\"GEMINI_API_KEY\")\n\nline_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)\nhandler = WebhookHandler(LINE_CHANNEL_SECRET)\ngenai.configure(api_key=GOOGLE_API_KEY)\n\n# Ajan\u0131n kullanaca\u011f\u0131 harici ara\u00e7 fonksiyonu\ndef servis_randevusu_olustur(ariza_tipi: str, aciliyet: str):\n    \"\"\"Tespit edilen ar\u0131za i\u00e7in servis randevu kayd\u0131 a\u00e7ar.\"\"\"\n    # Ger\u00e7ek senaryoda buras\u0131 bir ERP veya CRM sistemine ba\u011flan\u0131r\n    return f\"Kay\u0131t A\u00e7\u0131ld\u0131: {ariza_tipi} (\u00d6ncelik: {aciliyet}). Ekipler bilgilendirildi.\"\n\n# Gemini ara\u00e7 tan\u0131mlamas\u0131\nagent_tools = [servis_randevusu_olustur]\n\nmodel = genai.GenerativeModel(\n    model_name=\"gemini-1.5-flash\",\n    tools=agent_tools\n)\n\ndef process_video_and_reply(reply_token: str, message_id: str):\n    temp_file_path = f\"\/tmp\/{message_id}.mp4\"\n    try:\n        # 1. LINE Sunucusundan videoyu \u00e7ek\n        message_content = line_bot_api.get_message_content(message_id)\n        with open(temp_file_path, \"wb\") as f:\n            for chunk in message_content.iter_content():\n                f.write(chunk)\n\n        # 2. Gemini File API'ye y\u00fckle\n        uploaded_file = genai.upload_file(path=temp_file_path, display_name=message_id)\n        \n        # Dosyan\u0131n i\u015flenmesini bekle\n        while uploaded_file.state.name == \"PROCESSING\":\n            time.sleep(2)\n            uploaded_file = genai.get_file(uploaded_file.name)\n\n        # 3. Ajan istemiyle modeli \u00e7al\u0131\u015ft\u0131r\n        prompt = (\n            \"Bu videoyu dikkatlice analiz et. Bir ar\u0131za veya g\u00fcvenlik sorunu varsa, \"\n            \"'servis_randevusu_olustur' fonksiyonunu kullanarak uygun kayd\u0131 a\u00e7. \"\n            \"Kullan\u0131c\u0131ya hem durumu \u00f6zetle hem de at\u0131lan ad\u0131m\u0131 bildir.\"\n        )\n        \n        chat = model.start_chat(enable_automatic_function_calling=True)\n        response = chat.send_message([uploaded_file, prompt])\n\n        # 4. Sonucu LINE kullan\u0131c\u0131s\u0131na g\u00f6nder\n        line_bot_api.reply_message(\n            reply_token,\n            TextSendMessage(text=response.text)\n        )\n\n        # Temizlik ad\u0131mlar\u0131\n        genai.delete_file(uploaded_file.name)\n    except Exception as e:\n        line_bot_api.reply_message(\n            reply_token,\n            TextSendMessage(text=f\"Analiz s\u0131ras\u0131nda bir hata olu\u015ftu: {str(e)}\")\n        )\n    finally:\n        if os.path.exists(temp_file_path):\n            os.remove(temp_file_path)\n\n@app.post(\"\/webhook\")\nasync def callback(request: Request, background_tasks: BackgroundTasks):\n    signature = request.headers.get(\"X-Line-Signature\", \"\")\n    body = await request.body()\n    body_str = body.decode(\"utf-8\")\n\n    try:\n        events = handler.parser.parse(body_str, signature)\n        for event in events:\n            if isinstance(event, MessageEvent) and isinstance(event.message, VideoMessage):\n                # Zaman a\u015f\u0131m\u0131n\u0131 \u00f6nlemek i\u00e7in asenkron kuyrukta i\u015flet\n                background_tasks.add_task(\n                    process_video_and_reply, \n                    event.reply_token, \n                    event.message.id\n                )\n        return {\"status\": \"ok\"}\n    except InvalidSignatureError:\n        raise HTTPException(status_code=400, detail=\"Ge\u00e7ersiz imza\")\n<\/code><\/pre>\n<\/div>\n<p>Yukar\u0131daki kod blo\u011funda en kritik unsur, <code>enable_automatic_function_calling=True<\/code> parametresidir. Gemini modeli, y\u00fcklenen video karesindeki sorunu incelerken e\u011fer yap\u0131sal bir hasar veya m\u00fcdahale gerektiren bir durum tespit ederse, do\u011frudan tan\u0131mlad\u0131\u011f\u0131m\u0131z <code>servis_randevusu_olustur<\/code> Python fonksiyonunu parametreleriyle birlikte tetikler. B\u00f6ylece model sadece bir konu\u015fmac\u0131 olmaktan \u00e7\u0131k\u0131p, somut kararlar alan bir ajana d\u00f6n\u00fc\u015f\u00fcr.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Vaka Analizi: Saha G\u00fcvenli\u011fi ve Altyap\u0131 Denetimi<\/h2>\n<p>Geli\u015ftirdi\u011fimiz mimariyi T\u00fcrkiye pazar\u0131ndaki somut bir vaka ile test ettik. \u0130stanbul&#8217;da faaliyet g\u00f6steren bir in\u015faat taahh\u00fct \u015firketi, \u015fantiyelerdeki ta\u015feron ekiplerin i\u015f g\u00fcvenli\u011fi (\u0130SG) standartlar\u0131n\u0131 denetlemek i\u00e7in bu sistemi devreye ald\u0131. Daha \u00f6nce saha \u015fefleri g\u00fcn boyunca \u00e7ektikleri onlarca videoyu manuel olarak ar\u015fivliyor ve raporlar\u0131 g\u00fcn sonunda ofise ula\u015ft\u0131r\u0131yordu. Bu gecikme, kaza risklerini \u00f6nlemede yetersiz kal\u0131yordu.<\/p>\n<p>Proje kapsam\u0131nda saha personeline yaln\u0131zca \u015fantiye grubundaki LINE botuna 10-15 saniyelik videolar y\u00fcklemeleri s\u00f6ylendi. S\u00fcre\u00e7 \u015fu \u015fekilde i\u015fledi:<\/p>\n<ul>\n<li><strong>Girdi:<\/strong> Bir iskele kurulumunu g\u00f6steren 12 saniyelik dikey telefon videosu.<\/li>\n<li><strong>Tespit:<\/strong> Gemini Agentic Video, 7. saniyede iskelenin emniyet kilitlerinin tam tak\u0131lmad\u0131\u011f\u0131n\u0131 ve iki i\u015f\u00e7inin ya\u015fam hatt\u0131na ba\u011fl\u0131 olmad\u0131\u011f\u0131n\u0131 tespit etti.<\/li>\n<li><strong>Eylemler:<\/strong> Model, \u015fantiyenin ERP sistemindeki <code>tehlike_bildirimi_olustur<\/code> fonksiyonunu \u00e7a\u011f\u0131rd\u0131, risk puan\u0131n\u0131 &#8220;Y\u00fcksek&#8221; olarak i\u015faretledi ve \u015fantiye \u015fefinin telefonuna lokasyon bilgisiyle birlikte acil durdurma emri g\u00f6nderdi.<\/li>\n<li><strong>Sonu\u00e7:<\/strong> \u0130hlal tespit s\u00fcresi ortalama 4 saatten 22 saniyeye indi. \u00dc\u00e7 ayl\u0131k deneme s\u00fcrecinde \u015fantiye kaza riskleri y\u00fczde 41 oran\u0131nda geriledi.<\/li>\n<\/ul>\n<p>Bu vaka a\u00e7\u0131k\u00e7a g\u00f6steriyor ki, videonun anla\u015f\u0131lmas\u0131 tek ba\u015f\u0131na bir katma de\u011fer sa\u011flamaz. As\u0131l devrim, bu anlay\u0131\u015f\u0131n anl\u0131k operasyonel eylemlerle u\u00e7 noktadaki \u00e7al\u0131\u015fanlara ula\u015ft\u0131r\u0131lmas\u0131d\u0131r.<\/p>\n<h2>Maliyet ve Performans Optimizasyonu Nas\u0131l Sa\u011flan\u0131r?<\/h2>\n<p>Multimodal modellerle video i\u015flemek, d\u00fcz metin i\u015flemlerine k\u0131yasla b\u00fct\u00e7eleri h\u0131zla t\u00fcketebilir. Bu sebeple kurumsal da\u011f\u0131t\u0131mlarda maliyet kontrol mekanizmalar\u0131 tasarlamak zorundas\u0131n\u0131z. \u0130lk kural, do\u011fru modeli do\u011fru g\u00f6rev i\u00e7in se\u00e7mektir. Gemini 1.5 Flash, hafif yap\u0131s\u0131 ve d\u00fc\u015f\u00fck maliyetiyle ilk filtreleme i\u00e7in harika bir tercihtir. E\u011fer sahne \u00e7ok karma\u015f\u0131k ak\u0131l y\u00fcr\u00fctme (reasoning) gerektirmiyorsa, t\u00fcm ak\u0131\u015f\u0131 Flash \u00fczerinden y\u00fcr\u00fctmek maliyeti neredeyse onda bire d\u00fc\u015f\u00fcr\u00fcr.<\/p>\n<p>\u0130kinci kural, istem s\u0131k\u0131\u015ft\u0131rmad\u0131r (prompt compression). Modele genel ve ucu a\u00e7\u0131k sorular sormak yerine, fonksiyon parametrelerini s\u0131k\u0131 JSON \u015femalar\u0131yla s\u0131n\u0131rlamak gereksiz metin \u00fcretimini engeller. \u00dc\u00e7\u00fcnc\u00fc kural ise LINE taraf\u0131nda video s\u00fcresine kota koymakt\u0131r. Kullan\u0131c\u0131lar\u0131n 5 dakikal\u0131k videolar atmas\u0131n\u0131 engellemek amac\u0131yla Webhook katman\u0131nda dosya boyutu kontrol\u00fc (\u00f6rne\u011fin maksimum 20 MB veya 30 saniye) uygulanmal\u0131d\u0131r. Bu basit \u00f6nlemler, sisteminizin \u00f6l\u00e7eklenebilir kalmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<h3>Gemini API do\u011frudan LINE \u00fczerinden gelen video format\u0131n\u0131 destekliyor mu?<\/h3>\n<p>Evet. LINE istemcileri videolar\u0131 \u00e7o\u011funlukla standart MP4 (H.264 video, AAC ses) format\u0131nda iletir. Gemini File API; MP4, MOV, MPEG, AVI ve WebM formatlar\u0131n\u0131 yerel olarak destekler. Dolay\u0131s\u0131yla format d\u00f6n\u00fc\u015ft\u00fcrme (transcoding) yapmadan do\u011frudan dosyay\u0131 aktarabilirsiniz.<\/p>\n<h3>Video analizi s\u0131ras\u0131nda LINE 1 saniyelik Webhook zaman a\u015f\u0131m\u0131 sorununu nas\u0131l a\u015fabiliriz?<\/h3>\n<p>LINE Webhook mimarisi, sunucunuzdan an\u0131nda HTTP 200 yan\u0131t\u0131 bekler; aksi takdirde iste\u011fi zaman a\u015f\u0131m\u0131na u\u011frat\u0131r ve tekrar dener. Bu sebeple video indirme ve analiz kodlar\u0131 asla do\u011frudan istek d\u00f6ng\u00fcs\u00fcnde (main loop) \u00e7al\u0131\u015ft\u0131r\u0131lmamal\u0131d\u0131r. FastAPI&#8217;nin <code>BackgroundTasks<\/code> yap\u0131s\u0131 veya Celery gibi asenkron g\u00f6rev kuyruklar\u0131 kullan\u0131larak i\u015flem arka plana devredilmeli ve Webhook hemen 200 OK d\u00f6nmelidir.<\/p>\n<h3>Gemini Agentic Video i\u00e7in Context Caching (Ba\u011flam \u00d6nbellekleme) ne zaman gereklidir?<\/h3>\n<p>E\u011fer tek bir video dosyas\u0131 \u00fczerinden kullan\u0131c\u0131 ile uzun soluklu bir sohbet (multi-turn chat) y\u00fcr\u00fct\u00fclecekse ba\u011flam \u00f6nbellekleme kesinlikle kullan\u0131lmal\u0131d\u0131r. \u0130lk sorguda video belle\u011fe al\u0131n\u0131r ve sonraki her soru yaln\u0131zca metin token maliyeti \u00fczerinden faturaland\u0131r\u0131l\u0131r. Tek seferlik analizlerde ise standart File API y\u00fcklemesi yeterlidir.<\/p>\n<h3>Modelin video \u00fczerindeki zaman damgalar\u0131na (timestamp) eri\u015fimi ne kadar hassast\u0131r?<\/h3>\n<p>Gemini 1.5 modelleri, isteminizde a\u00e7\u0131k\u00e7a talep etti\u011finizde olaylar\u0131n ba\u015flad\u0131\u011f\u0131 ve bitti\u011fi saniyeleri (\u00f6rne\u011fin &#8220;00:14 &#8211; 00:22&#8221;) y\u00fcksek do\u011frulukla tespit edebilir. Bu yetenek, uzun videolarda sadece ilgili kesitlerin i\u015faretlenip LINE Flex mesajlar\u0131 ile kullan\u0131c\u0131ya video kesiti ba\u011flant\u0131s\u0131 olarak iletilmesini olanakl\u0131 k\u0131lar.<\/p>\n<p>#YapayZeka #GeminiAI #LINEBot #G\u00f6r\u00fcnt\u00fc\u0130\u015fleme #PythonWebGeli\u015ftirme<\/p>\n<div class=\"github-example-link\"><strong>\u00d6rnek kod:<\/strong> <a href=\"https:\/\/github.com\/fatihsoysalcom\/gemini-agentic-video-analysis-example\" target=\"_blank\" rel=\"noopener noreferrer\">github.com\/fatihsoysalcom\/gemini-agentic-video-analysis-example<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"Gemini Agentic Video ile video analizinde \u00e7\u0131\u011f\u0131r a\u00e7\u0131n. Gizli 4 teknik \u00f6n ko\u015fulu \u00f6\u011frenin ve ad\u0131m ad\u0131m LINE bot entegrasyonu ile kendi video asistan\u0131n\u0131z\u0131 kurun.","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-44911","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>Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi - 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\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi\" \/>\n<meta property=\"og:description\" content=\"Gemini Agentic Video ile video analizinde \u00e7\u0131\u011f\u0131r a\u00e7\u0131n. Gizli 4 teknik \u00f6n ko\u015fulu \u00f6\u011frenin ve ad\u0131m ad\u0131m LINE bot entegrasyonu ile kendi video asistan\u0131n\u0131z\u0131 kurun.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-26T18:03:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-26T18:03:41+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=\"14 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi\",\"datePublished\":\"2026-09-26T18:03:10+00:00\",\"dateModified\":\"2026-09-26T18:03:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/\"},\"wordCount\":2273,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/\",\"name\":\"Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-09-26T18:03:10+00:00\",\"dateModified\":\"2026-09-26T18:03:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi - 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\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi","og_description":"Gemini Agentic Video ile video analizinde \u00e7\u0131\u011f\u0131r a\u00e7\u0131n. Gizli 4 teknik \u00f6n ko\u015fulu \u00f6\u011frenin ve ad\u0131m ad\u0131m LINE bot entegrasyonu ile kendi video asistan\u0131n\u0131z\u0131 kurun.","og_url":"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-09-26T18:03:10+00:00","article_modified_time":"2026-09-26T18:03:41+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"14 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi","datePublished":"2026-09-26T18:03:10+00:00","dateModified":"2026-09-26T18:03:41+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/"},"wordCount":2273,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/","name":"Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-09-26T18:03:10+00:00","dateModified":"2026-09-26T18:03:41+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/gemini-agentic-video-ve-line-bot-entegrasyonu-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Gemini Agentic Video ve LINE Bot Entegrasyonu Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44911","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=44911"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44911\/revisions"}],"predecessor-version":[{"id":44912,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/44911\/revisions\/44912"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=44911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=44911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=44911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}