Metadata-Version: 2.1
Name: git-llm
Version: 0.1.3
Summary: The project integrates Git with a llm (OpenAI, LlamaCpp, and GPT-4-All) to extend the capabilities of git.
Keywords: chatgpt,openai,cli
Author: Saryev Rustam
Author-email: rsaryev1997@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: fire (>=0.5.0,<0.6.0)
Requires-Dist: gitpython (>=3.1.31,<4.0.0)
Requires-Dist: gpt4all (>=0.2.3,<0.3.0)
Requires-Dist: halo (>=0.0.31,<0.0.32)
Requires-Dist: langchain (>=0.0.184,<0.0.185)
Requires-Dist: openai (>=0.27.7,<0.28.0)
Requires-Dist: questionary (>=1.10.0,<2.0.0)
Requires-Dist: tiktoken (>=0.4.0,<0.5.0)
Requires-Dist: torch (>=2.0.1,<3.0.0)
Requires-Dist: transformers (>=4.29.2,<5.0.0)
Requires-Dist: urllib3 (==1.26.6)
Description-Content-Type: text/markdown

## git-llm

The project integrates Git with a llm (OpenAI, LlamaCpp, and GPT-4-All) to extend the capabilities of git. It supports
offline processing using [GPT4All](https://github.com/nomic-ai/gpt4all) without sharing your code with third parties, or
you can use OpenAI if privacy is not a concern for you. It is only recommended for educational purposes and not for
production use.

### Installation

To install `git-llm`, you need to have Python 3.9 and an OpenAI API
key [api-keys](https://platform.openai.com/account/api-keys). Additionally, if you want to use the GPT4All model, you
need to download the [ggml-gpt4all-j-v1.3-groovy.bin](https://gpt4all.io/models/ggml-gpt4all-j-v1.3-groovy.bin) model.
If you prefer a different model, you can download it from [GPT4All](https://gpt4all.io) and configure path to it in the
configuration and specify its path in the configuration. If you want some files to be ignored, add them to .gitignore.

To install `git-llm`, run the following command in your terminal:

```bash
pip install git-llm
```

### Usage

To use `git-llm`, you need to configure it first. To do this, run the following command:

```bash
git-llm config
```

`changelog` - generates a list of changes from output `git diff --staged`

```bash
git-llm changelog
```

This command reviews the changes staged for commit using `git diff --staged` and writes a commit message following the
Conventional format.

```bash
git-llm commit
```

You can also edit the configuration manually by editing the `~/.git_llm_config.yaml` file. If for some reason you cannot
find the configuration file, just run the tool and at the very beginning it will output the path to the configuration
file.

```yaml
# The OpenAI API key. You can get it from https://beta.openai.com/account/api-keys
api_key: sk-xxx
# maximum size of a chunk of text to be sent to the model
chunk_size: 500
# the maximum tokens
max_tokens: 1048
# model name for the OpenAI API
model_name: gpt-3.5-turbo
# model path for the local model
model_path: models/ggml-gpt4all-j-v1.3-groovy.bin
# model type: openai or local
model_type: openai
```

### Features

More commands will be added in the future.

### Contributing

Contributions are always welcome!
