49 lines
2.3 KiB
Markdown
49 lines
2.3 KiB
Markdown
# Contributing
|
|
|
|
Thank you for your interest in contributing to STORM!
|
|
|
|
Contributions aren't just about code. Currently (last edit: 7/22/2024), we are accepting the following forms of contribution:
|
|
- Pull requests for additional language model support to `knowledge_storm/lm.py`.
|
|
- Pull requests for additional retrieval model/search engine support to `knowledge_storm/rm.py`.
|
|
- Pull requests for new features to `frontend/demo_light` to assist other developers.
|
|
- Identification and reporting of issues or bugs.
|
|
- Helping each other by responding to issues.
|
|
|
|
Please note that we are not accepting code refactoring PRs at this time to avoid conflicts with our team's efforts.
|
|
|
|
## Development
|
|
This section contains technical instructions & hints for contributors.
|
|
|
|
### Setting up
|
|
1. Fork this repository and clone your forked repository.
|
|
2. Install the required packages:
|
|
```
|
|
conda create -n storm python=3.11
|
|
conda activate storm
|
|
pip install -r requirements.txt
|
|
```
|
|
3. If you want to contribute to `frontend/demo_light`, follow its [Setup guide](https://github.com/stanford-oval/storm/tree/main/frontend/demo_light#setup) to install additional packages.
|
|
|
|
### PR suggestions
|
|
|
|
Following the suggested format can lead to a faster review process.
|
|
|
|
**Title:**
|
|
|
|
[New LM/New RM/Demo Enhancement] xxx
|
|
|
|
**Description:**
|
|
- For new language model support, (1) describe how to use the new LM class, (2) create an example script following the style of existing example scripts under `examples/`, (3) attach an input-output example of the example script.
|
|
- For new retrieval model/search engine support, (1) describe how to use the new RM class and (2) attach input-output examples of the RM class.
|
|
- For demo light enhancements, (1) describe what's new and (2) attach screenshots to demonstrate the UI change.
|
|
- Please clearly describe the required API keys and provide instructions on how to get them (if applicable). This project manages API key with `secrets.toml`.
|
|
|
|
**Code Format:**
|
|
|
|
We adopt [`black`](https://github.com/psf/black) for arranging and formatting Python code. To streamline the contribution process, we set up a [pre-commit hook](https://pre-commit.com/) to format the code under `knowledge_storm/` before committing. To install the pre-commit hook, run:
|
|
```
|
|
pip install pre-commit
|
|
pre-commit install
|
|
```
|
|
The hook will automatically format the code before each commit.
|