Skip to content

Contributing guidelines

oobabooga edited this page Aug 3, 2023 · 22 revisions

Contributing guidelines

Your help with improving text-generation-webui is welcome and appreciated. Here you can find some general guidelines to make the process easier.

Requirements

Before submitting a PR, make sure to:

  1. Familiarize yourself with Gradio, in particular, its components and methods. The documentation is very easy to follow: https://gradio.app/docs
  2. Lint the changes that you have made. I use the following tools:
pyflakes file.py  # To check for errors
pycodestyle file.py  # To check for style problems

The following pycodestyle errors can be ignored:

  • E501 line too long
  • E402 module level import not at top of file
  • E722 do not use bare 'except'

The remaining errors should be fixed.

  1. Thoroughly self-test your code. Can you think of a scenario where it might not work as expected? Does it interfere with other parts of the program?

  2. Keep it simple, structured, and organized.

Scope

This project aims to provide a web interface for interacting with Large Language Models. As such, improvements to the UI are of high priority, including:

  • Improving the various UI functionalities.
  • Improving the arrangement of UI elements.
  • Improving the CSS styles under text-generation-webui/css, in particular, those of chat styles.

API

The API exists to make it possible to automate text generation actions available in the UI. You should not add features to the API if they could be added to the UI first.

Providing an API with extensive and niche features is not a priority; providing one that contains the most important features while being easy to understand and use, is.

Extensions

As a rule of thumb, extensions should be submitted to https://github.com/oobabooga/text-generation-webui-extensions. Exceptions can be made for extensions that do not add any dependencies, or extensions that would be useful to a large percentage of the user base.

Installation methods

There are two main installation methods for this project.

  1. Manual installation as described in the README.
  2. The one-click-installers available at https://github.com/oobabooga/one-click-installers.

Some Docker files are available in the repository, but I do not use Docker. Pull requests about Docker should contain straightforward fixes or updates only.

Clone this wiki locally