Pretzel 🥨 ทางเลือกแทน Jupyter แบบสมัยใหม่และโอเพนซอร์ส

Pretzel เป็นฟอร์กของ Jupyter ที่สร้างขึ้นเพื่อปรับปรุงความสามารถของ Jupyter โดยเพิ่มฟีเจอร์สร้างและแก้ไขโค้ดด้วย AI, การเติมโค้ดแบบ inline tab completion, แชตในแถบด้านข้าง และการแก้ข้อผิดพลาด Pretzel เปลี่ยนจาก Jupyter มาใช้ได้ง่ายมาก การตั้งค่า, key binding และส่วนขยายทั้งหมดของ Jupyter ยังคงใช้งานได้เหมือนเดิม

เริ่มต้นอย่างรวดเร็ว

  • ติดตั้ง: pip install pretzelai แล้วรัน pretzel lab เพื่อเปิดเว็บอินเทอร์เฟซ หรือใช้เวอร์ชันโฮสต์ฟรีได้ที่ pretzelai.app
  • เริ่มพิมพ์ในเซลล์เพื่อใช้งานฟีเจอร์ inline tab completion
  • คลิก "Ask AI" ในเซลล์ Jupyter หรือกด Cmd+K (Mac) / Ctrl+K (Linux/Windows) เพื่อเปิด AI prompt
  • กด Ctrl+Cmd+B (Mac) หรือ Ctrl+Alt+B (Linux/Windows) เพื่อเปิดใช้งาน AI sidebar สำหรับแชตกับ AI, สร้างโค้ด และถามคำถาม
  • การตั้งค่าให้ใช้ OpenAI API key ดูได้ในส่วนการตั้งค่า

การติดตั้ง

  • ติดตั้ง Pretzel ด้วย pip: pip install pretzelai
  • หากใช้ conda ให้ติดตั้ง pip ก่อน แล้วค่อยติดตั้ง Pretzel: conda install pip แล้ว pip install pretzelai
  • เริ่ม Pretzel: pretzel lab

วิธีใช้งาน

Inline tab completion
  • เริ่มพิมพ์ในเซลล์เพื่อใช้งาน inline tab completion โดยใช้ Codestral ของ Mistral
  • รอ 1 วินาที แล้วฟีเจอร์เติมโค้ดจะเริ่มทำงาน
สร้างและแก้ไขโค้ดในเซลล์โน้ตบุ๊ก
  • ในเซลล์ กด Cmd+K (Mac) / Ctrl+K (Windows/Linux) หรือคลิก "Ask AI" เพื่อเปิดกล่องข้อความ AI prompt
  • อ้างอิงตัวแปรและ data frame ที่อยู่ในหน่วยความจำได้โดยระบุ @variable
  • หากมีโค้ดเดิมอยู่แล้ว prompt จะใช้เพื่อแก้ไขโค้ดเดิม
  • หากเลือก/ไฮไลต์บางส่วนของโค้ดในเซลล์ จะมีการแก้ไขเฉพาะส่วนที่เลือกเท่านั้น
  • สามารถยอมรับ/ปฏิเสธคำตอบ หรือแก้ไข prompt แล้วส่งใหม่ได้
  • กด ↑ / ↓ เพื่อเลื่อนดูประวัติ prompt
ใช้งาน AI sidebar
  • เปิดใช้งาน AI sidebar ด้วย Ctrl+Cmd+B (Mac) / Ctrl+Alt+B (Linux/Windows) หรือไอคอน Pretzel ในแถบด้านขวา
  • สามารถถามคำถาม, สร้างโค้ด หรือค้นหาโค้ดที่มีอยู่ได้
  • AI จะใช้โค้ดของเซลล์ที่กำลังใช้งานอยู่เป็นบริบทเสมอ หากไฮไลต์บางส่วนของโค้ดในเซลล์ที่กำลังใช้งานอยู่ จะใช้เฉพาะส่วนที่ไฮไลต์เป็นบริบท

ตัวอย่างการใช้งาน:

  • "Modify the function my_function in @notebook to be more efficient" ← ค้นหาและแก้ไขฟังก์ชัน my_function ทั้งโน้ตบุ๊ก
  • "Where is the code in @notebook that removes outliers"? ← ค้นหาโค้ดที่ลบ outliers ทั้งโน้ตบุ๊ก
  • "Can you explain what this code does?" ← อธิบายโค้ดในเซลล์ปัจจุบัน
เพิ่มโค้ดเข้าไปกลางโค้ดเดิม
  • วางเคอร์เซอร์ไว้บนบรรทัดว่างหรือบรรทัดโค้ดเดิม แล้วกด Cmd+K เพื่อเปิดกล่องข้อความ AI prompt
  • หากขึ้นต้น prompt ด้วย inject หรือ ij AI จะเพิ่มโค้ดใหม่โดยไม่แก้ไขโค้ดเดิม
  • โค้ดจะถูกเพิ่มใต้บรรทัดที่วางเคอร์เซอร์ลงไปหนึ่งบรรทัด
แก้ข้อผิดพลาดด้วย AI
  • เมื่อเกิดข้อผิดพลาด ปุ่ม "Fix Error with AI" จะปรากฏที่มุมขวาบน สามารถคลิกเพื่อพยายามแก้ข้อผิดพลาดได้

การตั้งค่า

  • Pretzel ทำงานได้โดยค่าเริ่มต้นโดยไม่ต้องตั้งค่า
  • Pretzel ใช้เซิร์ฟเวอร์ AI ฟรีเป็นค่าเริ่มต้น และสามารถตั้งค่าให้ใช้ OpenAI/Azure API key ได้

รองรับ OpenAI

  • เปิดเมนู Settings บนแถบเมนูด้านบน แล้วคลิก Settings Editor
  • ค้นหา Pretzel แล้วเลือก Pretzel AI Settings จากแถบด้านซ้าย
  • ในดรอปดาวน์ AI Service ให้เลือก OpenAI API Key แล้วกรอก API key ใน OpenAI Settings > API Key
  • หากใช้ OpenAI Enterprise สามารถกรอก base URL สำหรับการเรียก OpenAI ได้ด้วย
  • โมเดลเริ่มต้นคือ GPT-4o และสามารถเปลี่ยนได้จากดรอปดาวน์ OpenAI Model

รองรับ Azure

  • เช่นเดียวกับการตั้งค่า OpenAI สามารถเลือก Use Azure API จากดรอปดาวน์ AI Service เพื่อใช้โมเดลที่โฮสต์บน Azure ได้

ฟีดแบ็ก, บั๊ก และเอกสาร

ข้อมูลเกี่ยวกับ Jupyter

  • เอกสารต้นฉบับของ Jupyter ดูได้ที่นี่ และ README ของ Jupyterlab ดูได้ที่นี่

นโยบายความเป็นส่วนตัว, การเก็บข้อมูล และการเก็บรักษา

  • ไม่เก็บข้อมูลส่วนบุคคล ใช้เพียง telemetry พื้นฐานสำหรับฟีเจอร์ AI
  • หากอนุญาตคุกกี้ จะสามารถระบุได้ว่าเป็นผู้ใช้คนเดิมในหลายเซสชันของเบราว์เซอร์
  • เก็บเฉพาะ prompt สำหรับฟีเจอร์ AI และไม่เก็บคำตอบ สามารถปิด prompt telemetry ได้ในการตั้งค่า
  • ไม่เก็บโค้ดเลย แม้จะใช้เซิร์ฟเวอร์ AI บนคลาวด์ของ Pretzel ก็จะไม่เก็บโค้ด
  • หากใช้ Pretzel เวอร์ชันโฮสต์ ระบบจะสร้างบัญชีผู้ใช้ตามอีเมล และสามารถล็อกอินเพื่อลบข้อมูลที่บันทึกไว้ได้ทุกเมื่อ
  • เซิร์ฟเวอร์โฮสต์ใช้งานได้ฟรี แต่จะลบข้อมูลและบัญชีหลังจากการล็อกอินครั้งล่าสุดครบ 30 วัน หากต้องการลบบัญชีทันที ให้ส่งอีเมลถึง founders@withpretzel.com พร้อมหัวข้อ "Account Deletion"

FAQ

Q. Pretzel AI เวอร์ชันก่อนหน้าเกิดอะไรขึ้น? A. ดูได้ในโฟลเดอร์ pretzelai_visual รายละเอียดเพิ่มเติมดูได้ใน PR นี้

Q. Pretzel ใช้โมเดล AI อะไรบ้าง? A. Pretzel ใช้โมเดล AI ต่างกันตามงาน:

  1. โมเดลหลัก: GPT-4o
    • สมดุลระหว่างความเร็วและคุณภาพได้ดี
    • หากใช้ API key ของตัวเอง สามารถเปลี่ยนได้ในการตั้งค่า Pretzel
  2. การเติมโค้ดแบบ inline: โมเดล Codestral ของ Mistral
    • โดดเด่นด้าน code completion
    • ทำงานได้เร็วมาก (โมเดลขนาด 22B พารามิเตอร์)
  3. ตัวเลือกสำรอง:
    • หากใช้ API key ของตัวเองแต่ไม่ได้ให้ Mistral API key, Pretzel จะใช้ GPT-4o สำหรับ inline completion ด้วย

Q. แล้วฟีเจอร์ X ล่ะ? A. ยังมีฟีเจอร์ที่อยากสร้างอีกมาก หากมีฟีเจอร์ที่ต้องการ โปรดแจ้งและเปิด issue ได้เลย

Q. โรดแมปอยู่ที่ไหน? A. มีโรดแมปคร่าว ๆ อยู่ด้านบนของ README มีหลายฟีเจอร์ที่อยากสร้าง แต่ตอนนี้ทำงานกันอยู่สองคน จะเก็บฟีดแบ็กเพื่อจัดลำดับความสำคัญ เปิด issue หรือส่งอีเมลฟีดแบ็กมาได้

Q. ทำไมถึงใช้ไลเซนส์ AGPL แทน MIT/BSD3? A. เป้าหมายของการสร้าง Pretzel คือการสร้างเครื่องมือข้อมูลที่ยอดเยี่ยมซึ่งทั้งบุคคลทั่วไปและบริษัทสามารถใช้ได้ฟรี ใช้ไลเซนส์ AGPLv3 เพื่อป้องกันไม่ให้บุคคลที่สามนำโค้ดไปขายโดยไม่ตอบแทนชุมชน

Q. ทำไมถึงเลือกฟอร์กจาก Jupyter? ทำไมไม่ไปมีส่วนร่วมกับ Jupyter โดยตรง? A. เราตระหนักว่าการเปลี่ยนไปใช้เครื่องมือใหม่เป็นเรื่องยาก การฟอร์กจาก Jupyter ช่วยลดต้นทุนในการเปลี่ยนให้น้อยที่สุด Jupyter เป็นผลิตภัณฑ์ที่มีความสมบูรณ์และช่วยให้เพิ่มฟีเจอร์ได้อย่างรวดเร็ว

Q. ถ้าบริษัทกังวลเรื่องการใช้เครื่องมือที่ใช้ไลเซนส์ AGPLv3 ควรทำอย่างไร? A. AGPL จะเป็นข้อจำกัดเฉพาะเมื่อมีการแก้ไข Pretzel และเผยแพร่ต่อสาธารณะเท่านั้น หากใช้เป็นเครื่องมือภายในบริษัท AGPL ไม่ได้บังคับให้ต้องแชร์โค้ด หาก AGPL เป็นปัญหา กรุณาติดต่อมาเพื่อหาทางออกร่วมกัน

Q. วางแผนจะหารายได้อย่างไร? ทำไมถึงให้ใช้ฟรี? A. วางแผนสร้างรายได้จากการขายเวอร์ชันโฮสต์ให้กับบริษัท ซึ่งจะมีฟีเจอร์ที่บริษัทต้องการ เช่น การควบคุมการเข้าถึงข้อมูล, การเชื่อมต่อ data source, การรวมกับ GitHub และแดชบอร์ดที่แชร์ได้ ส่วนเวอร์ชันสำหรับบุคคลทั่วไปจะไม่เปลี่ยนเป็นแบบเสียเงิน

ความเห็นจาก GN⁺

  • Pretzel ขยายความสามารถของ Jupyter เพื่อมอบเครื่องมือที่ดีกว่าให้กับนักวิทยาศาสตร์ข้อมูลและวิศวกร ฟีเจอร์สร้างและแก้ไขโค้ดด้วย AI สามารถเพิ่มประสิทธิภาพการทำงานได้มาก
  • น่าประทับใจที่เพิ่มฟีเจอร์ใหม่โดยยังคงความเข้ากันได้กับ Jupyter ทำให้แทบไม่มีต้นทุนในการย้ายสำหรับผู้ใช้
  • การใช้ไลเซนส์ AGPL เพื่อกระตุ้นการมีส่วนร่วมกับชุมชนเป็นเรื่องที่น่าชื่นชม แต่บางองค์กรอาจลังเลในการนำไปใช้เพราะประเด็นด้านไลเซนส์
  • ฟีเจอร์ AI ของ Pretzel ทำให้การเขียนโค้ดและดีบักง่ายขึ้น แต่ผลลัพธ์อาจแตกต่างกันตามประสิทธิภาพและความแม่นยำของโมเดล AI จึงยังต้องมีการปรับปรุงโมเดลอย่างต่อเนื่อง
  • เครื่องมือที่มีฟีเจอร์คล้าย Pretzel ได้แก่ Google Colab และส่วนขยาย Jupyter ของ VSCode ควรเปรียบเทียบข้อดีข้อเสียของแต่ละเครื่องมือก่อนเลือกใช้

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น