API Service v3.0 Live

Haber Botu v3.0

Yapay zeka entegrasyonlu ve sıfır kaynak tüketimli otonom içerik yönetim ve senkronizasyon sistemi.

Ortalama İşlem Hızı
850ms
Yapay Zeka Özgünlük Oranı
%98.4
Sunucu Kaynak Tasarrufu
%40
Günlük İçerik Kapasitesi
10.000+
ENGINEERED WITH: PHP MVC MySQL PostgreSQL OpenAI API Gemini API WordPress REST API Cron Jobs cURL JSON

Technical Overview

The Challenge

Geleneksel RSS/Web scraping botları, hedef kaynaklardaki içerikleri birebir kopyaladığı için arama motorları (özellikle Google E-E-A-T algoritmaları) tarafından "özgün olmayan/kopya içerik" olarak işaretlenmekte ve sitelerin ceza almasına yol açmaktadır. Ayrıca, yüksek trafikli haber sitelerinden eşzamanlı veri çekme işlemleri, sunucularda ciddi CPU/RAM darboğazlarına, asenkron yönetim eksikliği ise veri kayıplarına neden olmaktadır.

The Solution

Geliştirilen otonom sistem; asenkron cron görevleri yönetimiyle hedef kaynakları (RSS/JSON API) milisaniyeler içinde tarar. Çekilen ham verileri filtreleyerek OpenAI/Gemini API modelleri üzerinden anlık olarak yeniden yorumlatır (re-write), başlıkları ve meta yapılarını SEO uyumlu hale getirir. İşlenen benzersiz içerikleri, WordPress REST API katmanı üzerinden hedef sitelere insan müdahalesine gerek kalmadan, kuyruk yönetimi (Queue Management) prensibiyle sıfır kayıpla aktarır.

Architecture Logic

1

Keşif ve Kazıma (Scraping)

Cron entegrasyonlu asenkron arka plan işçileri, hedef kaynakları (RSS/API) tarayarak yeni içerik ID'lerini ve ham verileri tespit eder.

2

Veri Temizleme ve Ayrıştırma

Ham HTML ve metin verileri cURL ve DOM ayrıştırıcıları ile filtrelenerek gereksiz script, reklam ve CSS kodlarından arındırılır.

3

AI Adaptasyon Katmanı

Temizlenen metin, OpenAI/Gemini API'lerine gönderilerek anlamsal bütünlük korunarak, tamamen özgün ve E-E-A-T kriterlerine uygun şekilde yeniden yazılır.

4

Otonom Yayınlama (REST API)

Özgünleştirilen içerik, ilgili kategoriler, etiketler ve otomatik üretilen meta verilerle birlikte WordPress REST API üzerinden hedef platforma güvenli bir şekilde aktarılır ve yayına alınır.

Live Playground

Aşağıdaki input ile sistemi anlık olarak simüle edebilirsiniz.

php
<?php

namespace Zertucha\Automation;

class NewsBotEngine 
{
    private $apiClient;
    private $proxyRotation = [];

    public function __construct($aiClient) 
    {
        $this->apiClient = $aiClient;
    }

    /**
     * Ham içeriği AI modelleri kullanarak özgünleştirir ve SEO uyumlu hale getirir.
     */
    public function processPayload(array $rawArticle): array 
    {
        $prompt = "Aşağıdaki haberi kurumsal, tarafsız ve SEO odaklı olarak yeniden yaz: " . $rawArticle['content'];
        
        try {
            $aiResponse = $this->apiClient->generateContent([
                'model' => 'gemini-pro',
                'prompt' => $prompt,
                'temperature' => 0.7
            ]);

            return [
                'status' => 'success',
                'title' => $this->optimizeTitle($rawArticle['title']),
                'content' => $aiResponse->text,
                'processed_at' => date('Y-m-d H:i:s')
            ];
        } catch (\Exception $e) {
            error_log("Automation Engine Error: " . $e->getMessage());
            return ['status' => 'failed', 'error' => $e->getMessage()];
        }
    }

    private function optimizeTitle(string $title): string 
    {
        return ucwords(lowercase($title)) . " - Son Dakika Haberleri";
    }
}
Size nasıl yardımcı olabiliriz?
ZerX
ZerX AI Çevrimiçi
Merhaba! Ben ZerX
Zertucha laboratuvarından geliyorum. Size nasıl yardımcı olabilirim?
AI
ZerX
if (input) input.value = ''; if (btn) btn.disabled = true; body.scrollTop = body.scrollHeight; // Yazıyor animasyonu const typingId = 'zerx-typing-' + Date.now(); body.innerHTML += `
`; body.scrollTop = body.scrollHeight; try { const response = await fetch('https://zertucha.com/api/zerx/chat', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ message: msg, page_title: document.title, page_url: window.location.href, csrf_token: '8d5a1714494b1b07d97a60e81035c8ec9f9c3d32658ef526935a361e379b5dbb' }) }); const rawText = await response.text(); let data; try { data = JSON.parse(rawText); } catch(e) { document.getElementById(typingId)?.remove(); body.innerHTML += `
Sunucu yanıtı işlenemedi. Lütfen tekrar deneyin.
`; body.scrollTop = body.scrollHeight; if (btn) btn.disabled = false; return; } document.getElementById(typingId)?.remove(); if (data.status === 'success') { const replyHtml = zerxEscape(data.reply).replace(/\n/g, '
'); let html = `
${replyHtml}
`; if (data.suggestions && data.suggestions.length > 0) { html += '
'; data.suggestions.forEach(s => { html += ``; }); html += '
'; } body.innerHTML += html; } else { body.innerHTML += `
⚠️ ${zerxEscape(data.message || 'Bir hata oluştu.')}
`; } } catch (e) { document.getElementById(typingId)?.remove(); body.innerHTML += `
⚠️ Bağlantı hatası: ${zerxEscape(e.message)}
`; } body.scrollTop = body.scrollHeight; if (btn) btn.disabled = false; if (input) input.focus(); }; // XSS koruması function zerxEscape(str) { return String(str) .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"'); } // Sohbeti temizle document.addEventListener('click', function(e) { if (e.target && e.target.closest && e.target.closest('#zerx-clear-btn')) { const body = document.getElementById('zerx-chat-body'); if (!body) return; body.innerHTML = `
Sohbet temizlendi. Size nasıl yardımcı olabilirim? ⚡
`; } }); // Event delegation document.addEventListener('click', function(e) { if (!e.target || !e.target.closest) return; const toggleEl = e.target.closest('[data-zerx-action="toggle"]'); if (toggleEl) { window.toggleZerX(); return; } const sendEl = e.target.closest('[data-zerx-action="send"]'); if (sendEl) { window.sendZerXMessage(); return; } const chip = e.target.closest('.zerx-chip'); if (chip) { const msg = chip.getAttribute('data-msg'); if (msg) window.sendZerXMessage(msg); return; } }, true); // Enter tuşu document.addEventListener('keydown', function(e) { const input = document.getElementById('zerx-input'); if (!input || e.target !== input || e.key !== 'Enter') return; e.preventDefault(); window.sendZerXMessage(); }, true); })();