Configuring defaults to use in Jupyter AI with Binder?

Hi, I am new here and hope this question is fine: We’re using a binderhub (through mybinder.org) to run several notebooks located on a github, mainly to teach a little bit about python and data science without people having to install jupyter notebooks, which works well. We’ve recently added jupyter-ai as an additional feature. However, I’ve now been trying to set a default llm when binder starts resp. when jupyter-ai is activated and I am getting nowhere. I’ve tried to put config-files in my github, postBuilds, ymls, but nothing works. I am not sure where the problem lies but I feel that there’s still something wrong in the way that it all works together. If I understand it correctly, the postBuild really kicks in right after the environment is set up and I suppose the problem might be that jupyter-ai first needs to be activated and when this happens, it doesn’t know to look for the defaults, but I don’t know what I would need to do to achieve this?

My last attempt was creating a config.json at root level in github after this example: Customizing your BinderHub deployment — BinderHub documentation and then creating a postBuild to run this, but my feeling is that this might be flawed. Can anyone help? It’s driving me nuts…

Dear @ssp24, the mybinder.org does not provide GPUs. Use for AI will be two slow or not possible at all.

For example, GitHub - GESIS-Methods-Hub/minimal-example-ipynb-python-gpt2: Minimal Example of Tutorial in Jupyter Notebook running GPT2 uses GPT2 model and takes a couple of minutes to provide a token.

1 Like

Hi and thanks for the reply! I know, but jupyter ai works through an API and it does work perfectly well with mybinder.org. It is just that I currently need to select the llm it should use manually, and I simply want the cloud-binderhub to know which one to pre-select. I can’t imagine that there’s no way of doing this?

Hi, so I’ve now tried setting up a test repository that basically ONLY loads jupyter-ai to make sure there’s nothing else interferring with the setup. Originally, this started and worked as expected with mybinder. So I then tried specifiying an llm to set as default for jupyter-ai in a jupyter_notebook_config.py that I put in a folder called “binder”. When starting this through mybinder, it eventually loads, but instead of jupyter-ai having a preselected llm, jupyter-ai disappears from the environment altogether. For the fun of it I then started trying to simply display a message when the environment loads or have it start opening a specific notebook directly via the jupyter_notebook_config.py (and took the jupyter-ai bit out) - the environment starts, but none of the configurations work - it starts if I hadn’t specified anything. In a next step, I did create an additional postBuild to try to make sure the jupyter_notebook_config.py is loaded, but this also didn’t help or change anything. Eventually, I have now renamend the binder folder to “ignore-binder” to keep the files but to get mybinder.org to not take them into account when starting and - unsurprisingly - jupyter-ai is now back in the environment.

This tells me that the config-file seems to be in the right place, but why binderhub doesn’t actually implement any of the configurations I have tried, I don’t know. Is there another, easy config that I could try that should definitely work with mybinder so that I can see where the problem might lie?

If anyone is up for it, this is my testrepo with the latest changes to ignore all configurations again. Would appreciate any ideas.

The binder directory is only for repo2docker configuration files:

Your can build an image locally using

This should let you debug your configuration on your own system.

2 Likes