3 poin oleh GN⁺ 2024-07-04 | 1 komentar | Bagikan ke WhatsApp
  • Pretzel adalah lingkungan notebook hasil fork dari Jupyter yang menambahkan pembuatan dan pengeditan kode dengan AI, penyelesaian tab inline, chat di sidebar, serta perbaikan error, dan dirancang agar konfigurasi, keybinding, serta ekstensi Jupyter yang sudah ada tetap mudah digunakan
  • Untuk memulai cukup jalankan pip install pretzelai lalu pretzel lab; jika instalasi terasa merepotkan, versi hosting gratis pretzelai.app juga tersedia
  • Ask AI di dalam sel, Cmd+K/Ctrl+K, AI Sidebar, referensi variabel dengan @, pengeditan area terpilih, dan tombol perbaikan error memanfaatkan kode notebook serta variabel sesi sebagai konteks AI
  • Model default menurut FAQ adalah GPT-4o, penyelesaian inline menggunakan Mistral Codestral, dan model eksternal maupun lokal seperti OpenAI, Anthropic/Claude, Ollama, Groq, dan Azure juga dapat dihubungkan dari pengaturan
  • Informasi pribadi tidak dikumpulkan, tetapi telemetri fitur AI dan prompt dapat dikumpulkan; kode dan respons tidak disimpan, dan kode baru didistribusikan dengan lisensi AGPLv3

Tujuan Pretzel dan kompatibilitas Jupyter

  • Pretzel adalah fork untuk meningkatkan pengalaman penggunaan Jupyter
  • Menambahkan pembuatan dan pengeditan kode dengan AI, penyelesaian tab inline, chat di sidebar, serta fitur perbaikan error
  • Saat berpindah dari Jupyter ke Pretzel, config, pengaturan, keybinding, dan ekstensi yang sudah ada pada dasarnya tetap berfungsi
  • Tujuan utamanya adalah membuat pengguna Jupyter dapat memakai fitur AI dengan biaya migrasi yang nyaris tidak terasa

Mulai cepat dan instalasi

  • Instalasi dasar dilakukan dengan pip install pretzelai
  • Antarmuka web dijalankan dengan perintah berikut
    • pretzel lab
  • Versi hosting gratis tersedia di pretzelai.app
  • Di lingkungan conda, jalankan conda install pip terlebih dahulu, lalu gunakan pip install pretzelai
  • Jika instalasi sulit dilakukan, Pretzel dapat dijalankan dengan container Docker
    • Docker disarankan saat instalasi lokal terhambat, misalnya di Windows
    • Container mengekspos port 8888 dan dijalankan dalam bentuk pretzel lab --ip=0.0.0.0
    • Jika perlu mengakses folder lokal, petakan direktori saat ini ke container dengan -v $(pwd):/root/pretzel
    • Untuk memperbarui ke versi terbaru, bangun ulang image dengan docker build --no-cache -t pretzel .
  • Versi bleeding edge dapat dibangun menggunakan Dockerfile dari repositori

Error instalasi dan build tools

  • Error Failed to build installable wheels for some pyproject.toml based projects (pystemmer) berarti instalasi dependensi PyStemmer gagal
  • Penyebab umum adalah tidak adanya build tools yang diperlukan
  • Tindakannya berbeda menurut sistem operasi
    • Windows: instal Microsoft Build Tools
    • Ubuntu dan turunan Debian: sudo apt-get update && sudo apt-get install build-essential python3-dev
    • macOS: brew install gcc, dan jika perlu xcode-select --install
  • Setelah build tools terpasang, jalankan kembali pip install pretzelai

Fitur AI di dalam notebook

  • Penyelesaian tab inline

    • Saat mulai mengetik di sel, Anda dapat menerima penyelesaian tab inline
    • Penyelesaian dipicu setelah menunggu 1 detik, dan spinner kecil ditampilkan di depan tombol Ask AI berwarna biru pada sel
    • Pretzel AI Server default menggunakan Mistral Codestral untuk penyelesaian inline
    • Model penyelesaian inline dapat diubah di Pretzel AI Settings
  • Pembuatan dan pengeditan kode

    • Tekan Cmd+K atau Ctrl+K di sel, atau klik Ask AI untuk membuka kotak input prompt AI
    • Saat mengetik @, dropdown daftar variabel dari sesi saat ini akan muncul
    • Jika memasukkan @variable dalam prompt, nilai variabel tersebut dikirimkan ke AI
    • Kode terkait dari notebook saat ini otomatis dimasukkan ke konteks AI
    • Pada sel yang sudah memiliki kode, prompt akan mengedit kode tersebut
    • Jika memilih sebagian kode, hanya kode yang dipilih yang menjadi target pengeditan
    • Respons dapat diterima atau ditolak, dan prompt dapat diperbaiki lalu dikirim ulang
    • Riwayat prompt dapat ditelusuri dengan dan
  • AI Sidebar

    • AI Sidebar dapat dibuka dengan Ctrl+Cmd+B atau Ctrl+Alt+B, atau melalui ikon Pretzel di sidebar kanan
    • Dapat digunakan untuk bertanya, membuat kode, dan mencari kode yang sudah ada
    • AI selalu menggunakan kode pada sel aktif sebagai konteks
    • Jika kode dipilih di sel aktif, hanya kode terpilih yang masuk sebagai konteks
    • Variabel dan dataframe di memori dapat dirujuk dengan sintaks @
    • Contoh tugas meliputi mengefisienkan fungsi, mencari kode penghapusan outlier, menjelaskan kode sel saat ini, membuat histogram age dari @df, dan menghitung rata-rata penjualan per jenis produk pada dataframe sales_data
  • Menyisipkan kode di tengah kode yang sudah ada

    • Letakkan kursor pada baris kosong atau baris kode yang sudah ada, lalu buka prompt AI dengan Cmd+K
    • Jika prompt diawali dengan inject atau ij, AI hanya menambahkan kode baru tanpa mengedit kode yang sudah ada
    • Kode baru ditambahkan satu baris di bawah posisi kursor
  • Perbaikan error

    • Saat terjadi error, tombol Fix Error with AI muncul di kanan atas
    • Klik tombol tersebut untuk mencoba memperbaiki error dengan AI

Model AI dan pengaturan

  • Pretzel langsung berfungsi tanpa pengaturan terpisah
  • Kode atau data yang dikirim ke Pretzel AI Server default tidak disimpan
  • Untuk memakai model AI lain, berbagai vendor dan model lokal dapat dihubungkan dari pengaturan
    • OpenAI
    • Anthropic/Claude
    • Ollama
    • Groq
    • Azure
  • Jalur pengaturannya adalah SettingsPretzel AI Settings pada menu atas
  • Di AI Settings, model untuk chat dan model untuk penyelesaian inline dapat dipilih secara terpisah
  • Demi performa, disarankan memakai model kelas GPT-4
    • GPT-4 Turbo
    • GPT-4o
    • Claude-3.5 Sonnet
    • Claude-3 Opus
    • Llama-3.1 405B
  • Configure AI Services menangani pengaktifan dan penonaktifan layanan AI, serta input API key atau URL
  • Azure dan Ollama dinonaktifkan secara default, tetapi dapat diaktifkan oleh pengguna
  • Perubahan pengaturan harus disimpan, dan Pretzel akan memvalidasi apakah pengaturan tersebut benar
  • Model Azure Enterprise OpenAI belum diuji, dan bug dapat dilaporkan di GitHub issues

Perilaku model yang dirangkum di FAQ

  • Pretzel menggunakan beberapa model AI bergantung pada tugas
  • Model default adalah GPT-4o
    • Dinilai memiliki keseimbangan yang baik antara kecepatan dan kualitas
    • Saat menggunakan API key sendiri, model dapat diubah di Pretzel Settings
  • Penyelesaian inline menggunakan Mistral Codestral
    • Digunakan sebagai model yang cocok untuk penyelesaian kode
    • Merupakan model 22B parameter dan menawarkan performa cepat
  • Jika menggunakan API key sendiri tetapi tidak menyediakan API key Mistral, penyelesaian inline juga menggunakan GPT-4o
  • Dukungan model lokal dan dukungan Anthropic Claude masih terus dieksperimenkan, dan Claude berada di bagian atas daftar prioritas

Roadmap

  • Roadmap Pretzel mencakup fitur berikut
    • Fitur native untuk pembuatan dan pemahaman kode dengan AI yang mirip Cursor
    • Kolaborasi real-time yang mencakup pair programming, komentar, dan riwayat versi
    • Dukungan SQL baik di sel kode maupun SQL IDE independen
    • Builder analisis visual berbasis pretzelai_visual
    • Pengalaman penulisan kode seperti VSCode menggunakan Monaco
    • Fitur untuk membuat dan membagikan dashboard dari Jupyter notebook dengan 1 klik
  • Permintaan fitur dapat diterima melalui GitHub issues atau email
  • Timnya terdiri dari dua orang dan ingin menentukan prioritas roadmap berdasarkan masukan

Privasi, pengumpulan data, dan penyimpanan

  • Pretzel tidak mengumpulkan informasi pribadi
  • Telemetri dasar hanya digunakan untuk fitur AI
    • Contohnya adalah event saat seseorang mengklik Ask AI
    • Pengguna hanya dikaitkan dengan ID anonim
    • Jika cookie diizinkan, ini membantu mengenali pengguna anonim yang sama di beberapa sesi browser
    • Jika cookie tidak diizinkan, setiap kali browser dibuka pengguna diperlakukan sebagai pengguna anonim baru
  • Prompt fitur AI dikumpulkan, tetapi respons tidak dikumpulkan
  • Telemetri prompt dapat dimatikan di Settings > Pretzel AI > Uncheck Prompt Telemetry
  • Kode tidak dikumpulkan dalam keadaan apa pun
  • Walaupun menggunakan server AI cloud Pretzel untuk penyelesaian, kode tidak disimpan
  • Saat menggunakan versi hosting pretzelai.app, pengguna dibuat berdasarkan alamat email
  • Pengguna dapat login dan menghapus data yang disimpan di server hosting
  • Server hosting tidak membuat backup atau salinan
  • Server hosting gratis, tetapi data dan akun akan dihapus setelah 30 hari sejak login terakhir
  • Untuk menghapus akun lebih cepat, kirim email ke founders@withpretzel.com dengan subjek Account Deletion, dan akun akan segera dihapus

Lisensi dan keputusan melakukan fork dari Jupyter

  • Kode baru Pretzel menggunakan lisensi AGPLv3
  • Kode Jupyter berlisensi BSD-3
  • AGPLv3 dipilih untuk mencegah pihak ketiga mengambil kode Pretzel dan menjual versi hosting tanpa berkontribusi kembali ke komunitas
  • Jika mengambil kode Pretzel dan menjualnya sebagai SaaS atau sejenisnya, perubahan juga harus di-open-source-kan dengan AGPLv3
  • Dijelaskan bahwa jika hanya digunakan sebagai tool internal perusahaan, AGPL tidak menuntut pembukaan kode meskipun ada modifikasi
  • Alasan melakukan fork alih-alih berkontribusi langsung ke Jupyter adalah untuk membuat biaya migrasi mendekati nol
  • Awalnya mereka ingin membuat tool baru, tetapi setelah berbicara dengan para profesional data, mereka menilai bahwa berpindah ke tool baru itu sulit
  • Jupyter adalah produk yang matang, dan tim Pretzel merilis fitur dengan cepat
  • Sebagai kekurangan fork, mereka menyebutkan bahwa perlu banyak waktu untuk memahami ekosistem Jupyter, beberapa codebase, prosedur rilis yang kompleks, dan berbagai API

Pretzel AI sebelumnya dan rencana monetisasi

  • Tool manipulasi data visual di dalam browser yang dulu bernama Pretzel AI berada di folder pretzelai_visual
  • Informasi terkait ada di PR #76
  • Monetisasi direncanakan melalui penjualan versi hosting untuk perusahaan
  • Versi hosting perusahaan dapat mencakup fitur khusus perusahaan yang tidak dibutuhkan pengguna pribadi
    • Kontrol akses data
    • Konektor sumber data
    • Integrasi GitHub
    • Dashboard yang dapat di-hosting dan dibagikan
    • Komputasi on-demand yang dapat diskalakan untuk pekerjaan data skala besar
  • Mereka menyatakan tidak akan secara retroaktif mengubah versi Pretzel untuk pribadi menjadi berbayar

1 komentar

 
GN⁺ 2024-07-04
Opini Hacker News
  • Notebook Jupyter terintegrasi AI sudah cukup banyak. Meski tingkat keterbukaan sumbernya rendah atau tidak ada, produk-produk itu sudah diiterasi selama lebih dari setahun sehingga dalam beberapa hal lebih matang
    https://noteable.io/ dulu cukup bagus, tetapi menghilang setelah acqui-hire, dan https://deepnote.com kuat dalam integrasi AI dan kolaborasi real-time
    https://github.com/jupyterlab/jupyter-ai bagus sebagai ekstensi open source standar AI generatif untuk Jupyter yang dibuat oleh pihak Amazon, dan JupyterLab sendiri kini juga sudah cukup matang dalam kolaborasi real-time
    https://colab.google/ punya integrasi AI yang sangat baik, tetapi hanya bisa memakai model yang di-hosting Google
    https://cocalc.com punya integrasi AI yang luas dengan dukungan untuk berbagai model hosting utama serta kolaborasi real-time, dan sebagian besar gratis atau berbayar berdasarkan penggunaan. Saya ikut mengembangkannya
    Seperti yang dikatakan orang lain, VS Code juga punya notebook Jupyter bawaan yang sangat bagus; apakah masih ada yang terlewat?

    • Sebagian besar daftar ini sudah saya lihat saat riset, dan jika dirangkum perbedaannya, https://noteable.io/ seperti yang disebutkan sudah tidak ada
      https://deepnote.com sayangnya closed source, jadi tidak bisa dijalankan secara lokal atau dimodifikasi, dan pengguna harus mempelajari antarmuka baru lalu bermigrasi
      https://github.com/jupyterlab/jupyter-ai juga disebutkan di tulisan, tetapi menurut pengalaman saya, pengalaman pengguna dan fiturnya jauh tertinggal dibanding yang sudah kami buat. Namun dukungan untuk lebih banyak model dan codebase yang jauh lebih mudah dimodifikasi memang menjadi kelebihannya
      https://colab.google/ juga closed source seperti Deepnote, dan untuk dipakai di perusahaan tampaknya perlu versi enterprise karena konektor data dan jaminan dukungan, tetapi hanya berjalan di GCP sehingga bisa menjadi masalah fatal bagi organisasi yang berpusat pada AWS
      https://cocalc.com belum saya coba, tetapi terlihat seperti proyek yang bagus dan akan saya cek. Kesan pertama, antarmukanya tampak cukup berbeda dari Jupyter, sedangkan perbedaan besar kami adalah tujuan kami untuk mendatangi pengguna di tempat mereka sudah berada, yaitu Jupyter
      VSCode, seperti yang saya katakan di tempat lain, fitur yang kami bangun lebih berfokus pada alur kerja analisis. VSCode memang punya fitur AI, tetapi jika fitur-fitur roadmap kami ditambahkan, hasilnya akan terlihat cukup berbeda
    • https://www.cursor.com/ adalah klon VS Code yang mengutamakan AI
      Dukungan Jupyter di VS Code dan Cursor sangat bagus sehingga untuk alur kerja saya, opsi ini terasa jauh lebih baik daripada solusi khusus Jupyter Notebook
    • marimo sangat bagus. Saya sudah memakainya selama beberapa bulan dan memindahkan sebagian besar pekerjaan terkait notebook ke sana. Dukungan Copilot juga sudah termasuk secara bawaan
      https://github.com/marimo-team/marimo
    • Saya tidak tahu apakah https://hex.tech juga bisa masuk di sini
    • Yang terlewat juga ada DataSpell: https://www.jetbrains.com/dataspell
  • Implementasi yang dibuat tim dan kontributornya sangat bagus. Sederhana tetapi efektif, dan saya juga suka karena tetap menjadikannya open source, tidak seperti beberapa Show HN lain yang mengambil pekerjaan open source, menutupnya, lalu mengubah sedikit dan mengklaim telah membuat sesuatu yang hebat
    Saya penasaran apakah ke depannya mereka akan terus memperluas fitur lain. Fitur seperti Copilot dan chat memang bagus, tetapi pengguna sekarang sepertinya mengharapkan fitur semacam ini sudah tersedia secara bawaan di IDE atau lewat ekstensi

    • Menjaga Pretzel tetap open source itu penting, terutama karena faktor kepercayaan. Banyak orang yang memakai Jupyter menangani data sensitif, sehingga alat closed source sulit diterima
      Kecuali pihaknya adalah perusahaan yang sangat besar dan terkenal, saya tidak akan menyerahkan data perusahaan ke alternatif Jupyter closed source
      Saya setuju bahwa IDE seharusnya menyediakan fitur seperti ini. Namun IDE yang mendukung Jupyter Notebook hanya VSCode dan PyCharm, dan sebagian besar ekstensi AI untuk VSCode tidak dioptimalkan untuk pekerjaan notebook. Misalnya, menurut teman saya, GitHub Copilot kesulitan melakukan pelengkapan kode yang melintasi berbagai sel
      Ini baru permulaan, dan kami berencana membuat lebih banyak fitur khusus analisis data yang tidak ada di IDE mana pun, jadi menurut saya masih ada cukup ruang untuk alat seperti ini
    • Tampaknya mereka mengambil proyek berlisensi BSD-3-Clause lalu mengubahnya menjadi lisensi AGPLv3. Memang tidak sama persis, tetapi ada sisi yang mirip dengan hal yang dikhawatirkan itu
  • Saya Ramon, salah satu co-founder Pretzel lainnya. Berdasarkan masukan awal, kami sudah sedang mengerjakan dukungan untuk LLM lokal dan Claude Sonnet 3.5, dan kalau ada pertanyaan saya akan menjawabnya.

  • Github Copilot adalah alat paling berguna yang saya temukan setelah sekian lama, dan sangat bagus bisa memakainya di Jupyter Notebooks. Ini fitur yang sudah saya tunggu cukup lama, jadi kerja yang hebat.

    • File Jupyter notebook juga bisa dibuka di VS Code, dan itu menjadi cara lain untuk memakai AI autocomplete. Saya tidak cukup sering memakai Jupyter, jadi saya tidak tahu apakah masuk akal untuk selalu memakai VS Code.
    • Setuju. Sebenarnya kami mencoba membuat GitHub Copilot berjalan di Jupyter, tetapi GH tidak punya API resmi.
      Kami menghabiskan waktu untuk merekayasa balik implementasinya dengan merujuk ke ekstensi neovim GH Copilot [1] dan Zed [2], tetapi pada akhirnya terlalu tidak stabil dan merepotkan.
      Sementara itu, kami juga menemukan bahwa Codestral, berbeda dari LLM umum, memiliki versi fill-in-the-middle, sehingga keseimbangan kecepatan dan kualitasnya lebih baik, jadi kami memutuskan memakai Codestral. Kami terinspirasi dari continue.dev yang memakai Codestral untuk tab completion.
      [1] https://github.com/github/copilot.vim
      [2] https://zed.dev/blog/copilot
  • Saya penasaran, batasan apa yang membuatnya harus menjadi fork alih-alih dibuat sebagai ekstensi?

    • Kami membahasnya singkat di FAQ, tetapi kalau dijelaskan lebih jauh, tujuan kami adalah membuat alat literate programming modern. Secara tampilan akan sangat mirip Jupyter, tetapi dengan fitur yang lebih baik.
      Awalnya kami berpikir membuat alat baru dari nol, tetapi karena sangat sulit membuat orang berpindah, kami harus pergi ke tempat pengguna sudah berada, yaitu Jupyter.
      Kalau hanya fitur ini saja, meski sulit, bisa saja dibuat sebagai ekstensi, dan eksperimen awal kami juga dimulai dari ekstensi. Namun, akan sulit mengontrol secara rinci beberapa perilaku inti Jupyter, seperti membuat folder tersembunyi untuk menyimpan file seperti sekarang. Meski begitu, saya rasa versi Pretzel yang 95% berfungsi bisa saja dibuat sebagai ekstensi Jupyter.
      Alasan yang lebih besar adalah karena ke depannya kami ingin sepenuhnya mengubah model eksekusi kode menjadi berbasis DAG untuk membuat notebook yang dapat direproduksi. Contohnya mirip dengan https://plutojl.org/.
      Demikian pula, kami ingin sepenuhnya menghapus CodeMirror dan menggantinya dengan Monaco, mesin editor inti VSCode, untuk memberikan pengalaman seperti IDE di dalam Jupyter, dan hal seperti ini tidak mungkin dilakukan sebagai ekstensi.
  • Saya tidak mengerti maksud dari “GitHub Copilot belum didukung di Jupyter”. Saya sudah memakai Copilot di file .ipynb VS Code selama lebih dari setahun.

    • Seperti yang dikatakan orang lain, VSCode memang punya dukungan Copilot, tetapi data scientist, dan terutama analis, yang tidak menghabiskan sebagian besar harinya di editor teks, masih memakai Jupyter Lab atau aplikasi Notebook.
      Setelah mencoba Codestral, kami bisa mendapatkan completion yang sama bagusnya dengan Copilot, kadang lebih baik, dengan kecepatan dan biaya yang jauh lebih baik.
    • Sepertinya yang dimaksud bukan menjalankannya di VS Code, melainkan Jupyter Notebook atau Lab.
    • Mungkin yang dimaksud adalah aplikasi Jupyter Notebook, bukan format file notebook.
  • Semua editor seperti ini berfokus pada pemrograman; ada rekomendasi untuk pencatatan yang lebih umum?
    Saya ingin melakukan hal-hal seperti merapikan catatan yang sangat kasar, memformat ulang sesuai template umum, menerapkan perubahan berdasarkan prompt, dan mengajukan pertanyaan tentang kumpulan catatan.

  • Saya tidak terlalu paham kenapa ini menarik. Kalau memang butuh integrasi AI, Anda bisa memakai VSCode dan Jupyter sehingga mendapat akses ke seluruh ekosistem ekstensi. Idenya tidak buruk, tetapi tampak kurang punya tujuan.

    • Sebagian dari kami menyukai Jupyter atau memang harus memakainya.
  • Hasil kerjanya pada dasarnya adalah ekstensi Jupyter (https://github.com/pretzelai/pretzelai/tree/main/packages/pr...); saya penasaran kenapa tidak dibuat sebagai ekstensi seperti yang lain di https://github.com/jupyterlab-contrib, alih-alih melakukan hard fork JupyterLab

    • Pertanyaan yang valid. Saya pernah menjawab kenapa kami melakukan fork di sini: https://news.ycombinator.com/item?id=40857807
      Singkatnya, fitur yang ada sekarang mungkin saja bisa diimplementasikan sebagai ekstensi. Tentu saja, kami juga sudah membuat beberapa perubahan pada perilaku inti Jupyter
      Namun dalam roadmap ada pekerjaan untuk mengubah model eksekusi kode itu sendiri secara jauh lebih besar, dan itu tidak mungkin dilakukan lewat ekstensi