Show HN: Jupyter Notebook’a Mistral Codestral ve GPT-4o eklendi
(github.com/pretzelai)- Pretzel, Jupyter’ı çatallayarak yapay zeka ile kod üretme/düzenleme, satır içi tab tamamlama, kenar çubuğu sohbeti ve hata düzeltme ekleyen bir notebook ortamıdır; mevcut Jupyter ayarları, keybinding’leri ve eklentilerini aynen kullanmayı kolaylaştıracak şekilde tasarlanmıştır
- Başlamak için
pip install pretzelaisonrasıpretzel labçalıştırmak yeterlidir; kurulum zahmetli gelirse ücretsiz barındırılan sürüm olan pretzelai.app kullanılabilir - Hücre içindeki Ask AI,
Cmd+K/Ctrl+K, AI Sidebar,@değişken referansı, seçili alan düzenleme ve hata düzeltme düğmesi; notebook kodunu ve oturum değişkenlerini yapay zekanın bağlamı olarak kullanır - FAQ’ya göre varsayılan model GPT-4o, satır içi tamamlama modeli ise Mistral Codestral’dır; OpenAI, Anthropic/Claude, Ollama, Groq, Azure gibi harici ve yerel modeller de ayarlardan bağlanabilir
- Kişisel bilgiler toplanmaz, ancak yapay zeka işlevlerine ait telemetri ve prompt’lar toplanabilir; kod ve yanıtlar saklanmaz, yeni kod AGPLv3 ile dağıtılır
Pretzel’in hedefi ve Jupyter uyumluluğu
- Pretzel, Jupyter’ın kullanım deneyimini iyileştirmeyi amaçlayan bir fork’tur
- Yapay zeka ile kod üretme/düzenleme, satır içi tab tamamlama, kenar çubuğu sohbeti ve hata düzeltme özellikleri ekler
- Jupyter’dan Pretzel’e geçildiğinde mevcut config, ayarlar, keybinding’ler ve eklentiler varsayılan olarak çalışır
- Temel hedef, Jupyter kullanıcılarının neredeyse hiç geçiş maliyeti hissetmeden yapay zeka özelliklerini kullanabilmesini sağlamaktır
Hızlı başlangıç ve kurulum
- Temel kurulum
pip install pretzelaiile yapılır - Web arayüzü şu komutla çalıştırılır
pretzel lab
- Ücretsiz barındırılan sürüm pretzelai.app üzerinden kullanılabilir
- conda ortamında önce
conda install pipçalıştırılıp ardındanpip install pretzelaikullanılmalıdır - Kurulum zor olursa Docker container olarak çalıştırılabilir
- Windows gibi ortamlarda yerel kurulum engellendiğinde Docker kullanılması önerilir
- Container
8888portunu dışa açar vepretzel lab --ip=0.0.0.0biçiminde çalışır - Yerel klasöre erişim gerekiyorsa
-v $(pwd):/root/pretzelile mevcut dizin container’a eşlenir - En son sürüme güncellemek için
docker build --no-cache -t pretzel .ile imaj yeniden build edilir
- Bleeding edge sürüm, depodaki Dockerfile kullanılarak build edilebilir
Kurulum hataları ve build araçları
Failed to build installable wheels for some pyproject.toml based projects (pystemmer)hatası,PyStemmerbağımlılığının kurulumunun başarısız olduğu anlamına gelir- Yaygın neden, gerekli build araçlarının eksik olmasıdır
- İşletim sistemine göre yapılacaklar ayrılır
- Windows: Microsoft Build Tools kurulumu
- Ubuntu ve Debian türevleri:
sudo apt-get update && sudo apt-get install build-essential python3-dev - macOS:
brew install gcc, gerekirsexcode-select --install
- Build araçları kurulduktan sonra
pip install pretzelaiyeniden çalıştırılır
Notebook içindeki yapay zeka özellikleri
-
Satır içi tab tamamlama
- Hücrede yazmaya başladığınızda satır içi tab tamamlama alabilirsiniz
- Tamamlama 1 saniyelik beklemeden sonra tetiklenir ve hücrenin mavi Ask AI düğmesinin önünde küçük bir spinner gösterilir
- Varsayılan Pretzel AI Server, satır içi tamamlama için Mistral Codestral kullanır
- Satır içi tamamlama modeli Pretzel AI Settings’ten değiştirilebilir
-
Kod üretme ve düzenleme
- Hücrede
Cmd+KveyaCtrl+Ktuşlarına basınca ya da Ask AI tıklanınca yapay zeka prompt giriş kutusu açılır @yazıldığında mevcut oturumdaki değişken listesinin açılır menüsü görünür- Prompt’a
@variableeklerseniz ilgili değişkenin değeri yapay zekaya iletilir - Mevcut notebook’taki ilgili kod otomatik olarak yapay zeka bağlamına dahil edilir
- Mevcut kod içeren hücrelerde prompt bu kodu düzenler
- Kodun bir bölümü seçilirse yalnızca seçili kod düzenleme hedefi olur
- Yanıt kabul veya reddedilebilir; prompt düzenlenip yeniden gönderilebilir
↑ve↓ile prompt geçmişinde gezilebilir
- Hücrede
-
AI Sidebar
Ctrl+Cmd+BveyaCtrl+Alt+Bile ya da sağ kenar çubuğundaki Pretzel simgesiyle AI Sidebar açılabilir- Soru sorma, kod üretme ve mevcut kodda arama yapma işlevlerini yerine getirir
- Yapay zeka her zaman aktif hücrenin kodunu bağlam olarak kullanır
- Aktif hücrede kod seçilirse bağlama yalnızca seçilen kod girer
@sözdizimiyle bellekteki değişkenlere ve dataframe’lere referans verilebilir- Örnek işler arasında fonksiyon verimliliğini artırma, aykırı değerleri kaldırma kodunu arama, mevcut hücre kodunu açıklama,
@dfiçin age histogramı oluşturma vesales_datadataframe’inde ürün türüne göre ortalama satışları hesaplama yer alır
-
Mevcut kodun ortasına kod ekleme
- İmleci boş bir satıra veya mevcut bir kod satırına getirip
Cmd+Kile yapay zeka prompt’u açılır - Prompt
injectveyaijile başlatılırsa mevcut kod düzenlenmeden yalnızca yeni kod eklenir - Yeni kod, imleç konumunun bir satır altına eklenir
- İmleci boş bir satıra veya mevcut bir kod satırına getirip
-
Hata düzeltme
- Hata oluştuğunda sağ üstte Fix Error with AI düğmesi görünür
- Düğmeye tıklayarak yapay zeka ile hatayı düzeltmeyi deneyebilirsiniz
Yapay zeka modelleri ve ayarlar
- Pretzel ek ayar gerektirmeden hemen çalışır
- Varsayılan Pretzel AI Server’a gönderilen kod veya veriler saklanmaz
- Başka yapay zeka modelleri kullanmak için ayarlardan çeşitli sağlayıcılar ve yerel modeller bağlanabilir
- OpenAI
- Anthropic/Claude
- Ollama
- Groq
- Azure
- Ayar yolu üst menüde
Settings→Pretzel AI Settingsşeklindedir - AI Settings içinde sohbet modeli ve satır içi tamamlama modeli ayrı ayrı seçilebilir
- Performans için GPT-4 seviyesinde modeller kullanılması önerilir
- GPT-4 Turbo
- GPT-4o
- Claude-3.5 Sonnet
- Claude-3 Opus
- Llama-3.1 405B
- Configure AI Services bölümünde yapay zeka servislerini etkinleştirme/devre dışı bırakma, API anahtarı veya URL girişi yapılır
- Azure ve Ollama varsayılan olarak devre dışıdır, ancak kullanıcı tarafından etkinleştirilebilir
- Ayar değişiklikleri kaydedilmelidir; Pretzel ayarların doğru olup olmadığını doğrular
- Azure Enterprise OpenAI modeli henüz test edilmemiştir; hatalar GitHub issues üzerinden bildirilebilir
FAQ’da özetlenen model davranışı
- Pretzel, işe göre birden fazla yapay zeka modeli kullanır
- Varsayılan model GPT-4o’dur
- Hız ve kalite dengesinin iyi olduğu değerlendirilir
- Kendi API anahtarınızı kullanırken Pretzel Settings’ten değiştirilebilir
- Satır içi tamamlama Mistral Codestral kullanır
- Kod tamamlama için uygun bir model olarak kullanılır
- 22B parametreli bir modeldir ve hızlı performans sunar
- Kendi API anahtarınızı kullanırken Mistral API anahtarı sağlamazsanız satır içi tamamlama için de GPT-4o kullanılır
- Yerel model desteği ve Anthropic Claude desteği hâlâ deneme aşamasındadır; Claude öncelik listesinin en üstündedir
Yol haritası
- Pretzel’in yol haritasında şu özellikler yer alır
- Cursor benzeri native yapay zeka kod üretme ve anlama özellikleri
- Pair programming, yorumlar ve sürüm geçmişini içeren gerçek zamanlı iş birliği
- Hem kod hücrelerinde hem de bağımsız SQL IDE’de SQL desteği
- pretzelai_visual tabanlı görsel analiz oluşturucu
- Monaco kullanarak VSCode benzeri kod yazma deneyimi
- Jupyter notebook’tan tek tıkla dashboard oluşturma ve paylaşma özelliği
- Özellik istekleri GitHub issues veya e-posta ile alınabilir
- Ekip iki kişiden oluşuyor ve geri bildirimlere göre yol haritası önceliklerini belirlemek istiyor
Gizlilik, veri toplama ve saklama
- Pretzel kişisel bilgi toplamaz
- Yalnızca yapay zeka işlevleri için temel telemetri kullanır
- Örnek olarak birinin Ask AI’a tıklaması olayı verilebilir
- Kullanıcı yalnızca anonim ID ile ilişkilendirilir
- Çerezleri kabul etmek, birden fazla tarayıcı oturumunda aynı anonim kullanıcı olarak tanınmaya yardımcı olur
- Çerezleri kabul etmezseniz tarayıcı her açıldığında yeni anonim kullanıcı olarak işlenirsiniz
- Yapay zeka işlevlerinin prompt’ları toplanır, ancak yanıtlar toplanmaz
- Prompt telemetrisi
Settings > Pretzel AI > Uncheck Prompt Telemetryüzerinden kapatılabilir - Kod hiçbir koşulda toplanmaz
- Tamamlama için Pretzel’in bulut yapay zeka sunucusu kullanılsa bile kod saklanmaz
- Barındırılan sürüm olan pretzelai.app kullanıldığında e-posta adresi tabanlı bir kullanıcı oluşturulur
- Kullanıcılar oturum açarak barındırılan sunucuda sakladıkları verileri silebilir
- Barındırılan sunucu yedek veya kopya oluşturmaz
- Barındırılan sunucu ücretsizdir, ancak son girişten 30 gün sonra veri ve hesabı siler
- Hesabı daha erken silmek için
founders@withpretzel.comadresine konu başlığıAccount Deletionolacak şekilde e-posta gönderilirse hesap hemen silinir
Lisans ve Jupyter’ı fork etme kararı
- Pretzel’in yeni kodu AGPLv3 lisansını kullanır
- Jupyter kodu BSD-3 lisanslıdır
- AGPLv3, üçüncü tarafların Pretzel kodunu alıp barındırılan sürümünü satarak topluluğa geri katkı yapmamasını önlemek için seçilmiştir
- Pretzel kodunu alıp SaaS vb. olarak satmak isteyenlerin değişikliklerini de AGPLv3 ile açık kaynak yapması gerekir
- Şirket içinde yalnızca araç olarak kullanılması durumunda, değişiklikler olsa bile AGPL’nin kodun açıklanmasını gerektirmediği belirtilir
- Jupyter’a doğrudan katkı yapmak yerine fork etme nedeni, geçiş maliyetini neredeyse sıfıra yakın hale getirmektir
- Başlangıçta sıfırdan yapmak istenmiş, ancak veri uzmanlarıyla konuşulduktan sonra yeni bir araca geçişin zor olduğu düşünülmüştür
- Jupyter olgun bir üründür ve Pretzel ekibi hızlı tempoda özellik yayınlamaktadır
- Fork’un dezavantajı olarak Jupyter ekosistemini, birden fazla codebase’i, karmaşık release süreçlerini ve çeşitli API’leri anlamanın ciddi zaman aldığı belirtilmiştir
Eski Pretzel AI ve gelir modeli planı
- Eski Pretzel AI olan görsel, tarayıcı içi veri manipülasyon aracı
pretzelai_visualklasöründedir - İlgili bilgiler PR #76 içindedir
- Gelir modeli, kurumsal barındırılan sürüm satışı üzerinden planlanmaktadır
- Kurumsal barındırılan sürüm, bireysel kullanıcıların ihtiyaç duymayacağı şirkete özel özellikler içerebilir
- Veri erişim kontrolü
- Veri kaynağı connector’ları
- GitHub entegrasyonu
- Barındırılabilir ve paylaşılabilir dashboard’lar
- Büyük ölçekli veri işleri için ölçeklenebilir on-demand compute
- Bireysel Pretzel sürümünün sonradan geriye dönük olarak ücretli hale getirilmeyeceği belirtilmiştir
1 yorum
Hacker News yorumları
Yapay zeka entegre Jupyter notebook zaten epey fazla var. Açık kaynak niteliği zayıf ya da hiç yok ama 1 yıldan uzun süredir iteratif olarak geliştirildikleri için bazı açılardan daha olgunlar
https://noteable.io/ oldukça iyiydi ama bir talent acquisition (acqui-hire) sonrasında ortadan kayboldu; https://deepnote.com ise yapay zeka entegrasyonu ve gerçek zamanlı iş birliğinde güçlü
https://github.com/jupyterlab/jupyter-ai Amazon tarafında yapılmış, Jupyter için üretken yapay zeka standardı sayılabilecek iyi bir açık kaynak eklenti; JupyterLab’in kendisinde de artık gerçek zamanlı iş birliği oldukça olgun
https://colab.google/ yapay zeka entegrasyonunda mükemmel ama yalnızca Google barındırmalı modelleri kullanabiliyorsunuz
https://cocalc.com başlıca barındırmalı modeller genelinde kapsamlı yapay zeka entegrasyonu ve gerçek zamanlı iş birliği sunuyor; çoğu özelliği ücretsiz ya da kullanım bazlı ücretlendirmeyle geliyor. Ortak geliştiricisiyim
VS Code da başkalarının dediği gibi yerleşik Jupyter notebook desteğiyle harika; acaba kaçırdığım başka bir şey var mı?
https://deepnote.com ne yazık ki kapalı kaynak, bu yüzden yerelde çalıştırılamıyor ya da değiştirilemiyor; ayrıca yeni bir arayüz öğrenip taşınmak gerekiyor
https://github.com/jupyterlab/jupyter-ai yazıda da geçti ama benim deneyimime göre kullanıcı deneyimi ve özellikler açısından bizim hâlihazırda yaptığımız şeyin epey gerisinde. Yine de daha fazla modeli desteklemesi ve kod tabanının çok daha kolay özelleştirilebilmesi avantaj
https://colab.google/ de Deepnote’a benzer şekilde kapalı kaynak; ayrıca şirkette kullanmak için veri bağlayıcıları ve destek garantileri nedeniyle muhtemelen enterprise sürüm gerekiyor, onun da yalnızca GCP üzerinde çalışması AWS merkezli organizasyonlar için ölümcül olabilir
https://cocalc.com’u henüz denemedim ama harika bir proje gibi görünüyor ve bakacağım. İlk izlenimim, Jupyter’den oldukça farklı bir arayüze sahip olduğu yönünde; bizim için büyük fark ise kullanıcıların zaten bulunduğu yer olan Jupyter’ye gitmeyi hedeflememiz
VSCode için de başka yerlerde söylediğim gibi, bizim geliştirdiğimiz özellikler analiz iş akışına daha çok odaklanıyor. VSCode’da yapay zeka özellikleri var ama yol haritasındaki özellikler eklendikçe ortaya oldukça farklı bir şey çıkacak
VS Code ve Cursor’ın Jupyter desteği o kadar iyi ki, Jupyter Notebook’a özel çözümler yerine kendi iş akışım için bunu çok daha iyi buluyorum
https://github.com/marimo-team/marimo
Ekip ve katkıcıların yaptığı implementasyon harika. Basit ama etkili; ayrıca açık kaynak çalışmayı alıp kapatıp biraz değiştirerek müthiş bir şey yaptığını iddia eden diğer Show HN’lerin aksine bunu açık kaynak tutmaları da güzel
İleride başka özelliklere de genişleyip genişlemeyeceklerini merak ediyorum. Copilot, sohbet gibi şeyler güzel ama bence artık kullanıcılar bu tür özelliklerin IDE’de yerleşik gelmesini ya da eklenti olarak sunulmasını bekliyor
Karşınızda çok büyük ve iyi bilinen bir şirket yoksa, şirket verilerimi kapalı kaynak bir Jupyter alternatifine emanet etmezdim
IDE’lerin bu tür özellikleri sunması gerektiğine katılıyorum. Ancak Jupyter Notebook destekleyen IDE’ler yalnızca VSCode ve PyCharm; VSCode için çoğu yapay zeka eklentisi de notebook iş akışına göre optimize edilmemiş. Örneğin bir arkadaşımın söylediğine göre GitHub Copilot, farklı hücreler arasında kod tamamlama yaparken zorlanıyor
Bu sadece başlangıç ve herhangi bir IDE’de bulunmayan veri analizi odaklı özellikler geliştirmeyi planlıyoruz; bu yüzden böyle araçlar için fazlasıyla alan olduğunu düşünüyorum
Pretzel'in diğer kurucu ortağı Ramon benim. İlk geri bildirimlere dayanarak yerel LLM ve Claude Sonnet 3.5 desteğini ekleme çalışmalarına şimdiden başladık; sorularınız varsa yanıtlayabilirim.
LocalAI: https://github.com/mudler/LocalAI
Örneğin promptfoo ve chainforge, çoklu LLM iş akışları sunuyor.
Promptfoo'da prompt'lar ve sağlayıcı ayarları için YAML yapılandırması var: https://www.promptfoo.dev/docs/configuration/guide/
Sistem prompt'unun ne olduğuna ve sistem prompt'unun analizi nasıl önyargılı hâle getirdiğine de bakmak gerekir.
/? "system prompt" https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
Github Copilot, uzun zamandır karşıma çıkan en faydalı araç ve bunu Jupyter Notebooks'ta kullanabilmek gerçekten harika. Uzun süredir beklediğim bir özellikti; müthiş iş.
Uygulamayı tersine mühendislikle çıkarmak için neovim GH Copilot eklentisi [1] ile Zed [2]'ye bakarak zaman harcadık, ama sonunda fazla kararsız ve uğraştırıcıydı.
Bu süreçte ayrıca, Codestral'ın sıradan LLM'lerden farklı olarak fill-in-the-middle sürümüne sahip olduğunu keşfettik; bu da hız ve kalite arasında daha iyi bir denge sağlıyor, bu yüzden Codestral'ı kullanmaya karar verdik. continue.dev'in sekme tamamlama için Codestral kullanmasından ilham aldık.
[1] https://github.com/github/copilot.vim
[2] https://zed.dev/blog/copilot
Bunu bir uzantı olarak yapmak yerine neden fork etmek zorunda kaldığınızı merak ediyorum.
Başlangıçta tamamen sıfırdan yeni bir araç yapmayı düşünmüştük, ancak insanları geçiş yaptırmak çok zor olduğu için kullanıcıların zaten bulunduğu yer olan Jupyter'ye gitmemiz gerekti.
Sadece bu özelliğe bakarsak, zor da olsa bunu bir uzantı olarak yapabilirdik ve ilk denemelerimiz de uzantıyla başladı. Ama şu an yaptığımız gibi dosyaları kaydetmek için gizli klasörler oluşturmak gibi bazı temel Jupyter davranışlarını ince ayarla kontrol etmek zor olurdu. Yine de Pretzel'in işleyişinin %95'ini Jupyter uzantısı olarak yapabilirdik.
Daha büyük neden ise gelecekte kod yürütme modelini tamamen DAG tabanlı hâle getirip yeniden üretilebilir notebook'lar oluşturmak istememiz. Örneğin https://plutojl.org/ gibi.
Benzer şekilde, CodeMirror'u tamamen kaldırıp yerine VSCode'un çekirdek editör motoru olan Monaco'yu koyarak Jupyter içinde IDE benzeri bir deneyim sunmak istiyoruz; bunu bir uzantıyla yapmak mümkün değil.
“GitHub Copilot henüz Jupyter'de desteklenmiyor” sözünün ne anlama geldiğini anlamadım. 1 yıldan uzun süredir VS Code .ipynb dosyalarında Copilot kullanıyorum.
Codestral'ı denediğimde, Copilot'a benzer derecede iyi, hatta bazen daha iyi tamamlamaları çok daha iyi hız ve maliyetle alabildim.
Bu editörlerin hepsi programlamaya odaklanıyor; daha genel amaçlı not alma için öneriniz var mı?
Çok kaba notları düzenlemek, genel şablonlara göre yeniden biçimlendirmek, prompt'a göre değişiklikler uygulamak ve not koleksiyonları üzerinde soru sormak gibi şeyler yapmak istiyorum.
Bunun neden çekici olduğunu pek anlamıyorum. Gerçekten AI entegrasyonuna ihtiyacınız varsa VSCode ve Jupyter kullanarak tüm uzantı ekosistemine erişebilirsiniz. Fikir kötü değil ama amacı eksik gibi görünüyor.
Ortaya çıkan şey esasen bir Jupyter eklentisi (https://github.com/pretzelai/pretzelai/tree/main/packages/pr...) iken, neden JupyterLab’ı hard fork’lamak yerine https://github.com/jupyterlab-contrib içindekiler gibi bir eklenti olarak yapmadığınızı merak ediyorum
Kısaca, mevcut özellikler aslında eklenti olarak da uygulanabilirdi. Elbette Jupyter’nin çekirdek davranışında da şimdiden çeşitli değişiklikler yaptık
Ancak yol haritasında, kod yürütme modelinin kendisini çok daha büyük ölçüde değiştirmek de var ve bu, eklentiyle mümkün değil