tag JSON
Bu sayfada JSON etiketi ile işaretlenmiş 3 yapay zeka kavramını bulabilirsiniz.
JSON (JavaScript Object Notation), insan tarafından okunabilir ve makineler arası veri değişimine uygun hafif bir metin tabanlı veri biçimidir. Douglas Crockford tarafından 2001 yılında tanımlanmış, RFC 8259 standardıyla resmileşmiş; günümüzde REST API'leri, yapılandırma dosyaları ve yapay zeka sistemleri arasında de facto veri alışveriş standardı konumundadır. JSON altı temel değer türü destekler: string (çift tırnak içinde metin), number (tam veya ondalıklı sayı), boolean (true/false), null (değersizlik) ile iki koleksiyon türü olan object (anahtar-değer çiftleri) ve array (değerler listesi). Sözdizimi minimal olduğundan tüm modern programlama dillerinde yerel destek mevcuttur. XML aksine şema gerektirmez; YAML kıyasla katı sözdizimi ayrıştırma tutarsızlıklarını önler. Yapay zeka ve LLM sistemlerinde JSON kritik öneme sahiptir. OpenAI, Anthropic ve Google gibi sağlayıcıların API'leri sohbet turlarını, araç tanımlarını (tool/function calling) ve model yanıtlarını JSON formatında iletir. Yapılandırılmış Çıktılar (Structured Outputs) özelliği, modelin JSON Schema'ya tam uyumlu yanıt üretmesini garanti ederek ayrıştırma hatalarını ortadan kaldırır. Pydantic ve Zod kütüphaneleri, JSON'ı Python ve TypeScript veri modellerine dönüştürmek için yaygın kullanılır. JSON Schema, bir JSON belgesinin yapısını, zorunlu alanlarını ve değer kısıtlamalarını tanımlayan bağımsız bir standarttır; LLM araç tanımlarının ve yapılandırılmış çıktı doğrulamasının temelini oluşturur. JSON Lines (.jsonl), her satırın bağımsız bir JSON nesnesi olduğu varyant olup LLM eğitim veri setlerinde ve büyük veri işleme boru hatlarında yaygın tercih görür. Hugging Face model hub'ında config.json ile tokenizer_config.json dosyaları model mimarisini ve tokenizer parametrelerini bu formatta tanımlar. Güvenilmez kaynaklardan gelen JSON verisi işlenirken şema doğrulaması uygulanmalıdır. LLM çıktısından JSON elde edilmesinde Markdown kod bloğu içindeki JSON'ı regex ile işlemek yerine JSON modu veya yapılandırılmış çıktı API'si tercih edilmesi çok daha güvenilir sonuç verir.
Function Calling (Fonksiyon Çağırma)
Fonksiyon çağırma (function calling), büyük dil modellerinin (LLM) doğal dil yanıtı üretmek yerine önceden tanımlanmış bir aracı veya API-yi çağırabilen yapılandırılmış bir çıktı üretmesi özelliğidir. Bu mekanizma, LLM-leri pasif metin üreticilerinden aktif ajanlara dönüştürmektedir. Fonksiyon çağırma tipik olarak şu şekilde işler: geliştirici, modele hangi fonksiyonların mevcut olduğunu JSON Schema formatında tanımlar. Kullanıcının isteği bu araçların kullanımını gerektiriyorsa model doğal dil yanıtı yerine araç adı ve parametrelerini JSON olarak döner. Uygulama bu JSON-u alır, ilgili fonksiyonu çalıştırır, sonucu modele gönderir ve model nihai yanıtı üretir. OpenAI, bu özelliği GPT-4-te function calling olarak tanıttı; daha sonra tool use adıyla yeniden yapılandırdı. Anthropic Claude-un tool use özelliği, AWS Lambda veya harici API-ler gibi araçlarla entegrasyon için aynı prensibi kullanır. Bu yapılandırma, paralel çağrılar (parallel tool use) ile birden fazla aracı aynı anda çağırmayı da olanaklı kılar. Fonksiyon çağırma; hava durumu sorgulama, veritabanı okuma ve yazma, takvim yönetimi, kod yürütme ve web arama gibi ajanlar için temel bir bileşendir. ReAct (Reason + Act) çerçevesi ve AutoGPT gibi ajan mimarileri bu özelliği sıklıkla kullanmaktadır. MCP (Model Context Protocol), Anthropic-in standartlaştırdığı bir protokoldür; sunucular araçları MCP formatında tanımlayarak herhangi bir MCP destekli modelin bu araçları kullanabilmesini mümkün kılar. Bu sayede uygulamalar, LLM sağlayıcısından bağımsız olarak yeniden kullanılabilir araç kütüphaneleri oluşturabilir. Cursor, Zed ve diğer modern IDE-ler MCP entegrasyonuyla gelişmiş yapay zeka ajan özellikleri sunmaktadır. Fonksiyon çağırma, dil modellerini gerçek dünya sistemleriyle bütünleştiren en önemli mimari yeniliklerden biri olarak değerlendirilmektedir. Yapısal olarak basit görünse de paralel çağrım, hata yönetimi ve araç güvenliği gibi konular üretim sistemlerinde dikkatle ele alınması gereken mühendislik sorunlarıdır. Güvenlik açısından fonksiyon çağırmanın dikkat gerektiren yönleri vardır: prompt enjeksiyonu, modelin meşru bir kullanıcı gibi görünen kötü amaçlı komutlar aracılığıyla beklenmedik araç çağrılarına yönlendirilmesidir. Bu nedenle araç izinleri en az yetki prensibiyle tasarlanmalı, geri alınamaz işlemler (ödeme, silme) için insan onayı mekanizmaları eklenmelidir. Structured Outputs özelliğiyle birleştirildiğinde fonksiyon çağırma, yalnızca JSON şemasına uyan yanıtlar garantilediğinden üretim ortamı güvenilirliğini artırır.
JSON (JavaScript Object Notation)
JSON (JavaScript Object Notation), insan tarafından okunabilir ve makineler arası veri değişimine uygun hafif bir metin tabanlı veri biçimidir. Douglas Crockford tarafından 2001 yılında tanımlanmış, RFC 8259 standardıyla resmileşmiş; günümüzde REST API'leri, yapılandırma dosyaları ve yapay zeka sistemleri arasında de facto veri alışveriş standardı konumundadır. JSON altı temel değer türü destekler: string (çift tırnak içinde metin), number (tam veya ondalıklı sayı), boolean (true/false), null (değersizlik) ile iki koleksiyon türü olan object (anahtar-değer çiftleri) ve array (değerler listesi). Sözdizimi minimal olduğundan tüm modern programlama dillerinde yerel destek mevcuttur. XML aksine şema gerektirmez; YAML kıyasla katı sözdizimi ayrıştırma tutarsızlıklarını önler. Yapay zeka ve LLM sistemlerinde JSON kritik öneme sahiptir. OpenAI, Anthropic ve Google gibi sağlayıcıların API'leri sohbet turlarını, araç tanımlarını (tool/function calling) ve model yanıtlarını JSON formatında iletir. Yapılandırılmış Çıktılar (Structured Outputs) özelliği, modelin JSON Schema'ya tam uyumlu yanıt üretmesini garanti ederek ayrıştırma hatalarını ortadan kaldırır. Pydantic ve Zod kütüphaneleri, JSON'ı Python ve TypeScript veri modellerine dönüştürmek için yaygın kullanılır. JSON Schema, bir JSON belgesinin yapısını, zorunlu alanlarını ve değer kısıtlamalarını tanımlayan bağımsız bir standarttır; LLM araç tanımlarının ve yapılandırılmış çıktı doğrulamasının temelini oluşturur. JSON Lines (.jsonl), her satırın bağımsız bir JSON nesnesi olduğu varyant olup LLM eğitim veri setlerinde ve büyük veri işleme boru hatlarında yaygın tercih görür. Hugging Face model hub'ında config.json ile tokenizer_config.json dosyaları model mimarisini ve tokenizer parametrelerini bu formatta tanımlar. Güvenilmez kaynaklardan gelen JSON verisi işlenirken şema doğrulaması uygulanmalıdır. LLM çıktısından JSON elde edilmesinde Markdown kod bloğu içindeki JSON'ı regex ile işlemek yerine JSON modu veya yapılandırılmış çıktı API'si tercih edilmesi çok daha güvenilir sonuç verir.
Structured Outputs (Yapılandırılmış Çıktılar)
Structured Outputs (Yapılandırılmış Çıktılar), büyük dil modellerinin (LLM) serbest biçimli metin yerine önceden tanımlanmış bir şemaya — JSON, XML, Pydantic modeli veya TypeScript arayüzü gibi — kesinlikle uyan, makine tarafından doğrudan ayrıştırılabilir veri üretmesini sağlayan tekniktir. Geleneksel LLM çıktıları düz metin biçiminde gelir; bir uygulama içinde kullanılmak için regex, string ayrıştırma veya harici JSON çözümleme gibi ek ve hata riskli adımlar gerekir. Yapılandırılmış çıktılar yaklaşımı bu sorunu ortadan kaldırır: model, verilen şemaya uymayan token-ları üretmeden yanıt oluşturur. Teknik açıdan iki farklı uygulama yöntemi öne çıkar. Birincisi kısıtlı kod çözme (constrained decoding) yöntemidir: model çıktısı, çalışma zamanında bir dilbilgisi veya şema filtresine göre kısıtlanır. outlines ve guidance gibi kütüphaneler bu yaklaşımı uygular; geçersiz token-lar logit düzeyinde maskelenerek hiç üretilmez. İkincisi API düzeyinde şema doğrulamadır: OpenAI-nin 2024-te sunduğu json_schema özelliği ve Anthropic-in tool_use zorunlu doldurma yaklaşımı bu kategoriye girer. Model yanıtı API katmanında doğrulanır; başarısız olursa model yeniden çalıştırılır. Başlıca kullanım alanları şunlardır: belgelerden varlık çıkarma, form doldurma otomasyonu, RAG alındı doğrulama, çoklu ajan sistemlerinde mesajlaşma protokolleri, sınıflandırma görevleri ve API entegrasyonu için güvenilir JSON üretme. Python ekosisteminde instructor kütüphanesi, Pydantic modelleriyle LLM çıktısını doğrudan nesne örneğine dönüştürmesiyle bu yaklaşımı yaygınlaştırmıştır. Bu teknik, özellikle ajan mimarilerinde kritik bir rol üstlenmektedir: ajanlar arası iletişim ve araç çağrısı yanıtlarının yapılandırılmış biçimde akması gerektiğinden structured outputs, modern LLM uygulamalarının temel taşlarından biri haline gelmiştir. Üretim ortamlarında hata oranlarını önemli ölçüde düşürdüğü belgelenmiş olup küçük startup-lardan büyük kurumsal ekiplere kadar geniş bir kesim tarafından benimsenmektedir. Ayrıca structured outputs, LLM tabanlı testlerin ve otomasyon boru hatlarının güvenilirliğini artıran kilit bir bileşen olarak öne çıkmaktadır.