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 added in 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 or Jupyter Notebook >= 7.1.0
  • 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 -U 'jupyterlab>=4.1.0a3' 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.2.0.tar.gz (115.5 kB view details)

Uploaded Source

Built Distribution

File details

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

File metadata

  • Download URL: jupyterlab_transformers_completer-0.2.0.tar.gz
  • Upload date:
  • Size: 115.5 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.2.0.tar.gz
Algorithm Hash digest
SHA256 90bb21620bdabb62db7748bb3200ca648ff154181efe19541c7d31713fea7eae
MD5 b1b118df8f4331ff90456fa1573c7150
BLAKE2b-256 880591bd4398db1a3c6daa23aa0a3b96507384edfa2fbb86afe7ea28073b398b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jupyterlab_transformers_completer-0.2.0-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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8905a02b8daaf96966e5ecfa86ac6764c8728660e694e33bccc7f5b92c493a4c
MD5 3e76228986a4f0adf881a99de6bd4f45
BLAKE2b-256 badcf33946dda653805a2d666da928af83f234539a514f9c26a63d3e51979563

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