- Notifications
You must be signed in to change notification settings - Fork25
Visual Studio Code extension to quickly generate docstrings for python functions using AI(NLP) technology.
License
graykode/ai-docstring
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Visual Studio Code extension to quickly generate docstrings for python functions using AI(NLP) technology.This project is forked forNilsJPWerner/autoDocstring. Previously, the description of the function had to be written by the user, but the AI would see the code and summarize.
- AI Quickly generate a docstring snippet that can be tabbed through.
- Choose between several different types of docstring formats.
- Infers parameter types through pep484 type hints, default values, and var names.
- Support for args, kwargs, decorators, errors, and parameter types
- Google (default)
- docBlockr
- Numpy
- Sphinx
- PEP0257 (coming soon)
Usage is very simple. You just (1) run the container for the model inference server and (2) install extension in vscode and use.
- If you have GPU machine :
docker run -it -d --gpus 0 -p 5000:5000 graykode/ai-docstring:gpu
, after installingnvidia-docker. - If you have only CPU :a. Run flask server withgoogle colab and ngrok(Recommend!)or b. use docker cpu image :
docker run -it -d -p 5000:5000 graykode/ai-docstring:cpu
- At this time, it is very likely to cause OOM problem. We need more memory limit than roughly 2GB.So add
--memory 2g --memory-swap
parameter in linux and change memory limit inPreferences > Advanced
more than 2GB(default) in macOS.
- At this time, it is very likely to cause OOM problem. We need more memory limit than roughly 2GB.So add
Cursor must be on the line directly below the definition to generate full auto-populated docstring
- Press enter after opening docstring with triple quotes (
"""
or'''
) - Keyboard shortcut:
ctrl+shift+2
orcmd+shift+2
for mac- Can be changed in Preferences -> Keyboard Shortcuts -> extension.generateDocstring
- Command:
Generate Docstring
- Right click menu:
Generate Docstring
Extension Settings are the same as themother project except forautoDocstring.ServerEndpoint
:
ai-docstring.ServerEndpoint
: endpoint address accessible to the server.
For training data,github/CodeSearchNet was used, and as an initial model, we used Code2NL(Code to Natural Language) fine-tuning tasks inmicrosoft/CodeBERT. For detailed instructions, refer to the paper (CodeBERT: A Pre-Trained Model for Programming and Natural Languages) andthis section.
Device | beam_size | max_source_length | max_target_length | Time(ms) |
---|---|---|---|---|
CPU | 1 | 256 | 128 | 470 |
CPU | 10 | 256 | 128 | 1332 |
CPU | 1 | 512 | 128 | 511 |
CPU | 10 | 512 | 128 | 1954 |
GPU | 1 | 256 | 128 | 165 |
GPU | 10 | 256 | 128 | 381 |
GPU | 1 | 512 | 128 | 205 |
GPU | 10 | 512 | 128 | 545 |
- CPU : Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
- GPU : Nvidia Tesla T4
This project is licensed under theApache 2.0 License which is based on MIT License.
About
Visual Studio Code extension to quickly generate docstrings for python functions using AI(NLP) technology.
Topics
Resources
License
Stars
Watchers
Forks
Releases
Packages0
Languages
- Jupyter Notebook52.0%
- TypeScript38.0%
- Python8.4%
- HTML1.0%
- Dockerfile0.2%
- Starlark0.2%
- Shell0.2%