{"id":13937890,"url":"https://github.com/explosion/jupyterlab-prodigy","last_synced_at":"2025-04-07T06:09:45.418Z","repository":{"id":41092799,"uuid":"180082617","full_name":"explosion/jupyterlab-prodigy","owner":"explosion","description":"🧬 A JupyterLab extension for annotating data with Prodigy","archived":false,"fork":false,"pushed_at":"2023-05-10T09:04:11.000Z","size":257,"stargazers_count":189,"open_issues_count":3,"forks_count":23,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-03-31T04:07:47.189Z","etag":null,"topics":["active-learning","annotation","annotation-tool","artificial-intelligence","computer-vision","data-annotation","data-science","jupyter","jupyterlab","labeling-tool","machine-learning","machine-teaching","natural-language-processing","nlp","prodigy","spacy"],"latest_commit_sha":null,"homepage":"https://prodi.gy","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/explosion.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-04-08T06:18:49.000Z","updated_at":"2025-02-25T14:29:45.000Z","dependencies_parsed_at":"2022-07-30T21:08:10.895Z","dependency_job_id":"bf37e621-533e-4b4e-b37c-40ec1d9c2c43","html_url":"https://github.com/explosion/jupyterlab-prodigy","commit_stats":{"total_commits":64,"total_committers":6,"mean_commits":"10.666666666666666","dds":0.71875,"last_synced_commit":"63b477c1b002d1286b91205174fac6904b40e982"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/explosion%2Fjupyterlab-prodigy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/explosion%2Fjupyterlab-prodigy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/explosion%2Fjupyterlab-prodigy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/explosion%2Fjupyterlab-prodigy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/explosion","download_url":"https://codeload.github.com/explosion/jupyterlab-prodigy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601448,"owners_count":20964864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["active-learning","annotation","annotation-tool","artificial-intelligence","computer-vision","data-annotation","data-science","jupyter","jupyterlab","labeling-tool","machine-learning","machine-teaching","natural-language-processing","nlp","prodigy","spacy"],"created_at":"2024-08-07T23:04:00.279Z","updated_at":"2025-04-07T06:09:45.392Z","avatar_url":"https://github.com/explosion.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# JupyterLab extension for the Prodigy annotation tool ✨\n\n![Github Actions Status](https://github.com/explosion/jupyterlab-prodigy/workflows/Build/badge.svg)\n[![npm](https://img.shields.io/npm/v/jupyterlab-prodigy.svg?style=flat-square\u0026logo=npm)](https://www.npmjs.com/package/jupyterlab-prodigy)\n\nThis repo contains a [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) extension for [Prodigy](https://prodi.gy), our scriptable annotation tool for creating training data for machine learning models. It lets you run Prodigy within a JupyterLab tab, and annotate as you develop your models and applications. In order to use this\nextension, you'll need a license for Prodigy – [see this page](https://prodi.gy/buy) for more details. For questions, please use the [Prodigy Support Forum](https://support.prodi.gy). If you've found a bug, feel free to submit a [pull request](https://github.com/explosion/jupyterlab-prodigy/pulls).\n\n🙏 **Special thanks** to Jupyter core dev [Grant Nestor](https://www.grantnestor.com/)\nfor helping us build this extension!\n\n\u003cimg src=\"https://user-images.githubusercontent.com/13643239/60034585-499b4f80-96ab-11e9-9624-711f71d01b9b.gif\" width=\"854\"\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/13643239/86128438-a5c85900-bae1-11ea-82d9-a466e31e0861.png\" width=\"854\" /\u003e\n\n## ⌛️ Installation\n\nTo use this extension, you need\n[JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) \u003e= 3.0.0 and\n[Prodigy](https://prodi.gy).\n\n```bash\npip install jupyterlab\u003e=3.0.0\n```\n\nTo install the extension, run:\n\n```bash\npip install jupyterlab-prodigy\n```\n\nEnsure that the extension is installed and enabled:\n\n```bash\njupyter labextension list\n```\n\n### Uninstall\n\nTo remove the extension, run:\n\n```bash\npip uninstall jupyterlab-prodigy\n```\n\n### Compatibility\n\nThis extension is compatible with Jupyterlab 3.0.0 and above. If you're using\nJupyterlab with versions `\u003e=2.0.0` and `\u003c3.0.0`, then you should install the\n`3.0.0` version of `jupyterlab-prodigy`\n\n```bash\njupyter labextension install jupyterlab-prodigy@3.0.0\n```\n\n## 📋 Usage\n\nStart a Prodigy session in a terminal, e.g.:\n\n```console\n$ prodigy ner.manual my_set blank:en notebooks/news_headlines.jsonl --label PERSON,ORG,PRODUCT\n```\n\nIn another terminal session, start JupyterLab:\n\n```console\n$ jupyter lab\n```\n\nThen, inside of JupyterLab, open the `Commands` toolbar via \u003ckbd\u003e⌘ CMD\u003c/kbd\u003e/\u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eSHIFT\u003c/kbd\u003e + \u003ckbd\u003eC\u003c/kbd\u003e, and search/type:\n\n\u003ckbd\u003eOpen Prodigy\u003c/kbd\u003e\n\nExecute it, you will have a new Prodigy panel on the side.\n\n## ⚙ Configuration\n\nIf your Prodigy is being served at a URL different than the default (e.g. behind a reverse proxy) you can configure the URL to use in the settings.\n\nOpen the `Settings` menu, go to `Advanced Settings Editor`, select the settings for `Prodigy Jupyter Extension`, and there you can add your custom URL, e.g.:\n\n```JSON\n{\n    \"prodigyConfig\": {\n        \"url\": \"https://prodigy.example.com\"\n    }\n}\n```\n\n## 👩‍💻 Develop\n\nNote: You will need NodeJS to build the extension package. It is also\nhighly-recommended that you work in a [virtual\nenvironment](https://docs.python.org/3/tutorial/venv.html) when developing.\n\nThe `jlpm` command is JupyterLab's pinned version of\n[yarn](https://yarnpkg.com/) that is installed with JupyterLab. You may use\n`yarn` or `npm` in lieu of `jlpm` below.\n\n```bash\n# Clone the repo to your local environment\n# Change directory to the jupyterlab-prodigy directory\n# Install dev requirements\npip install -r requirements-dev.txt\n# Install package in development mode\npip install -e .\n# Link your development version of the extension with JupyterLab\njupyter labextension develop . --overwrite\n# Rebuild extension Typescript source after making changes\njlpm run build\n```\n\nYou can watch the source directory and run JupyterLab at the same time in\ndifferent terminals to watch for changes in the extension's source and\nautomatically rebuild the extension.\n\n```bash\n# Watch the source directory in one terminal, automatically rebuilding when needed\njlpm run watch\n# Run JupyterLab in another terminal\njupyter lab\n```\n\nWith the watch command running, every saved change will immediately be built\nlocally and available in your running JupyterLab. Refresh JupyterLab to load\nthe change in your browser (you may need to wait several seconds for the\nextension to be rebuilt).\n\nBy default, the `jlpm run build` command generates the source maps for this\nextension to make it easier to debug using the browser dev tools. To also\ngenerate source maps for the JupyterLab core extensions, you can run the\nfollowing command:\n\n```bash\njupyter lab build --minimize=False\n```\n\n### Uninstall\n\n```bash\npip uninstall jupyterlab-prodigy\n```\n\n### Packaging the extension\n\nSee [RELEASE](RELEASE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexplosion%2Fjupyterlab-prodigy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexplosion%2Fjupyterlab-prodigy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexplosion%2Fjupyterlab-prodigy/lists"}