Metadata-Version: 2.1
Name: talk-codebase
Version: 0.1.46
Summary: talk-codebase is a powerful tool for querying and analyzing codebases.
Keywords: chatgpt,openai,cli
Author: Saryev Rustam
Author-email: rustam1997@gmail.com
Requires-Python: >=3.8.1,<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: faiss-cpu (>=1.7.4,<2.0.0)
Requires-Dist: fire (>=0.5.0,<0.6.0)
Requires-Dist: gitpython (>=3.1.31,<4.0.0)
Requires-Dist: gpt4all (>=1.0.1,<2.0.0)
Requires-Dist: halo (>=0.0.31,<0.0.32)
Requires-Dist: langchain (>=0.0.223,<0.0.237)
Requires-Dist: llama-cpp-python (==0.1.68)
Requires-Dist: openai (>=0.27.7,<0.28.0)
Requires-Dist: questionary (>=1.10.0,<2.0.0)
Requires-Dist: sentence-transformers (>=2.2.2,<3.0.0)
Requires-Dist: tiktoken (>=0.4.0,<0.5.0)
Requires-Dist: unstructured (>=0.6.10,<0.7.0)
Requires-Dist: urllib3 (==1.26.6)
Description-Content-Type: text/markdown

# talk-codebase

[![Node.js Package](https://github.com/rsaryev/talk-codebase/actions/workflows/python-publish.yml/badge.svg)](https://github.com/rsaryev/talk-codebase/actions/workflows/python-publish.yml)

Talk-codebase is a tool that allows you to converse with your codebase using Large Language Models (LLMs) to answer your
queries. It supports offline code processing using LlamaCpp and [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. Please note that
talk-codebase is still under development and is recommended for educational purposes, not for production use.

<p align="center">
  <img src="https://github.com/rsaryev/talk-codebase/assets/70219513/b5d338f9-14a5-417b-9690-83f5cd66facf" width="800" alt="chat">
</p>

## Installation

Requirement Python 3.8.1 or higher

```bash
pip install talk-codebase
```

After installation, you can use it to chat with your codebase in the current directory by running the following command:

```bash
talk-codebase chat <path>
```

Select model type: Local or OpenAI

<img width="300" alt="select_type" src="https://github.com/rsaryev/talk-codebase/assets/70219513/05196fe5-78ff-44ff-8ca3-0313ccef572a">

OpenAI

If you use the OpenAI model, you need an OpenAI API key. You can get it from [here](https://beta.openai.com/). Then you
will be offered a choice of available models.

<img width="300" alt="select" src="https://github.com/rsaryev/talk-codebase/assets/70219513/889ad7c8-a489-4ce8-83af-148b7df09229">


Local

<img width="696" alt="Снимок экрана 2023-07-12 в 03 47 58" src="https://github.com/rsaryev/talk-codebase/assets/70219513/16988911-c605-4570-bfb4-4a34a03cd4a1">

If you want some files to be ignored, add them to .gitignore.

## Reset configuration

To reset the configuration, run the following command:

```bash
talk-codebase configure
```

## Advanced configuration

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

## Supported Extensions

- [x] `.csv`
- [x] `.doc`
- [x] `.docx`
- [x] `.epub`
- [x] `.md`
- [x] `.pdf`
- [x] `.txt`
- [x] `popular programming languages`

## Contributing

* If you find a bug in talk-codebase, please report it on the project's issue tracker. When reporting a bug, please
  include as much information as possible, such as the steps to reproduce the bug, the expected behavior, and the actual
  behavior.
* If you have an idea for a new feature for Talk-codebase, please open an issue on the project's issue tracker. When
  suggesting a feature, please include a brief description of the feature, as well as any rationale for why the feature
  would be useful.
* You can contribute to talk-codebase by writing code. The project is always looking for help with improving the
  codebase, adding new features, and fixing bugs.

