Tüm Blog Yazıları
Şirket Verinizi Dışarı Çıkarmayın: Lokal LLM (Ollama) Nasıl Kurulur ve Oracle APEX'e Nasıl Bağlanır?
28 Mart 2026

Şirket Verinizi Dışarı Çıkarmayın: Lokal LLM (Ollama) Nasıl Kurulur ve Oracle APEX'e Nasıl Bağlanır?

Yapay Zeka (AI) gücünü kullanmak istiyor ancak kritik şirket verilerinizi bulut servislerine göndermekten çekiniyor musunuz? Ollama ile kendi sunucunuzda ücretsiz, %100 yerel bir LLaMA 3 modelini nasıl çalıştıracağınızı ve Oracle APEX içerisinden APEX_WEB_SERVICE ile bu modelle nasıl konuşacağınızı adım adım anlatıyoruz.

Veri Gizliliği ve Yerel Yapay Zeka Çözümleri

Modern teknoloji dünyasında ChatGPT, Claude gibi büyük dil modellerinin (LLM) yetenekleri inkar edilemez. Ancak hastane veritabanları, finansal işlemler veya gizli müşteri kayıtları gibi hassas veriler içeren Oracle APEX projelerinde bu verileri genel bir dış API'ye göndermek %100 bir güvenlik riski (KVKK/GDPR ihlali) taşır.

Peki ya, dünya çapında kabul görmüş açık kaynaklı bir yapay zeka modelini (Örn: LLaMA 3) tamamen kendi şirket sunucumuzda (lokalde) çalıştırsak ve hiçbir verimiz internete çıkmadan APEX uygulamamızın içinde bir asistan gibi çalışsa harika olmaz mıydı? İşte bugün, Ollama aracı ve Oracle APEX REST entegrasyonu sayesinde bunu tam olarak nasıl yapacağınızı teknik detaylarıyla inceliyoruz.

Lokal Sunucu Mimarisi

Adım 1: Ollama ile Lokal LLM Kurulumu

Ollama, büyük dil modellerini kişisel bilgisayarınızda veya sunucunuzda saniyeler içinde ayağa kaldırmanızı sağlayan olağanüstü kolay bir araçtır.

1. Ollama'yı İndirin ve Kurun

Sunucunuza MacOS, Linux veya Windows uyumlu Ollama paketini kurarak başlayın (Linux için):

curl -fsSL https://ollama.com/install.sh | sh

2. Bir Dil Modeli İndirin ve Çalıştırın

Meta'nın geliştirdiği ve oldukça başarılı olan llama3 modelini sisteminize çekin ve çalıştırın:

ollama run llama3

Bu komut modeli otomatik olarak indirir ve sizin için bir Terminal arayüzü başlatır. Ancak bizim için asıl önemli olan nokta, Ollama'nın arka planda http://localhost:11434 portunda bekleyen RESTful bir API sunucusu çalıştırmasıdır.

Adım 2: Ollama REST API'yi Test Etmek

Oracle APEX'e geçmeden önce, Ollama sunucusuna basit bir HTTP POST isteği göndererek modelin çalışıp çalışmadığını cURL ile doğrulayalım.

curl http://localhost:11434/api/generate \
  -d '{
    "model": "llama3",
    "prompt": "Bana Oracle veritabanının bir özelliğini tekümlede söyle.",
    "stream": false
  }'

Bu istek gönderildiğinde, sunucunuz model parametrelerini kullanarak sorunuzu işler ve JSON formatında bir yanıt döner: {"response": "Oracle veritabanı, yüksek erişilebilirlik..."}. "stream": false parametresi, cevabın parça parça dökülmesini engelleyip metni tek parça JSON olarak dönmesini sağlar (Oracle entegrasyonu için hayat kurtarıcı bir parametredir).

Adım 3: Oracle APEX İçinden Ollama çağırma

Artık lokalimizde API formunda bekleyen bir yapay zekamız var! Veritabanımızdan bu API'ye ulaşmak için apex_web_service.make_rest_request paketini kullanacağız.

Örneğin bir APEX Dynamic Action (PL/SQL Code) içinde veya bir Proses (Process) adımında LLM çağırıp uygulamaya sonucu döndüren standart şablon kod aşağıdadır:

DECLARE
    l_url      VARCHAR2(100) := 'http://localhost:11434/api/generate'; -- Sunucu IP'nizle değiştirin
    l_payload  CLOB;
    l_response CLOB;
    
    l_values   apex_json.t_values;
    l_ai_text  VARCHAR2(32767);
BEGIN
    -- 1. Ollama için Payload Gövdesini Hazırlayın
    -- Şirket metninizi veya kullanıcı mesajını (APP_USER) buraya bind edebilirsiniz
    l_payload := '{
        "model": "llama3",
        "prompt": "Müşterinin bıraktığı şu şikayeti sıcak bir dille yanıtla: Müşteri siparişi geç kaldı.",
        "stream": false
    }';

    -- 2. İstek Başlıklarını (Header) JSON tipinde belirleyin
    apex_web_service.g_request_headers.delete;
    apex_web_service.g_request_headers(1).name  := 'Content-Type';
    apex_web_service.g_request_headers(1).value := 'application/json';

    -- 3. Ollama Sunucusuna İstek Gönder
    l_response := apex_web_service.make_rest_request(
        p_url         => l_url,
        p_http_method => 'POST',
        p_body        => l_payload
    );

    -- 4. Dönen Raw JSON'dan Sadece "response" Değerini Çıkarın (Parse)
    apex_json.parse(
        p_values => l_values,
        p_source => l_response
    );
    
    l_ai_text := apex_json.get_varchar2(
        p_path   => 'response',
        p_values => l_values
    );

    -- 5. Sonucu APEX Sayfa Bileşenine Yazdırın
    -- (Örneğin :P1_AI_SONUC isimli Text Area item'ina)
    :P1_AI_SONUC := l_ai_text;
    
EXCEPTION WHEN OTHERS THEN
    :P1_AI_SONUC := 'Hata oluştu: Sunucuya ulaşılamıyor (ACL ayarlarını kontrol edin).';
END;

Kritik Oracle Güvenlik Adımları (ACL)

Veritabanınızın ağ üzerinden localhost:11434 veya sunucu IP'sine dışarı (outbound) HTTP çağrısı yapabilmesi için, DBA yetkilerinizle Access Control Lists (ACL) izinlerini önceden veritabanına tanımlamış olmanız şarttır. Aksi halde APEX "ORA-24247: network access denied by access control list" hatası dönecektir.

Sonuç

İşte bu kadar basit! Bu entegrasyon sayesinde veritabanı içerisinde yer alan raporlarınızı özetleyebilen, müşteri yorumlarını sınıflayabilen (sentiment analysis) veya formlara otomatik açıklama doldurabilen %100 yerel ve ücretsiz bir asistan kurmuş olduk.

Büyük Veri işlemleri ve Oracle Yapay Zeka mimarileri konusunda proje bazlı profesyonel bir şirket çözümü arıyorsanız, web sitemizin Teklif Al sayfasından Sardunya Yazılım ekibiyle iletişime geçebilirsiniz.