minicem
JSON'dan sade, YAML'dan basit, küçük ve okunabilir bir metin formatı. Yapay zekâ istemlerinde daha az token harcatır.
minicem, küçük ayar dosyaları ve yapay zekâ istemleri için tasarladığım, insanların kolayca okuyup yazabileceği küçük bir metin formatı. JSON kadar kalabalık, YAML kadar karmaşık değil. Formatla birlikte Python için bir kodlayıcı ve bir çözücü fonksiyon yazdım ve paketi PyPI'da yayımladım.
Amaç
Dil modellerine gönderilen istemlerde yapılandırılmış veri kullanmak çok yaygın. Bu veri genellikle JSON olarak gönderiliyor. JSON güvenilir bir format, ama her anahtarın tırnak içinde yazılması ve uzun doğru, yanlış ya da boş değerleri gibi ayrıntılar metni uzatıyor. Dil modellerinde her karakter aşağı yukarı token maliyetine yansıdığı için bu fazlalık doğrudan para ve süre demek.
minicem'i aynı veriyi daha az karakterle, ama yine de okunabilir biçimde yazabilmek için geliştirdim. Hedefim, elle yazılabilecek kadar sade ve bir programın sorunsuz geri okuyabileceği kadar kesin bir format oluşturmaktı.
Nasıl çalışır
minicem'de sözlükler süslü parantezle, listeler köşeli parantezle yazılıyor. Anahtarların tırnak içine alınması gerekmiyor. Boşluk içermeyen metin değerleri de tırnaksız yazılabiliyor; tırnak yalnızca gerektiğinde kullanılıyor. Doğru değeri +1, yanlış değeri +0, boş değer ise _ olarak kısaltılıyor. Tırnak dışında kalan # işaretinden sonraki her şey yorum olarak kabul ediliyor.
Veri tek satırda yazılabildiği gibi YAML'a benzer bir düzenle birden fazla satıra da yayılabiliyor. Python tarafında encode_mt fonksiyonu bir Python nesnesini minicem metnine çeviriyor, decode_mt fonksiyonu ise bu metni yeniden Python nesnesine dönüştürüyor. Bir veriyi kodlayıp tekrar çözdüğünüzde başlangıçtaki verinin aynısını elde ediyorsunuz.
Öne çıkan özellikler
- Sözlük, liste, metin, tam sayı, ondalıklı sayı, doğru ya da yanlış ve boş değer gibi temel Python tiplerini destekliyor.
- Doğru, yanlış ve boş değerleri kısa sembollerle yazılıyor.
- Yorum satırlarına izin veriyor, bu da elle yazılan ayar dosyalarında işe yarıyor.
- Hem tek satırlık hem de çok satırlı blok yazımını destekliyor.
- README'deki örnek veride, boşlukları kaldırılmış JSON'dan yaklaşık yüzde 15 daha kısa bir çıktı üretiyor.
- Python 3.8 ve sonrasıyla çalışıyor ve pip ile tek komutla kuruluyor.
Teknik altyapı
minicem saf Python ile yazılmış küçük bir kütüphane. Dış bir bağımlılığı yok. Paketi PyPI üzerinden dağıtırım ve kaynak kodu GitHub'da açık.
Kullanım alanları
- Dil modellerine gönderilen istemlerde yapılandırılmış veriyi daha az token harcayarak iletmek.
- Uzun bağlam kullanan yapay zekâ uygulamalarında bağlam penceresini daha verimli kullanmak.
- Elle yazılıp düzenlenen küçük ayar ve yapılandırma dosyaları hazırlamak.
- Komut satırı araçlarında ya da betiklerde okunabilir ve kısa bir veri formatına ihtiyaç duyulan durumlar.
- Kategori
- Yapay zekâ araçları
- Yıl
- 2025
Teknolojiler
- Python
- PyPI
- LLM
- Open Source