Skip to main content

Inline completion provider using tranformers.js for JupyterLab.

Project description

jupyterlab-transformers-completer

Extension status Github Actions Status Binder

Inline completion provider using transformers.js for JupyterLab

This extension is currently aimed for developers of JupyterLab extensions (and advanced JupyterLab users) to explore the proof of concept integration of the new inline completions API slotted for JupyterLab 4.1.

All models linked from this demonstration run exclusively in your browser, and are:

  • order of magnitudes smaller than the state-of-the-art models,
  • producing correspondingly lower accuracy of suggestions/answers.

These models are not vetted for accuracy nor propriety and should not be deployed without further validation.

demo-transformers

Requirements

  • JupyterLab >= 4.1.0 (not yet released)
  • A browser supporting:
    • SharedArrayBuffer
    • Web Workers
    • Dynamic import for workers (behind dom.workers.modules.enabled in Firefox)
    • (optional, for faster inference) WebGPU (behind dom.webgpu.enabled in Firefox)
  • jupyter-server to enable additional headers (jupyverse and jupyterlite not tested yet)

When this extension is enabled, the server will return additional headers, which will prevent fetching external resources, for example the extension logos from GitHub will no longer load in the extension panel.

The additional headers are used to enable synchronous communication with WebWorker via SharedArrayBuffer:

Cross-Origin-Opener-Policy: same-origin,
Cross-Origin-Embedder-Policy: require-corp

Install

To install the extension, execute:

pip install git+https://github.com/krassowski/jupyterlab-transformers-completer.git#egg=jupyterlab-transformers-completer

Uninstall

To remove the extension, execute:

pip uninstall jupyterlab-transformers-completer

Contributing

Development install

Note: You will need NodeJS to build the extension package.

The jlpm command is JupyterLab's pinned version of yarn that is installed with JupyterLab. You may use yarn or npm in lieu of jlpm below.

# Clone the repo to your local environment
# Change directory to the jupyterlab-transformers-completer directory
# Install package in development mode
pip install -e "."
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Rebuild extension Typescript source after making changes
jlpm build

You can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension.

# Watch the source directory in one terminal, automatically rebuilding when needed
jlpm watch
# Run JupyterLab in another terminal
jupyter lab

With the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).

By default, the jlpm build command generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command:

jupyter lab build --minimize=False

Development uninstall

pip uninstall jupyterlab-transformers-completer

In development mode, you will also need to remove the symlink created by jupyter labextension develop command. To find its location, you can run jupyter labextension list to figure out where the labextensions folder is located. Then you can remove the symlink named @jupyterlab/transformers-completer within that folder.

Packaging the extension

See RELEASE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyterlab_transformers_completer-0.1.1.tar.gz (114.6 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file jupyterlab_transformers_completer-0.1.1.tar.gz.

File metadata

  • Download URL: jupyterlab_transformers_completer-0.1.1.tar.gz
  • Upload date:
  • Size: 114.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/5.1.0 pkginfo/1.7.1 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.6

File hashes

Hashes for jupyterlab_transformers_completer-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d37e5db2a6658e6c922ede2ae1bbc9f7985a505e93063f41a79e390e34a62c4e
MD5 dc32240357ac58cc8f4341d579caf5a4
BLAKE2b-256 3c6d0177cce23150408d1c9b72b4b216d723fe37d20cb3c2f3e32560762bf3d1

See more details on using hashes here.

File details

Details for the file jupyterlab_transformers_completer-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: jupyterlab_transformers_completer-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/5.1.0 pkginfo/1.7.1 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.6

File hashes

Hashes for jupyterlab_transformers_completer-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2f4d743e56e2175ad2414af053ccf16fcaa3356882d8751209d865476ddfd484
MD5 a65add93ea2c831c695afb9f26838d44
BLAKE2b-256 85da72e7edb175acd2c5e5e5dbb49f04ed04affaca0f2cc451610a4023b1cff4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page