Mimari
Asistanın ayrı bir servis olarak konumlandırılması ve CMS ile sözleşmesi.
Referans · 2025
Mevcut bir CMS'e eklenen, LLM API'si üzerinden çalışan içerik üretim ve düzenleme modülü.
Hikâye
Rakamlar gizlilik kapsamında; bu bölüm projenin hangi ihtiyaçtan doğduğunu, teknik kararların gerekçesini ve ortaya çıkan sistemi anlatıyor.
Bu proje hâlihazırda yayında olan bir içerik yönetim sisteminin üzerine geldi. İçerik ekibi her yayın öncesinde taslak kurma, özet çıkarma ve meta açıklama yazma gibi büyük ölçüde şablona dayanan adımları elle tekrarlıyordu. İhtiyaç yeni bir CMS değildi; editoryal kontrolü zayıflatmadan bu tekrarlı hazırlık yükünü devralacak bir yardımcı katmandı.
Asistanı CMS'in içine gömmek yerine ayrı bir servis olarak konumlandırdım: mevcut sistemin çekirdeğine dokunulmadı ve modül Docker ile bağımsız paketlenip güncellenebiliyor. Servis tarafında Node.js ve TypeScript tercih ettim; LLM API'sinden dönen yanıtlar tip güvenli sözleşmelerden ve JSON şema doğrulamasından geçmeden CMS'e ulaşmıyor. Uzun süren üretim istekleri Redis üzerindeki kuyruğa alınıyor ve hata durumunda kontrollü şekilde yeniden deneniyor; istek geçmişi ile token kullanımı ise kota ve maliyet takibi için PostgreSQL'de tutuluyor.
Bugün modül taslak, özet ve meta veri önerilerini doğrudan editörün çalıştığı ekrana getiriyor. Hiçbir öneri editör onayı olmadan kayda geçmiyor; kabul ve ret kararları geçmişiyle birlikte izlenebiliyor. Tekrarlı hazırlık işleri asistana devredilirken yayın kararı tamamen insanda kaldı. Kuruma ait üretim ve maliyet rakamları gizlilik anlaşması kapsamında olduğu için paylaşılmıyor.
01 Proje Hakkında
Her projede önce mevcut durumu ve gerçek ihtiyacı anlamaya çalışıyorum. Teknik kararlar bu tanımdan sonra geliyor.
İçerik ekibi her yazı için taslak hazırlama, özet çıkarma ve meta açıklama yazma adımlarında zaman kaybediyordu. Bu işler tekrarlıydı ve büyük ölçüde şablona bağlıydı.
Mevcut CMS'e ayrı bir servis olarak bağlanan bir asistan modülü geliştirildi. Uzun süren istekler kuyruğa alınıyor, model yanıtları şema doğrulamasından geçiyor ve editör onayı olmadan hiçbir içerik yayına gitmiyor.
02 Rolüm
Bu projede üstlendiğim çalışma kalemleri. Belirtilmeyen alanlarda müşteri ekibi veya üçüncü taraflar yer aldı.
Asistanın ayrı bir servis olarak konumlandırılması ve CMS ile sözleşmesi.
Node.js/TypeScript ile istek yönetimi, kuyruk, retry ve zaman aşımı davranışı.
Prompt tasarımı, versiyonlama ve yanıtların JSON şemasıyla doğrulanması.
Token kullanımının loglanması, kullanıcı bazlı kota ve önbellekleme.
Editör içinde öneri gösterimi, kabul/reddet akışı ve geçmiş kayıtları.
03 Özellikler
Projenin gündelik kullanımda en çok fark yaratan tarafları.
Başlık ve kısa brief'ten yapılandırılmış içerik taslağı önerisi.
Uzun içeriklerden kısa açıklama ve öne çıkan noktalar çıkarımı.
Başlık ve açıklama etiketleri için uzunluk kurallarına uyan öneriler.
Hiçbir öneri otomatik yayınlanmaz; editör kabul etmeden kaydedilmez.
Uzun işler arka planda çalışır; hata durumunda kontrollü tekrar denenir.
Kullanıcı ve içerik bazlı token/maliyet raporlaması.
05 Sonuç
Modül, editör onayı zorunlu kalacak şekilde canlıya alındı ve tekrarlayan hazırlık adımları asistana devredildi. Kuruma ait üretim ve maliyet verileri paylaşıma kapalıdır.
Ölçülmemiş performans veya başarı yüzdesi paylaşılmaz. Doğrulanabilir veriler CMS üzerinden eklenebilir.
Bu projede kullanılan hizmet başlıkları:
Devamı
Benzer teknik yaklaşımların kullanıldığı diğer çalışmalar.
Emeyz, teknoloji, yaşam, seyahat ve daha birçok konuda içerik sunan; Türkçe, İngilizce ve Almanca yayın yapan çok dilli bir bilgi platformudur.
Flash ve HTML5 oyunlarının internet tarayıcı üzerinden oynanabildiği bir oyun platformuydu.
Blok tabanlı editör, medya kütüphanesi ve çok dilli içerik desteği olan özel CMS.