Java Ekosistemi Şubat Ayı Notları(2024)

Nesrin Asan
Kodcular
Published in
3 min readMar 6, 2024
Photo by Steve Johnson on Unsplash

Spring AI diyerek söze başlamak istiyorum hemen :)

Spring AI projesinin first milstone release’i yayınlandı. ve artık spring.io üzerinden de kullanıma açık.

Spring geliştiricilerinden Josh Long “Spring Developer” youtube kanalı üzerinden Spring AI ile ilgili çok güzel bir deneme yayını yaptı. İzlemenizi çok tavsiye ederim. Bu yayında bir PDF dosyası üzerinde yazan soru ve cevaplar üzerine bir vector search yaptı ve uygulamaya sorduğu soru pdf üzerinden bulunarak kendisine verildi. Burada en dikkat öeken nokta ise şu: bu tarz AI işlemleri normalde zaman alabiliyor. yani openAI api’si üzerinden bir sorgulama yaptığınızda size dönmesi saniyeleri bulabiliyor. işte tam bu noktada I/O işlemlerinde çokça işimize yarayacak olan virtual threadlere dikkat çekmiş Josh Long.

Yine aynı şekilde OpenAI, Gemini gibi birçok LLM provider’ı ile birlikte de kolaylıkla çalışabilirsiniz. Özellikle yakın bir zamanda milvus vector db ile java üzerinde çalışma yapmış biri olarak yaşadığım zorlukları düşnünce Spring’in bu projesinin vector tabanlı işler yapmamız gerektiği noktalarda python gibi dillerle çalışmaya bir alternatif olabileceğini düşünüyorum. Hem konforumuzu bozmamış oluyoruz hem de mis gibi AI işleri yapmaya başlayabiliyoruz :) Slogan belli : BİLDİĞİNİZ TAT, ALIŞTIĞINIZ KALİTE :)

Java dünyasında AI etkileri artarak devam ediyor. JFocus konferansında bir tanıtım yapıldı geçitğimiz zamanda. 2023 yılında başlayan ve şuan olgunluk seviyesine ulaşan bir proje: LangChain4j. “Supercharge your Java application with the power of LLMs” düsturuyla yola çıkan bu projenin amacı; yine java kullanıcılarını LLM providerlarıyla en basit ve yalın haliyle buluşturmak. Şuan için 10 adet bilinen LLM provider’ını destekliyor . Spring boot ve Quarkusta da desteği bulunuyor. Projenin detaylarını izlemek isteyenler için şuraya linkini bırakıyorum.

Bunun yanında OpenAI ‘ın text to video modeli yayınlandı. Sora adını verdikleri bu model çok fazla ses getirdi. tabi bunlar görsel olduğu için çok daha ilgi çekiyor. aslında OpenAI bu tanıtımı yaparken bir diğer yandan Gemini Pro 1.5’i yayınladı. Bu yeni sürümde yaşanan gelişmeyi anlamak adına GPT ile kıyaslarsak: GPT-4 şuan 128K token işleyebiliyorken Google Gemini 1M token işleyebiliyor. Diğer bir deyişle GPT-4 300sayfa girdi destekliyorsa Gemini artık bir kirap serisi girdi alabilir. Bunu nasıl yapıyor diye merak ettiğimde MoE ile yaptığını okudum. ben de bu işlerin çok detaylarını bilmiyorum ama özetle MoE şunu yapıyor: Bir tahmin yaparken, her modelin çıktısı birleştirilir ve nihai tahmini oluşturmak için kullanılır. Bu, tek bir modelin yapabileceğinden daha doğru ve sağlam tahminler üretebilir. yani her uzmanlığı olana ayrı ayrı sorup sonunda birleştiyor. Yani Gemini’ye sorduğumuz sorulardan daha iyi cevaplar almayı bekliyoruz. Bu güncelleme ile ilgili detaylar için ilgilisine şuraya linki bırakıyorum.

Bunca AI dedikten sonra biraz da normal hayatımıza dönelim :) Şubat ayında Spring tarafında bir bulgu yayınlandı.(CVE-2024–22243: Spring Framework URL Parsing with Host Validation) : Bu bulguda bir güvenlik açığından bahsediliyor. UriComponentsBuilder üzerinde bir SSRF saldırılarına sebebiyet verebilecek bir durum söz konusu ve etkilenen sürüm olarakta: 6.1.0–6.1.3, 6.0.0–6.0.16 ve 5.3.0–5.3.31 sürümlerini iletti Spring ekibi. Bug fixlendi ve yeni sürümlere geçilmesi de tavsiye ediliyor.

Ve son olarak Java ve Spring ile ilgili Josh Long’un bu twitter paylaşımını sizlerle paylaşmak istiyorum.

Burada tüm son güncellemeler sonrasının bir özeti olarak yukarıdaki kod parçasında: 80 ms’de başlayan, onlarca megabayt RAM kaplayan, yapay zekayı entegre eden ve Go veya Node.js gibi bir uygulamalardan bekleyeceğiniz türden concurrency kullanımını sağlayan vee tüm bunların hepsinin hepi topu 20 satırda gerçekleştirebilen bir Java sistemi görüyorsunuz :)

Şubat ayı özetim bu şekilde. Tüm bu konular ve daha fazlasını JUG ISTANBUL podcast yayınlarımızda konuşuyoruz.

Bug’sız günler :)

--

--