İçeriğe Atla
Mustafa Erbay
Rehberler · 11 dk okuma · görüntülenme Read in English

Ücretsiz AI Kodlama: Cline ile Abonelik Ödemeden Agent Çalıştırmak

Cline kullanarak abonelik ücreti ödemeden, birden fazla AI modeliyle kodlama agent'ları nasıl çalıştıracağımı ve kendi altyapımda bu esnekliği nasıl…

100%

Birkaç ay önce kendi yan ürünümün backend’inde yeni bir feature geliştirirken, küçük, tekrarlayan kodlama görevleri için sürekli bir AI asistanına ihtiyaç duyduğumu fark ettim. Ancak, her bir model için ayrı abonelik ödemek veya tek bir sağlayıcıya kilitlenmek istemiyordum. İşte tam bu noktada, farklı LLM’leri tek bir arayüzde birleştiren ve abonelik bağımlılığını azaltan Cline ile tanıştım. Bu makalede, Cline’ı kullanarak abonelik ödemeden AI kodlama agent’larını nasıl çalıştırdığımı ve kendi altyapımda bu esnekliği nasıl sağladığımı anlatacağım.

Cline, AI agent’larını yerel olarak veya uzaktan çalıştırmak için tasarlanmış bir CLI aracı ve framework’üdür. Birden fazla LLM sağlayıcısını ve modelini tek bir çatı altında toplayarak, geliştiricilere model seçimi ve entegrasyonu konusunda büyük bir esneklik sunar. Bu sayede, maliyetleri optimize ederken farklı modellerin güçlü yönlerinden faydalanabiliyorum.

Cline Nedir ve Neden Aboneliksiz AI Kodlama İçin Önemli?

Cline, temel olarak AI agent’larını yönetmek ve çalıştırmak için bir köprü görevi görür. Farklı LLM servislerinin (OpenAI, Anthropic, Gemini, Groq, OpenRouter gibi) API’lerini soyutlar ve agent’ların bu servislere standart bir arayüz üzerinden erişmesini sağlar. Bu yapı, beni tek bir sağlayıcının fiyatlandırma politikalarına veya hizmet kesintilerine karşı daha dirençli hale getiriyor.

Benim için en büyük avantajı, projelerimde veya kişisel araçlarımda AI kullanırken maliyet kontrolünü elimde tutmamdır. Özellikle deneme yanılma süreci yoğun olan kodlama görevlerinde, yüksek abonelik ücretleri hızla bir yük haline gelebiliyor. Cline ile farklı sağlayıcıların ücretsiz katmanlarını veya daha uygun maliyetli, hızlı modelleri (örneğin Groq) kullanarak, önce maliyet-etkin bir şekilde denemeler yapabiliyor, ardından gerektiğinde daha güçlü ve pahalı modellere geçiş yapabiliyorum. Bu esneklik, hem cebimi koruyor hem de vendor lock-in riskini azaltıyor.

Ayrıca, farklı modellerin farklı güçlü yönleri var. Bir model hızlı kod taslakları oluşturmada iyiyken, diğeri karmaşık refactoring veya hata ayıklama konusunda daha başarılı olabiliyor. Cline sayesinde, aynı agent’ı farklı modellerle deneyerek en iyi sonucu veren kombinasyonu bulabiliyorum. Bu, özellikle bir üretim ERP’sinin AI ile üretim planlama modülünü geliştirirken, farklı senaryolar için en uygun modelin seçilmesi gerektiğinde çok işime yaradı.

Cline Agent Mimarisi Nasıl Çalışır?

Cline agent mimarisi, bir görevi yerine getirmek için LLM’ler ve çeşitli “Tools” (araçlar) arasında dinamik bir etkileşim üzerine kuruludur. Bir agent, bir görevi aldığında, bu görevi yerine getirmek için hangi adımların atılması gerektiğini ve hangi araçların kullanılması gerektiğini bir LLM aracılığıyla belirler. Bu, agent’a sadece metin üretmenin ötesinde, gerçek dünya ile etkileşim kurma yeteneği kazandırır.

Benim deneyimimde, bu “agent pattern” çok güçlü. Özellikle RAG (Retrieval-Augmented Generation) veya fonksiyon çağırma (function calling) gibi mekanizmalarla birleştiğinde, agent’lar belirli bir codebase üzerinde kod yazabilir, test edebilir ve hatta hataları ayıklayabilir hale geliyor. Cline, bu mimariyi oldukça basit bir arayüzle sunuyor. Bir agent, temelde bir LLM seçimi, bir dizi yetenek (tools) ve bir prompt stratejisinden oluşur.

Bir agent’ın temel akışı şu şekildedir:

  1. Kullanıcı İsteği: Kullanıcı, agent’a bir görev verir (örneğin, “Bu Python kodunu refactor et ve testlerini yaz”).
  2. Planlama (LLM): Agent, seçilen LLM’e görevi ve mevcut araçları sunar. LLM, görevi alt görevlere böler ve hangi araçların hangi sırayla kullanılması gerektiğini belirten bir plan veya doğrudan bir araç çağrısı önerir.
  3. Tool Çağrısı: Agent, LLM’in önerdiği aracı (örneğin, bir kod yorumlayıcı, dosya okuyucu/yazıcı, web arama aracı) belirli parametrelerle çağırır.
  4. Tool Çalıştırma: Seçilen araç, dış dünyayla etkileşim kurar (kodu çalıştırır, dosyayı okur/yazar, web’de arama yapar) ve bir sonuç döndürür.
  5. Sonuç Değerlendirme (LLM): Agent, aracın sonucunu tekrar LLM’e iletir. LLM, bu sonucu değerlendirir, bir sonraki adımı belirler veya nihai cevabı oluşturur.
  6. Nihai Cevap/Kod: Agent, görevi tamamladığında kullanıcıya nihai kodu veya cevabı sunar.

Bu döngü, görevin karmaşıklığına bağlı olarak birden çok kez tekrarlanabilir. Özellikle bir üretim ERP’si için AI destekli operatör ekranları tasarlarken, bu tür bir agent mimarisini kullanarak operatörün ihtiyacına göre dinamik olarak kod parçacıkları veya otomasyon betikleri oluşturan sistemler üzerinde çalıştım.

graph TD;
  A["Kullanıcı İsteği"] --> B["Cline Agent"];
  B -- "Görev Bölme/Planlama" --> C["LLM (Groq/Gemini/OpenRouter)"];
  C -- "Tool Çağrısı Önerisi" --> B;
  B -- "Tool Çalıştır" --> D["Tool (Code Interpreter/File I/O/Web Search)"];
  D -- "Tool Sonucu" --> B;
  B -- "Nihai Cevap/Kod" --> A;

Bu yapı, agent’lara sadece statik bilgiye dayalı cevaplar üretmek yerine, dinamik ve duruma özel çözümler üretme yeteneği kazandırır.

Cline Ortamının Kurulumu: İlk Adımlar

Cline ile çalışmaya başlamak oldukça basit. Temel gereksinimler bir Python ortamı ve pip paket yöneticisidir. Linux sunucularda veya kendi geliştirme ortamımda bu kurulumu defalarca yaptım.

İlk olarak, Cline’ı Python paket yöneticisi pip ile kurmamız gerekiyor:

pip install cline-agent

Kurulum tamamlandıktan sonra, Cline’ı başlatmak için basit bir cline init komutu çalıştırabilirsiniz. Bu komut, temel bir yapılandırma dosyası oluşturmanıza yardımcı olacaktır. Ancak, ben genellikle yapılandırmayı manuel olarak yapmayı tercih ederim, böylece her şeyi tam olarak kontrol edebilirim.

API anahtarlarını yönetmek kritik bir adımdır. Çeşitli LLM sağlayıcıları (OpenAI, Anthropic, Gemini, Groq, OpenRouter vb.) için API anahtarlarınızın olması gerekir. Bu anahtarları doğrudan yapılandırma dosyasına yazmak yerine, her zaman ortam değişkenleri (environment variables) aracılığıyla sağlamayı tercih ederim. Bu, özellikle CI/CD ortamlarında veya farklı geliştirme makinelerinde çalışırken güvenlik ve esneklik açısından hayati öneme sahiptir.

Örnek bir ortam değişkeni yapılandırması şöyle olabilir:

export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-..."
export GOOGLE_API_KEY="ya29.c..."
export GROQ_API_KEY="gsk_..."
export OPENROUTER_API_KEY="sk-or-..."

Bu anahtarların güvenliğini sağlamak için .env dosyaları kullanabilir ve bu dosyayı .gitignore’a ekleyerek versiyon kontrol sistemine gitmesini engelleyebilirsiniz. Kendi sunucularımda genellikle systemd unit’leri aracılığıyla ortam değişkenlerini doğrudan servise enjekte ederim, böylece anahtarlar diskte okunabilir bir dosyada kalmaz.

Cline, bu ortam değişkenlerini otomatik olarak algılar ve ilgili sağlayıcılar için kimlik doğrulaması yapar. Böylece, tek bir yapılandırma dosyası içinde farklı sağlayıcıların modellerini sorunsuz bir şekilde kullanabilirsiniz. Bu, özellikle birden fazla provider’dan faydalanmak istediğimde, örneğin Groq’u hızlı taslaklar için, Gemini’yı daha karmaşık mantık için kullandığımda oldukça pratik oluyor.

Kendi Kodlama Agent’ımı Cline ile Nasıl Oluşturdum?

Cline ile bir kodlama agent’ı oluşturmak, temelde bir Agent sınıfını tanımlamak ve ona belirli araçlar (Tools) atamakla başlar. Benim için bu süreç, genellikle belirli bir problemi çözmek üzere tasarlanmış, amaca yönelik agent’lar geliştirmek anlamına geliyor. Örneğin, bir Python refactor agent’ı veya bir test yazma agent’ı gibi.

İlk olarak, agent’ımın ne yapması gerektiğini tanımladım. Küçük bir web framework’ü için yeni bir API endpoint’i yazması ve bu endpoint için temel testleri oluşturması gerekiyordu. Bu görevi yerine getirebilmesi için agent’ımın dosya okuma/yazma ve shell komutları çalıştırma yeteneğine sahip olması gerekiyordu.

Bir LLM sağlayıcısı seçimi burada önemli bir trade-off noktasıdır. Hızlı yanıtlar ve düşük maliyet için genellikle Groq’un modellerini tercih ederim (örneğin llama3-8b-8192). Ancak, daha karmaşık muhakeme gerektiren görevler için OpenAI’ın GPT-4’ü veya Google’ın Gemini’ı gibi daha güçlü modellere dönebilirim. Cline’ın güzelliği, bu geçişi kolayca yapabilmemdir. openrouter/auto kullanarak da farklı modeller arasında otomatik geçiş yapmasını sağlayabiliyorum.

Kendi custom araçlarımı geliştirmek, agent’ımın yeteneklerini büyük ölçüde genişletiyor. Python ile basit Tool sınıfları oluşturarak, agent’ıma özel fonksiyonellikler ekleyebiliyorum. İşte bir Python kodunu dosyaya yazan basit bir araç (CodeWriterTool) ve bir agent tanımı örneği:

# my_agent.py
from cline.agent import Agent
from cline.tools import Tool, register_tool
import os

# Özel bir Tool tanımlama
class CodeWriterTool(Tool):
    name = "code_writer"
    description = "Yazılan Python kodunu belirtilen dosyaya kaydeder."

    def run(self, filename: str, code_content: str) -> str:
        """Belirtilen dosyaya Python kodu yazar."""
        try:
            with open(filename, "w") as f:
                f.write(code_content)
            return f"Kod '{filename}' dosyasına başarıyla kaydedildi."
        except Exception as e:
            return f"Hata: Kod '{filename}' dosyasına kaydedilemedi: {e}"

# Tool'u Cline'a kaydetme
register_tool(CodeWriterTool())

# Agent tanımlama
python_refactor_agent = Agent(
    name="Python Refactor Agent",
    description="Python kodunu refactor etmek, yeni fonksiyonlar yazmak ve testler oluşturmak için uzman bir agent.",
    llm="groq/llama3-8b-8192", # Hızlı taslaklar için Groq, daha derin analiz için "openai/gpt-4o"
    tools=["code_writer", "shell_executor", "file_reader"] # 'shell_executor' ve 'file_reader' Cline'ın varsayılan araçları olabilir.
)

if __name__ == "__main__":
    # Agent ile sohbet başlatma
    response = python_refactor_agent.chat(
        "Basit bir Python sınıfı oluştur, bu sınıfın bir metodu olsun ve o metot bir string döndürsün. "
        "Kodu 'simple_class.py' dosyasına kaydet. Sonra bu sınıf için basit bir unit test yaz ve 'test_simple_class.py' dosyasına kaydet."
    )
    print(response)

    # Agent'ın oluşturduğu dosyaları kontrol etme
    if os.path.exists("simple_class.py"):
        print("\nOluşturulan simple_class.py içeriği:")
        with open("simple_class.py", "r") as f:
            print(f.read())
    if os.path.exists("test_simple_class.py"):
        print("\nOluşturulan test_simple_class.py içeriği:")
        with open("test_simple_class.py", "r") as f:
            print(f.read())

Yukarıdaki örnekte CodeWriterTool’u tanımladım ve register_tool() ile Cline’ın kullanabileceği araçlar listesine ekledim. Ardından, agent’ı Agent sınıfından türeterek adını, açıklamasını, kullanacağı LLM’i ve erişebileceği araçları belirttim. tools listesi, Cline’ın otomatik olarak bulacağı ve agent’a sunacağı yetenekleri içerir.

Bu agent’ı bir üretim ERP’sinde, belirli bir iş akışı için özelleştirilmiş raporlama kodları veya küçük entegrasyon betikleri oluşturmak için de kullandım. Agent’ın esnekliği, beni manuel kodlama yükünden büyük ölçüde kurtardı.

Gelişmiş Agent Kullanımı ve Prompt Engineering İpuçları

Bir Cline agent’ından en iyi verimi almak için sadece doğru araçları ve LLM’i seçmek yetmez; aynı zamanda agent’ı yönlendiren prompt’ları da dikkatli bir şekilde tasarlamak gerekir. Prompt engineering, AI agent’larının istenen davranışı sergilemesini sağlamanın anahtarıdır.

Agent’lara verdiğim prompt’ları genellikle belirli bir yapıya oturturum:

  • Net Görev Tanımı: Agent’tan ne yapmasını beklediğimi açıkça belirtirim. “Python kodunu refactor et” yerine, “Mevcut Python kodundaki deprecated_function kullanımını new_function ile değiştir ve asyncio kullanarak non-blocking hale getir” gibi spesifik ifadeler kullanırım.
  • Kısıtlamalar: Agent’ın uyması gereken kuralları veya limitleri belirtirim. “Sadece bu dizindeki dosyaları değiştir”, “Kodun PEP 8 standartlarına uygun olduğundan emin ol”, “Harici kütüphane ekleme” gibi kısıtlamalar, agent’ın kontrol dışına çıkmasını engeller.
  • Beklenen Çıktı Formatı: Agent’ın çıktısının nasıl olması gerektiğini tanımlarım (örneğin, “Refactor edilmiş kodu doğrudan output.py dosyasına kaydet”, “Değişikliklerin özetini Markdown formatında sun”).
  • Örnekler (Few-shot learning): Bazen, agent’ın ne yapması gerektiğini daha iyi anlaması için birkaç örnek girdi-çıktı çifti sağlarım.

Iteratif prompt verme, agent geliştirme sürecinde sıkça başvurduğum bir yöntemdir. İlk başta basit bir prompt ile başlar, agent’ın davranışını gözlemler ve ardından prompt’u adım adım iyileştiririm. Eğer agent bir hata yaparsa veya beklentimi karşılamazsa, yeni bir prompt ile hatayı düzeltmesini veya farklı bir yaklaşımla denemesini isterim. Benim kendi yan ürünümün AI destekli içerik üretiminde, bu iteratif süreç sayesinde zamanla çok daha tutarlı ve kaliteli çıktılar almayı başardım.

System prompt’ları da agent’ın kişiliğini ve genel davranışını tanımlamak için güçlü bir yoldur. Örneğin, “Sen bir kıdemli Python geliştiricisisin, her zaman en iyi pratikleri uygularsın ve güvenlik konusuna öncelik verirsin” gibi bir system prompt ile agent’ın belirli bir uzmanlık alanında davranmasını sağlayabilirim. Bu, özellikle bir bankanın iç platformu için güvenlik odaklı kod denetimi yapan bir agent tasarlarken çok işime yaramıştı. Agent’ın “hallucination” yapma veya suboptimal çıktılar üretme eğilimini azaltmak için bu prompt stratejileri kritik rol oynar.

Maliyet Yönetimi ve Performans İyileştirmeleri

Cline’ın en büyük faydalarından biri, AI kodlama süreçlerinde maliyetleri etkin bir şekilde yönetme ve performansı artırma yeteneği sunmasıdır. Benim için, uzun vadeli projelerde sürdürülebilir bir maliyet yapısı oluşturmak ve geliştirme süreçlerimi hızlandırmak her zaman önceliklidir.

Maliyet yönetimi konusunda, Cline’ın birden fazla LLM sağlayıcısını desteklemesi altın değerindedir. Örneğin, bir projenin başlangıcında veya hızlı prototipleme aşamalarında Groq gibi çok daha hızlı ve maliyet etkin modelleri kullanırım. Bu modeller, genellikle saniyede yüzlerce token üretebildiği için, iteratif kodlama denemelerinde veya basit görevlerde mükemmeldir. Daha sonra, kodun kritik bölümleri için veya daha karmaşık mantık gerektiren durumlarda OpenAI’ın GPT-4 veya Google’ın Gemini gibi daha pahalı ama yetenekli modellerine geçiş yaparım. Bu katmanlı yaklaşım, toplam maliyeti belirgin ölçüde düşürürken, kalite ve yetenekten ödün vermememi sağlar.

Performans iyileştirmeleri için, hız önemli bir faktördür. Özellikle interaktif kodlama asistanları için, kullanıcının beklediği yanıt süresi kritik. Groq’un sunduğu düşük gecikme süreleri bu konuda büyük avantaj sağlar. Ayrıca, Cline agent’larında istemci tarafında rate limiting uygulamak, API sağlayıcılarının limitlerine takılmamı engeller ve hataları azaltır. Bir üretim ERP’sinde IFRS entegrasyonu için AI destekli raporlama yaparken, API limitlerine takılmak tüm süreci yavaşlatabiliyordu; bu yüzden rate limiting mekanizmaları geliştirmek zorunda kalmıştım.

Daha da ileri giderek, fallback stratejileri oluşturmak sistemin dayanıklılığını artırır. Cline yapılandırmasında birden fazla LLM sağlayıcısı tanımlayarak, bir sağlayıcının API’si kesintiye uğradığında veya belirli bir model kullanılamadığında otomatik olarak başka bir sağlayıcıya geçiş yapacak şekilde agent’larımı ayarlayabilirim. Bu, özellikle 7/24 çalışması beklenen bir sistemde kesintisiz hizmet için önemlidir.

Son olarak, tamamen “ücretsiz” bir deneyim arayanlar için yerel LLM’leri entegre etme potansiyeli de var. Ollama veya LM Studio gibi araçlar aracılığıyla kendi sunucumda küçük açık kaynaklı modelleri (örneğin Llama 3’ün daha küçük versiyonları) çalıştırabilirim. Bu, özellikle hassas verilerle çalışırken veya internet bağlantısı olmayan ortamlarda AI kodlama yetenekleri sağlamak için idealdir. Kendi VPS’imde bazı iç araçlar için bu tarz yerel modelleri denemiştim, ancak genellikle CPU veya RAM kısıtlamaları nedeniyle büyük modeller için yeterli performansı alamıyordum. Ancak, basit görevler için kesinlikle değerlendirilebilir bir seçenektir.

Bu yaklaşımlar sayesinde, AI kodlama yeteneklerimi genişletirken, hem bütçemi koruyor hem de geliştirme süreçlerimin verimliliğini artırıyorum.

Sonuç

Cline, abonelik ücretlerine bağlı kalmadan, esnek ve maliyet etkin bir şekilde AI kodlama agent’ları çalıştırmak isteyen herkes için güçlü bir çözüm sunuyor. Benim gibi farklı LLM’lerin güçlü yönlerinden faydalanmak ve vendor lock-in riskini minimize etmek isteyen geliştiriciler için Cline, gerçekten bir oyun değiştirici oldu. Kendi yan ürünlerimde ve çeşitli müşteri projelerinde edindiğim tecrübelerle sabit ki, doğru araçlar ve stratejilerle AI’ın gücünü, bütçenizi zorlamadan kendi lehinize çevirebilirsiniz.

Bu rehberde, Cline’ın ne olduğundan, agent mimarisinin nasıl çalıştığından, kurulum adımlarından, kendi kodlama agent’ımı nasıl oluşturduğumdan ve son olarak maliyet yönetimi ve performans iyileştirmeleri için hangi ipuçlarını kullandığımdan bahsettim. Unutmayın, AI araçları sadece birer yardımcıdır; asıl yetenek, onları doğru ve verimli bir şekilde kullanabilmektir. Cline ile bu yeteneği daha da geliştirebilirsiniz.

Bir sonraki adım olarak, kendi Cline agent’ınızı kurup farklı LLM modelleri ve custom tool’lar ile denemeler yapmanızı şiddetle tavsiye ederim. Kendi spesifik ihtiyaçlarınıza göre agent’ınızı özelleştirerek, kodlama iş akışlarınızı ne kadar hızlandırabileceğinize siz de şaşıracaksınız.

Paylaş:

Bu yazı faydalı oldu mu?

Yükleniyor...

Bu yazı nasıldı?

Sıkça Sorulanlar

Bu makale ile ilgili okurların sorduğu yaygın sorular.

Cline'i kullanarak abonelik ödemeden AI kodlama agent'larını çalıştırmak için hangi adımları takip etmem gerekir?
Benim deneyimime göre, ilk olarak Cline'ın nasıl çalıştığını ve sunduğu avantajları anlamak önemlidir. Daha sonra, farklı LLM sağlayıcılarını ve modellerini inceleyerek hangilerini kullanacağımı belirledim. Son olarak, Cline'ı yerel veya uzaktan çalıştırmak için gerekli araçları ve framework'ü kurup, AI agent'larını çalıştırmaya başladım. Bu sayede, abonelik ödemeden esnek bir şekilde AI kodlama agent'larını kullanabiliyorum.
Cline ile birden fazla AI modelini kullanmanın avantajları ve dezavantajları nelerdir?
Benim tecrübem, Cline'ın birden fazla AI modelini kullanmanın avantajlarının başında maliyet kontrolü ve esneklik geldiğini gösteriyor. Farklı modellerin güçlü yönlerinden faydalanabiliyorum ve tek bir sağlayıcıya bağlı kalmıyorum. Ancak, birden fazla modeli yönetmek ve entegre etmek biraz daha karmaşık olabilir. Buna rağmen, Cline'ın sunduğu avantajlar, dezavantajları gölgede bırakıyor ve benim için doğru bir tercih oluyor.
Cline'ı kullanarak AI kodlama agent'larını çalıştırırken hata veya sorunlarla karşılaşırsam ne yapmalıyım?
Benim deneyimlerime göre, Cline'ı kullanırken hata veya sorunlarla karşılaşmak möglich. Böyle bir durumda, ilk olarak Cline'ın resmi dökümantasyonuna ve topluluk kaynaklarına başvuruyorum. Eğer sorun devam ederse, LLM sağlayıcılarının destek ekibleriyle iletişime geçiyorum. Ayrıca, Cline'ın geliştirici topluluğunda benzer sorunları yaşayan diğer kullanıcıların deneyimlerinden de yararlanabiliyorum.
Cline'ı kullanmak yerine tek bir AI modelini veya sağlayıcıyı kullanmanın avantajları ve dezavantajları nelerdir?
Benim tecrübem, tek bir AI modelini veya sağlayıcıyı kullanmanın avantajlarının başında basitlik ve kolaylık geldiğini gösteriyor. Ancak, bu approachın dezavantajı, esneklik ve maliyet kontrolü açısından kısıtlı olmak. Cline'ı kullanarak, birden fazla modeli ve sağlayıcıyı entegre edebiliyorum ve bu sayede daha esnek ve maliyet efektif bir çözüm elde edebiliyorum. Dolayısıyla, benim için Cline kullanımı daha avantajlı bir tercih oluyor.
ME

Mustafa Erbay

Sistem Mimarisi · Network Uzmanı · Altyapı, Güvenlik ve Yazılım

2006'dan bu yana sistem mimarisi, network, sunucu altyapıları, büyük yapıların kurulumu, yazılım ve sistem güvenliği ekseninde çalışıyorum. Bu blogda sahada karşılığı olan teknik deneyimlerimi paylaşıyorum.

Kişisel Notlar

Bu notlar sadece sizde saklanır. Tarayıcınızda yerel olarak tutulur.

Hazır 0 karakter

Yorumlar

Sunucu Taraflı AI Moderasyon

Yorumlar sunucuda yapay zeka ile denetlenir ve kalıcı olarak saklanır.

?
0/2000

Sunucu taraflı AI denetim

✉️ Ücretsiz · Spam yok · İstediğin an çık

Yeni yazılardan haberdar olun

Yeni içerikler ve teknik notlar e-postanıza gelsin.

  • 📌
    Haftanın en iyisi Sadece okumaya değer tek yazı
  • 🔧
    Alet çantası Bu hafta kullandığım araçlar
  • 🧠
    Perde arkası Blog'a girmeyen notlar

Spam yapmıyoruz. İstediğiniz zaman ayrılabilirsiniz. · Sadece Umami (self-hosted, Google yok) ile takip.

Okuma İstatistikleriniz

0

Yazı Okundu

0dk

Okuma Süresi

0

Gün Serisi

-

Favori Kategori

İlgili Yazılar