Replies: 17 comments 6 replies
-
Zach and I talked about this earlier today and I am fully on board. Thanks for writing it down Zach! |
Beta Was this translation helpful? Give feedback.
-
Thanks for putting this together. Should we first work on decomposing the jupyter-ai components into one of these repos? |
Beta Was this translation helpful? Give feedback.
-
Thanks for sharing this @Zsailer!! I'm following along because at the moment I think the only person on UC Berkeley campus who is thinking about this work is @fperez and that feels like a risky contribution / communication pathway 😉 I think @cboettig might be interested in following along too... Really looking forward to seeing how this design work unfolds! |
Beta Was this translation helpful? Give feedback.
-
Thanks so much for writing this down, @Zsailer, and agreed with @KirstieJane that I should NOT be the pathway for this :) In addition to Carl, from the Berkeley team I'd also flag @ryanlovett @minrk @balajialg. On the technical side, one thing that may need additional granularity is the problem of sandboxing. I don't think we should be looking at sandboxing only as a tool execution question, as prompt injection attacks continue to show (just one recent example among many how subtle and pernicious they can be. I think a deeper sense of isolation for all "project" activities is going to be necessary as we start having agents with API access to a UI as rich and powerful as Jupyter's. I'm not sure at all what that will look like, but I get a sense that simply trying to isolate tool execution won't be sufficient. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
@mbektas what extension points would have made it easier for you to develop https://github.com/notebook-intelligence? |
Beta Was this translation helpful? Give feedback.
-
All frontend components should be designed in a way so they work without Jupyter Server, or with a different Jupyter Server implementation. For example by isolating the parts that makes requests to the server in a different plugin (which is the case for https://github.com/jupyter-ai-contrib/jupyterlab-magic-wand). This will help frontend driven use cases such as https://github.com/jupyterlite/ai. |
Beta Was this translation helpful? Give feedback.
-
Thanks for opening this discussion. In case you're looking for use cases, jupyter-a11y-checker (@Chanbinski, @balajialg) uses AI to help authors add alt text to their notebooks. It'd be useful if it could tap into modular AI machinery built by the community rather than using custom code in the extension. |
Beta Was this translation helpful? Give feedback.
-
@Zsailer Thanks for posting this new exciting direction for Jupyter AI. A few high-level questions:
|
Beta Was this translation helpful? Give feedback.
-
Hey @Zsailer Thanks for writing this down. This is super exciting. Would like to work together on this. |
Beta Was this translation helpful? Give feedback.
-
For client-side, I would suggest a component that is providing API-style access for extensions to programmatically query an agent. The components listed above focus on the UI around a particular set of user workflows (for example, centering on chat and agent work), but I think we should also have programmatic access to the server apis so any other extension out there can query an agent. This may be implicit in how you design this functionality in layers, but I think providing a programmatic api for other extensions should be an explicit design goal. |
Beta Was this translation helpful? Give feedback.
-
Many many thanks @Zsailer for posting this. I strongly support the idea of building modular components, released independently, and assembled in different ways. This is a fast-moving area and we should avoid having a bottlenecks on a single repository. |
Beta Was this translation helpful? Give feedback.
-
😢 accessibility is missing from the list! there have been so many opportunities to shift accessibility to the left and they've been passed on. maybe this time? adding more access to AI stuff is not as inclusive as it sounds when the jupyter interface is fundamentally broken for AT users.
accessible cells and notebooks MUST exist. there has been little movement on making the notebook itself accessible. there have bits and pieces of the interface made accessible, but overall the accessibility of the notebook interface in lab and stand alone is broken. until this fundamental component is accessible any other feature added will be a privilege for those who access needs are already met.
a sizable minority of your potential users may use assistive technologies, and focusing on left shifting accessibility could improve the fidelity of the interface between jupyter and its assistive technology users.
from an accessibility perspective, there need to be automated tests, which means a test engineer, and manual testing by affected users who use assistive technology in their daily life is required. Fable is a service that could provide this support.
continually neglecting accessibility effects the personal security of assistive technology users. it is inequitable for them to experience second/third tier access to the jupyter while others are benefit without extra labor. inaccessibility of jupyter means many AT users can't take classes using jupyter, can't have jobs using jupyter, and can't benefit from the same literacy privileges current users have. it would be a real shame if they can't use jupyter's AI tools too because that would exclude a lot of people from modern tech employment. if AI is to be so much of jupyter's future it needs to include disabled folx. |
Beta Was this translation helpful? Give feedback.
-
Thank you to everyone who has added to this discussion. I will try to synthesize this feedback and add it to the list above (unless someone else beats me to it 😃 ). |
Beta Was this translation helpful? Give feedback.
-
I just want to give my support to @Zsailer 's framing here. It feels like this is an opportunity to align Jupyter's efforts around AI with the broader design philosophy that has made it impactful over the years: composability, modularity, customizability. I also suggest that we use interactive and human-centric computing workflows as a guiding function to prioritize what to do work on, because it's the unique space where Jupyter has built its expertise and brand over the years (rather than trying to re-invent every wheel in the AI space just because we didn't invent it). Let's create the building blocks that allow hundreds of individuals and organizations to experiment and innovate with AI and interactive computing. |
Beta Was this translation helpful? Give feedback.
-
@tonyfast @Zsailer - I've opened up jupyter-governance/funding-proposals#10 (Accessible AI: Articulating a roadmap to ensure JupyterAI enables data scientists who use screen readers) (Sorry - I clicked send too soon 🤦♀️ - but maybe that's good - I'll go add some thoughts over in the funding proposal! Please come and join me if you have any time to just dump some thoughts! Or find me on Zulip!) |
Beta Was this translation helpful? Give feedback.
-
Hey @Zsailer - thank you for putting this together - this is really fantastic! I'd love to be involved with the server-side aspects of this, although I'm still unsure regarding my level of contribution (new gig). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I'd like to develop and coordinate a strategy for introducing artificial intelligence into the Jupyter Notebook authoring experience. Our goal should be to create modular, reusable building blocks that can be combined to create rich AI experiences while keeping the ecosystem lean, fast-moving, and on the cutting edge.
Philosophy
Rather than building monolithic AI features, we want to create discrete, well-tested components that can be:
Think of this as the "Unix philosophy" for AI in Jupyter: small, focused tools that do one thing well and can be composed together.
Proposed Building Blocks
Browser Client Components (JupyterLab/Notebook)
Chat Interface & UI Components:
What other client-side components do we need?
Jupyter Server Components
AI Integration Layer:
What other server-side abstractions are missing?
Kernel Integration
Runtime Introspection:
What other kernel-level capabilities do we need?
Cross-Cutting Concerns
Implementation Strategy
jupyter-ai-contrib
organizationjupyter-ai
becomes an opinionated distribution that combines these componentsGetting Started
We're looking for contributors to help identify, design, and build these components. If you're interested in working on any of these building blocks:
Questions for the Community
Let's divide up the work and build the future of AI in interactive computing together! 🚀
This discussion aims to coordinate the development of modular AI building blocks for Jupyter. Please share your thoughts, volunteer for specific components, or suggest additional building blocks we should consider.
Beta Was this translation helpful? Give feedback.
All reactions