Yanlış bilginin, propagandanın ve doğrulanmamış iddiaların arasında bir şeyleri sorgulama ihtiyacından doğan açık kaynak bir proje. Nasıl geliştirdim, nasıl çalışıyor ve kendi bilgisayarında nasıl kurabilirsin?

Kategori: Code / Open Source / AI
Proje: FACT — Public Evidence Verification Engine
GitHub: https://github.com/alesmcgregor/fact
Canlı uygulama: https://dr.ales.work


Her Şey Basit Bir Soruyla Başladı

Hiç internette bir video izlerken kendi kendinize, "Bir dakika, bu anlatılanlar gerçekten doğru mu?" diye sordunuz mu?

Ben sordum. Hem de defalarca.

YouTube'da bir video açıyorsunuz. X'te bir paylaşım görüyorsunuz. Sosyal medyada biri oldukça iddialı açıklamalar yapıyor.

Konu bazen siyaset, bazen tarih, bazen uluslararası ilişkiler, bazen de henüz birkaç saat önce gerçekleştiği iddia edilen bir olay.

Her şey oldukça ikna edici görünüyor.

Arka planda dramatik bir müzik, özenle seçilmiş görüntüler, birkaç ekran görüntüsü ve son derece kendinden emin konuşan bir anlatıcı.

Bir de sıkça duyduğumuz o ifade var:

"Resmî kaynaklara göre..."

Peki, hangi resmî kaynaklar?

Belgenin aslı nerede? Kim yayımlamış? Ne zaman yayımlamış? Ve en önemlisi, o belgede gerçekten anlatıldığı gibi mi yazıyor?

İşte benim takıldığım nokta tam olarak burası.

Bugün bilgiye ulaşmak hiç olmadığı kadar kolay. Fakat bilgiye kolay ulaşabiliyor olmamız, ulaştığımız her şeyin doğru olduğu anlamına gelmiyor.

Elbette insanları gerçekten bilgilendirmeye çalışan içerik üreticileri var. Yanlış bilgiyi farkında olmadan paylaşanlar da var. Bir de olayları araştırmak yerine önceden belirlenmiş bir anlatıyı destekleyecek şekilde sunanlar var.

Burada herhangi bir YouTube kanalının veya sosyal medya hesabının adını vermeyeceğim. Zaten amacım da kimseyi hedef göstermek değil.

Beni asıl düşündüren şey, doğrulanmamış bir iddianın yeterince tekrarlandığında zamanla nasıl kabul görmüş bir gerçeğe dönüşebildiği.

Ve bir noktada kendi kendime şunu sordum:

Bir anlatıya inanmak yerine, o anlatının dayandığı kanıtları araştırmamıza yardımcı olacak bir sistem neden geliştirmeyelim?

FACT projesinin çıkış noktası tam olarak buydu.

Bir Gerçeklik Makinesi Yapmaya Çalışmıyorum

Öncelikle bir konuda anlaşalım.

Yapay zekânın neyin doğru, neyin yanlış olduğuna tek başına karar vermesi gerektiğini düşünmüyorum.

Hatta bir yazılımın insanları yalancı, propagandacı veya kötü niyetli olarak sınıflandırmasını da doğru bulmuyorum.

Böyle bir yaklaşım oldukça tehlikeli olabilir.

Benim geliştirmek istediğim şey bundan daha basit, fakat bana göre daha faydalı.

Şöyle düşünelim.

Bir YouTube videosu izliyorsunuz. Konuşmacı video boyunca beş farklı iddiada bulunuyor.

Bu iddialar hakkında yorumlarda tartışmak yerine videonun bağlantısını bir sisteme verdiğinizi düşünün.

Sistem erişilebilen konuşma dökümünü inceliyor, doğrulanabilir iddiaları ayırıyor ve bunları ilgili kaynaklarla karşılaştırıyor.

Ama rastgele internet sitelerinde aynı şeylerin yazıyor olması yeterli değil.

Resmî açıklamalar, devlet kurumlarının yayımladığı belgeler, kurumsal kayıtlar ve bağımsız kaynaklar gibi izlenebilir kanıtlara ulaşmak gerekiyor.

Peki iki resmî kaynak birbirine zıt açıklamalar yapıyorsa?

İşte bu da son derece önemli.

Sistem bunlardan birini keyfî biçimde seçmemeli. Ortada bir çelişki varsa bunu açıkça göstermeli.

Bir başka konu daha var:

Bir iddiayı doğrulayacak kanıt bulunamaması, o iddianın mutlaka yanlış olduğu anlamına gelmez.

Belki ilgili belge henüz kamuya açık değildir. Belki videonun konuşma dökümüne erişilemiyordur. Belki de olay henüz bağımsız kaynaklarca doğrulanmamıştır.

Böyle durumlarda sistemin bilmediği şeyi biliyormuş gibi davranmasını istemedim.

Çünkü bazen belirsizlik bir yazılım hatası değildir.

Aksine, eldeki kanıtlarla ulaşılabilecek en doğru sonuç olabilir.

Peki FACT Tam Olarak Nedir?

FACT, açılımıyla Public Evidence Verification Engine, kamuya açık içeriklerdeki iddiaları kanıtlar üzerinden değerlendirmek amacıyla geliştirdiğim bir web uygulaması.

Projeyi Laravel, PHP, OpenAI Responses API ve çeşitli içerik erişim servisleri kullanarak hazırladım.

Çalışma mantığı oldukça basit.

Bir bağlantı veriyorsunuz.

FACT ilgili içeriğe erişmeye çalışıyor, doğrulanabilir iddiaları belirliyor, bu iddialarla ilgili kaynakları araştırıyor, elde edilen kanıtları değerlendiriyor ve inceleyebileceğiniz bir rapor oluşturuyor.

Uygulama şu anda altı dilde kullanılabiliyor:

  • İngilizce

  • Türkçe

  • Azerbaycan Türkçesi

  • Rusça

  • İspanyolca

  • Arapça

Arapça için sağdan sola yazım düzeni de destekleniyor.

Bu projeyi yalnızca tek bir ülkeye veya dile bağlı düşünmedim.

Çünkü yanlış bilgi sadece bir ülkede ortaya çıkmıyor. Dolayısıyla onu araştırmak için kullandığımız araçların da mümkün olduğunca geniş bir kitleye hitap etmesi gerektiğini düşünüyorum.

Hangi İçerikleri İnceleyebiliyor?

FACT, kamuya açık haber sayfalarını ve desteklenen sosyal medya bağlantılarını analiz etmek üzere tasarlandı.

YouTube, X, Instagram, Facebook ve TikTok gibi platformlar için içerik erişim mekanizmaları bulunuyor.

Sosyal medya içeriklerinin metin ve konuşma dökümlerine ulaşmak için isteğe bağlı Supadata entegrasyonu kullanılabiliyor. YouTube için ayrıca özel bir transkript erişim mekanizması da geliştirdim.

Ancak burada önemli bir sınır var.

Her videonun konuşma dökümü erişilebilir olmayabiliyor. Bazı platformlar otomatik erişimi kısıtlıyor. Bazen de içerik sağlayıcısı gerekli veriyi sunamıyor.

Bu gibi durumlarda FACT'ın olmayan bir konuşmayı varmış gibi üretmesi yerine erişim sınırını açıkça belirtmesini tercih ettim.

Gerekirse kullanıcı kendi elindeki konuşma dökümünü de sisteme verebiliyor.

Tabii kullanıcı tarafından sağlanan metnin gerçekten orijinal videoyla aynı olduğunu sistemin bağımsız olarak doğruladığını söyleyemeyiz.

Bir de özellikle belirtmek istiyorum:

FACT şu an video görüntülerinin sahte olup olmadığını, sesin yapay zekâyla taklit edilip edilmediğini veya bir kaydın manipüle edilip edilmediğini bağımsız olarak doğrulamıyor.

Bunlar farklı teknik problemler.

Bir insanın söylediği iddiayı araştırmak başka, o insanın gerçekten o sözleri söyleyip söylemediğini kanıtlamak başka.

Bu iki konuyu birbirinden ayırmak gerekiyor.

FACT Nasıl Çalışıyor?

Şimdi biraz sistemin içine bakalım.

1. Bağlantıyı veriyoruz

Kullanıcı, analiz etmek istediği kamuya açık içeriğin bağlantısını giriyor.

FACT önce adresin geçerli ve güvenli olup olmadığını kontrol ediyor.

Örneğin uygulamanın kullanıcı tarafından verilen bir adres üzerinden sunucunun özel ağındaki servislere erişmesini engellemek için çeşitli güvenlik kontrolleri bulunuyor.

2. İçerik okunuyor

Bağlantı bir haber sayfasıysa okunabilir metin çıkarılıyor.

Bir video bağlantısıysa erişilebilir konuşma dökümü ve ilgili bilgiler alınmaya çalışılıyor.

3. Doğrulanabilir iddialar belirleniyor

Bence sistemin önemli aşamalarından biri burası.

Çünkü her cümle doğrulanabilir bir iddia değildir.

Örneğin:

"Bence bu karar son derece kötü."

Bu bir görüş.

Ama:

"Bu karar 15 Eylül tarihinde resmen kabul edildi."

Bu doğrulanabilir bir iddia.

İkinci ifadeyi resmî karar kayıtlarıyla karşılaştırabiliriz.

4. Kanıtlar araştırılıyor

OpenAI tabanlı analiz sağlayıcısı, web aramasından yararlanarak ilgili iddiaları araştırıyor.

Sistemde Türkiye ve Azerbaycan'daki bazı resmî kurumlarla başlayan bir kaynak kayıt yapısı bulunuyor.

Bunun yanında uluslararası kurumların alan adları ve bağımsız yayıncılar da değerlendirme sürecinde kullanılabiliyor.

5. Kanıtlar değerlendiriliyor

Burada özellikle yapay zekânın yorumuyla yazılımın puanlama mekanizmasını birbirinden ayırmak istedim.

FACT'ın kendi deterministik puanlama bileşeni var.

Yani sistem sadece yapay zekâya "Bu bilgiye ne kadar güveniyorsun?" diye sormuyor.

Kaynak türlerini, destekleyici ve çelişen kanıtları, farklı yayıncıları ve kaynak tarihlerini belirli kurallar çerçevesinde değerlendiriyor.

Ancak burada küçük ama önemli bir ayrıntı var.

Bir iddianın 85 puan alması, o iddianın yüzde 85 ihtimalle doğru olduğu anlamına gelmiyor.

Bu bir kanıt değerlendirme endeksi.

İstatistiksel olarak hesaplanmış doğruluk olasılığı değil.

6. Sonuç raporu hazırlanıyor

Son aşamada analiz edilen iddialar, bunların değerlendirme sonuçları, kaynak bağlantıları ve varsa analiz sınırlamaları bir raporda sunuluyor.

Raporun paylaşılabilir bir bağlantısı da oluyor.

Böylece kullanıcı sadece sonucu görmekle kalmıyor, o sonuca hangi kanıtlarla ulaşıldığını da inceleyebiliyor.

Benim istediğim tam olarak buydu.

Sihirli bir doğru-yanlış düğmesi değil.

İncelenebilir bir araştırma süreci.

Resmî Kaynaklar Neden Önemli? Peki Her Zaman Yeterli mi?

Şimdi haklı olarak şöyle sorabilirsiniz:

"Resmî kaynaklara bu kadar önem veriyorsun ama resmî kurumlar da yanlış veya yanıltıcı açıklamalar yapamaz mı?"

Elbette yapabilirler.

Resmî bir açıklama, öncelikle ilgili kurumun o açıklamayı yaptığını doğrulamamıza yardımcı olur.

Ancak bu, açıklamanın içindeki bütün iddiaların otomatik olarak doğru olduğu anlamına gelmez.

Özellikle siyasi ve uluslararası meselelerde bu ayrımı yapmak gerekiyor.

Örneğin bir kanunun kabul edilip edilmediğini araştırıyorsak resmî gazete veya parlamento kayıtları oldukça güçlü birincil kaynaklardır.

Ama aynı kanunun toplum üzerindeki etkilerini araştırıyorsak bağımsız araştırmalara, verilere ve farklı kurumların çalışmalarına da ihtiyaç duyabiliriz.

Dolayısıyla FACT'ı sadece tek bir kaynak türüne bağımlı olacak şekilde tasarlamadım.

Farklı kaynakların iddialarla ilişkisini değerlendiren bir yapı kurdum.

Hatta resmî kaynakların kendi aralarında çelişmesi için ayrı bir sonuç sınıfı bulunuyor.

Yine de mevcut algoritmanın geliştirilebilecek yönleri var.

Örneğin beş farklı haber sitesinin aynı haber ajansından aldığı metni yayımlaması, gerçekte beş bağımsız doğrulama yapıldığı anlamına gelmez.

Bu tür ilişkileri daha iyi tespit edebilen mekanizmalar geliştirmek istiyorum.

Çünkü bir doğrulama sistemi kendi yöntemlerini de sorgulayabilmeli.

Aksi halde bir tür yanlış güven duygusunun yerine başka bir yanlış güven duygusu koymuş oluruz.

Biraz da Teknik Tarafa Bakalım

Projeyi geliştirirken mümkün olduğunca anlaşılır, modüler ve geliştirilebilir bir mimari kullanmaya çalıştım.

Kullandığım temel teknolojiler:

Bileşen

Teknoloji

Backend

PHP 8.3+ / Laravel 13

Frontend

Blade / Tailwind CSS 4 / Vite

Veritabanı

SQLite, MySQL veya PostgreSQL

Arka plan işlemleri

Laravel Queue / Scheduler

Yapay zekâ

OpenAI Responses API

Web araştırması

OpenAI Web Search

Sosyal medya verileri

Supadata (isteğe bağlı)

Özellikle servislerin birbirinden ayrılmış olmasına dikkat ettim.

İçerik toplama, yapay zekâ analizi, kanıt puanlama ve rapor oluşturma ayrı bileşenler üzerinden yürütülüyor.

Bu yaklaşımın önemli bir avantajı var.

Örneğin ileride farklı bir yapay zekâ sağlayıcısı kullanmak istersem bütün uygulamayı baştan yazmak zorunda kalmam.

Analiz sağlayıcısı bir arayüz sözleşmesi üzerinden çalışıyor.

Bu da yeni sağlayıcılar eklemeyi kolaylaştırıyor.

Ayrıca URL güvenliği, HTML içerik çıkarma, YouTube transkriptleri ve sosyal medya içerikleri için ayrı servisler bulunuyor.

Güvenlik tarafında da özel ağ adreslerine erişimin engellenmesi, DNS kontrolü, güvenli yönlendirme, istek sınırlandırması ve çıktıların güvenli gösterilmesi gibi mekanizmalar mevcut.

Bunlar elbette uygulamanın hiçbir zaman saldırıya uğramayacağı anlamına gelmiyor.

Ama en azından güvenliği sonradan düşünülecek bir ayrıntı olarak görmedim.

Tutorial: FACT'ı Kendi Bilgisayarımıza Kuralım

Gelelim işin uygulamalı kısmına.

Projeyi incelemek, üzerinde geliştirme yapmak veya kendi ortamınızda çalıştırmak istiyorsanız GitHub üzerinden kaynak koduna ulaşabilirsiniz.

GitHub: https://github.com/alesmcgregor/fact

Adım adım ilerleyelim.

Adım 1 — Gereksinimler

Öncelikle bilgisayarınızda şu araçların bulunması gerekiyor:

  • PHP 8.3 veya üzeri

  • Composer 2

  • Node.js 20.19+ veya 22.12+

  • npm

  • Git

  • SQLite veya Laravel'in desteklediği başka bir veritabanı

PHP tarafında curl, DOM, mbstring, OpenSSL ve kullanacağınız veritabanına uygun PDO sürücüsünün bulunması gerekiyor. intl eklentisini de öneriyorum.

Kurulu sürümleri kontrol etmek için terminalde:

php -v
composer --version
node -v
npm -v
git --version

komutlarını çalıştırabilirsiniz.

Adım 2 — GitHub Deposunu Klonlayalım

Terminali açıp aşağıdaki komutları çalıştırıyoruz:

git clone https://github.com/alesmcgregor/fact.git
cd fact

Ardından PHP bağımlılıklarını kuruyoruz:

composer install

Frontend bağımlılıklarını da yükleyelim:

npm ci

Adım 3 — Laravel Ortamını Hazırlayalım

Örnek ortam dosyasını kopyalayalım.

Linux veya macOS için:

cp .env.example .env

Windows PowerShell için:

Copy-Item .env.example .env

Ardından Laravel uygulama anahtarını oluşturalım:

php artisan key:generate

Yerel kurulum için SQLite kullanmak oldukça pratik.

Veritabanı dosyası henüz yoksa oluşturalım:

php -r "file_exists('database/database.sqlite') || touch('database/database.sqlite');"

Şimdi veritabanı tablolarını oluşturalım ve başlangıç verilerini ekleyelim:

php artisan migrate --seed

Bu işlem Türkiye ve Azerbaycan'daki bazı resmî kurumlara ait başlangıç kaynak kayıtlarını da ekleyecek.

İleride bu kaynak listesini farklı ülkeler ve kurumlarla genişletebilirsiniz.

Adım 4 — Frontend Dosyalarını Derleyelim

npm run build

Bu komut, arayüz dosyalarını Laravel'in kullanabileceği şekilde hazırlayacak.

Adım 5 — Uygulamayı Başlatalım

İlk terminalde:

php artisan serve

komutunu çalıştırıyoruz.

Laravel normal şartlarda bize şu adresi verecek:

http://127.0.0.1:8000

Şimdi aynı proje klasöründe ikinci bir terminal açıyoruz.

php artisan queue:work database --sleep=3 --tries=1 --timeout=240

Peki neden iki terminal kullanıyoruz?

Çünkü FACT analizleri arka planda işliyor.

Web uygulaması isteği kabul ediyor, arka plan işleyicisi analiz görevini yürütüyor ve tarayıcı işlemin hangi aşamada olduğunu takip ediyor.

Böylece uzun süren analizler doğrudan tek bir HTTP isteğine bağımlı kalmıyor.

Adım 6 — Önce Demo Modunu Deneyelim

Burada hoşuma giden bir ayrıntı var.

FACT varsayılan olarak mock, yani örnek sağlayıcılarla çalışabiliyor.

.env dosyanızda:

FACT_ANALYSIS_DRIVER=mock
FACT_CONTENT_DRIVER=mock

ayarları bulunmalı.

Bu mod sayesinde ücretli yapay zekâ API'sini kullanmadan uygulamanın temel çalışma akışını inceleyebilirsiniz.

Ancak unutmayın:

Demo modu gerçek kaynak araştırması veya gerçek doğrulama yapmaz.

Sadece sistemin nasıl çalıştığını görmek için hazırlanmış bir önizlemedir.

Adım 7 — Gerçek Yapay Zekâ Analizini Etkinleştirelim

Gerçek içerik analizi ve web araştırması yapmak istiyorsanız .env dosyanızı düzenlemeniz gerekiyor.

FACT_ANALYSIS_DRIVER=openai
FACT_CONTENT_DRIVER=safe

OPENAI_API_KEY=your_api_key
OPENAI_MODEL=gpt-6-luna
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_TIMEOUT=90

Burada OPENAI_API_KEY alanına kendi API anahtarınızı eklemelisiniz.

Projede varsayılan model adı gpt-6-luna olarak tanımlanmış durumda. Kendi API hesabınızda bu modelin kullanılabilir olduğundan emin olun. Gerekirse Responses API'yi destekleyen erişilebilir başka bir model seçebilirsiniz.

Sosyal medya içeriklerine erişim için isteğe bağlı Supadata entegrasyonunu da etkinleştirebilirsiniz:

SUPADATA_API_KEY=your_supadata_key

API anahtarlarını kesinlikle herkese açık kod dosyalarına veya GitHub'a yüklemeyin.

Ayarları değiştirdikten sonra:

php artisan config:clear
php artisan queue:restart

komutlarını çalıştırın.

Gerekiyorsa queue worker'ı yeniden başlatın.

Artık desteklenen kamuya açık bağlantılar üzerinden gerçek analizler gerçekleştirebilirsiniz.

Tabii OpenAI ve Supadata gibi servislerin kullanımına bağlı olarak API maliyetleri oluşabileceğini unutmayın.

Adım 8 — Testleri Çalıştıralım

Projeyi değiştirmeden önce mevcut testlerin başarılı çalıştığını görmek iyi bir alışkanlık.

Laravel testlerini çalıştırmak için:

php artisan test

Kod biçimlendirme kontrolleri için:

vendor/bin/pint --test

Frontend derlemesini kontrol etmek için:

npm run build

Projedeki testler URL güvenliği, içerik çıkarma, kanıt puanlama, dil desteği, arka plan işlemleri ve rapor gösterimi gibi farklı alanları kapsıyor.

Bu testler yerel uygulamanın beklenen davranışlarını kontrol etmemize yardımcı oluyor.

Ancak tek başına üretim ortamının tamamen güvenli olduğunu kanıtlamıyor.

Adım 9 — Sunucuya Kurulum

Projeyi yalnızca kendi bilgisayarınızda değil, bir sunucuda da çalıştırabilirsiniz.

Üretim ortamında .env dosyanızın ilgili ayarlarını şöyle yapılandırabilirsiniz:

APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.example
SESSION_SECURE_COOKIE=true
DB_QUEUE_RETRY_AFTER=300

Web sunucusunun kök dizini Laravel projesinin tamamına değil, public klasörüne yönlendirilmelidir.

HTTPS kullanın, API anahtarlarını güvenli tutun ve veritabanı yedeklemelerini yapılandırın.

Arka plan işleyicisinin sürekli çalışabilmesi için systemd veya Supervisor gibi bir servis yöneticisi kullanabilirsiniz.

Worker komutu:

php artisan queue:work database --sleep=3 --tries=1 --timeout=240

Laravel scheduler için:

php artisan schedule:run

Bu son komutun cron veya uygun bir zamanlayıcı aracılığıyla her dakika çalıştırılması gerekiyor.

Ayrıca API harcama limitleri, bağımlılık güvenlik taramaları, uygulama logları ve içerik erişim servisinin dış ağ bağlantılarına yönelik güvenlik kuralları da üretim ortamında dikkate alınmalı.

Daha fazla bilgi için GitHub deposundaki README.md ve SECURITY.md dosyalarını inceleyebilirsiniz.

FACT'ın API Yapısı

Projeyi kendi arayüzünüze entegre etmek veya farklı uygulamalarla kullanmak isterseniz JSON tabanlı uç noktaları da bulunuyor.

Metot

Adres

İşlev

POST

/api/analyses

Yeni analiz başlatır

GET

/api/analyses/{publicId}

Analiz durumunu ve sonucunu getirir

GET

/r/{publicId}

Herkese açık raporu gösterir

Analiz isteğinde URL, dil ve isteğe bağlı bazı araştırma tercihleri gönderilebiliyor.

İstekler Laravel'in güvenlik ve hız sınırlandırma mekanizmalarına tabi.

Özellikle tarayıcı dışından POST isteği göndermek istiyorsanız ilgili oturum ve CSRF gereksinimlerini de dikkate almalısınız.

Analiz durumları veritabanında tutuluyor. Raporlar ise tahmin edilmesi zor, sıralı olmayan kimliklerle erişilebilir hale getiriliyor.

Varsayılan rapor saklama süresi 90 gün. Bu süre yapılandırmadan değiştirilebiliyor.

FACT Tamamlanmış Bir Proje mi?

Hayır.

Ve açıkçası bunun kötü bir şey olduğunu düşünmüyorum.

Mevcut sürüm temel bir doğrulama altyapısı sunuyor. Ancak geliştirmek istediğim daha pek çok alan var.

Özellikle kaynakların gerçekten birbirinden bağımsız olup olmadığını daha iyi değerlendirmek istiyorum.

Bir haberin ilk kaynağını bulmak, aynı içeriğin farklı yayınlarda tekrar edilmesini ayırt etmek ve tarihsel bağlamı daha doğru değerlendirmek önemli.

Resmî kaynak kayıtlarını farklı ülkelerle genişletmek de hedeflerim arasında.

Bir başka konu da yapay zekânın kaynakları yanlış yorumlama ihtimali.

Yapay zekâ bir belgeyi bulmuş olabilir. Fakat o belgenin gerçekten araştırılan iddiayı destekleyip desteklemediğini ayrıca değerlendirmek gerekiyor.

İleride manipüle edilmiş medya içeriklerini araştırmaya yönelik farklı teknolojiler de projeye eklenebilir.

Ancak şimdilik temel odağım doğrulanabilir iddialar ve izlenebilir kanıtlar.

Çünkü bana göre bazen "Yeterli kanıt bulamadım" diyebilen bir sistem, her soruya kendinden emin cevaplar veren bir sistemden daha değerlidir.

Neden Açık Kaynak Olarak Paylaştım?

Bu tür sistemlerin kapalı kutular halinde çalışmasını doğru bulmuyorum.

Bir yazılım kanıtları değerlendirdiğini söylüyorsa, o değerlendirmenin nasıl yapıldığını da inceleyebilmeliyiz.

Bu yüzden FACT'ın kaynak kodunu GitHub üzerinden açık kaynak olarak paylaştım.

Proje MIT lisansı altında sunuluyor.

Yani geliştiriciler lisans koşullarına uyarak kaynak kodunu inceleyebilir, değiştirebilir, kendi projelerine uyarlayabilir ve yeniden dağıtabilir.

Bir gazeteci kendi araştırma ihtiyaçlarına göre farklı bir arayüz hazırlayabilir.

Bir araştırmacı belirli bir ülkenin resmî kurumlarını sisteme ekleyebilir.

Bir geliştirici farklı yapay zekâ modelleriyle deneyler yapabilir.

Bir öğrenci ise projenin mimarisini inceleyerek Laravel, API entegrasyonu ve arka plan işleme mekanizmaları hakkında bilgi edinebilir.

Benim için açık kaynak yaklaşımının en değerli tarafı bu.

Bir şey geliştiriyoruz, paylaşıyoruz ve başkaları onu inceleyip daha iyi hale getirebiliyor.

Üstelik herkesin kullanılan algoritmayla aynı fikirde olması gerekmiyor.

Tam tersine, sorgulanması ve eleştirilmesi gelişimin önemli bir parçası.

AI Agent Kullananlar İçin Küçük Bir Kolaylık

Eğer bir AI coding agent kullanıyorsanız kurulumun bütün aşamalarını elle yapmak zorunda değilsiniz.

Örneğin Goose veya benzeri bir kodlama ajanına bu makaleyi ve GitHub deposunu vererek yerel geliştirme ortamını hazırlamasını isteyebilirsiniz.

Aşağıdaki İngilizce prompt'u doğrudan kullanabilirsiniz:

I want to install and explore FACT, a Laravel-based
public evidence verification project.

Repository:
https://github.com/alesmcgregor/fact

Tutorial:
[PASTE THIS ARTICLE URL HERE]

Read the article and the repository README first.

Inspect the existing code and verify the system
requirements before changing anything.

Set up a working local environment, install the
dependencies, prepare the database, build the
frontend, and start the application and queue worker.

Use mock mode for the initial setup.
Do not activate paid API providers without approval.

Preserve the existing security controls.
Never expose API keys or secrets.

Run the available tests, report any failures,
and explain what was configured or changed.

Do not rewrite working components unnecessarily.

Burada mantık basit.

Ajana GitHub deposunu, kurulum talimatlarını ve ne yapmak istediğinizi anlatıyorsunuz.

O da mevcut sistemi inceleyerek kurulum adımlarını uygulamanıza yardımcı oluyor.

Elbette yaptığı değişiklikleri kontrol etmek, özellikle de sistemi internete açık bir sunucuya yüklemeden önce, hâlâ sizin sorumluluğunuzda.

Son Bir Düşünce

FACT'ı geliştirmeye başlama nedenim, insanların ortaya attıkları iddiaları bazen hiçbir kaynak göstermeden gerçekmiş gibi sunmalarından rahatsız olmamdı.

Ama projeyle uğraşırken başka bir şey daha fark ettim.

Asıl mesele yalnızca yanlış bilgi değil.

Neye, neden güvendiğimiz.

Profesyonel hazırlanmış bir video tek başına kanıt değildir.

Kendinden emin konuşan bir insan tek başına kanıt değildir.

Yapay zekânın son derece düzgün cümlelerle hazırladığı bir açıklama da tek başına kanıt değildir.

Bunların hepsi araştırmaya değer bir konuya işaret edebilir.

Fakat araştırmanın yerini tutmazlar.

FACT ile yapmak istediğim şey de tam olarak bu.

İnsanlara ne düşüneceklerini söylemek değil.

Sadece bir soruyu sormayı biraz daha kolaylaştırmak:

"Peki, elimizdeki kanıtlar gerçekten ne söylüyor?"

Çünkü bazen doğru soruyu sormak, hızlı bir cevap almaktan çok daha değerlidir.


Projeyi incelemek isteyenler için:

GitHub: https://github.com/alesmcgregor/fact

Canlı uygulama: https://dr.ales.work

FACT geliştirilmeye devam eden açık kaynak bir projedir. Güncel kurulum talimatları, desteklenen entegrasyonlar ve teknik sınırlamalar için GitHub deposunu inceleyebilirsiniz.