Metadata-Version: 2.1
Name: genius-chatbot
Version: 0.9.0
Summary: Use huggingface models to create an intelligent and scalable chatbot
Home-page: https://github.com/Knuckles-Team/genius-chatbot
Author: Audel Rouhi
Author-email: knucklessg1@gmail.com
License: Unlicense
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: Public Domain
Classifier: Environment :: Console
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyMuPDF (>=1.22.3)
Requires-Dist: appengine-python-standard (>=1.1.2)
Requires-Dist: chromadb (==0.3.23)
Requires-Dist: extract-msg (>=0.41.1)
Requires-Dist: gpt4all (>=1.0.5)
Requires-Dist: langchain (>=0.0.238)
Requires-Dist: llama-cpp-python (>=0.1.50)
Requires-Dist: pandoc (>=2.3)
Requires-Dist: psutil (>=5.9.5)
Requires-Dist: pypandoc (>=1.11)
Requires-Dist: python-dotenv (>=1.0.0)
Requires-Dist: sentence-transformers (>=2.2.2)
Requires-Dist: tabulate (>=0.9.0)
Requires-Dist: tqdm (>=4.65.0)
Requires-Dist: unstructured (>=0.6.6)
Requires-Dist: urllib3 (>=1.26.2)

# Genius Chatbot
*Version: 0.9.0*

Chatbot that uses any desired hugging face model or allows for scalable 
intelligence based on hardware limitations

### Usage:

| Short Flag | Long Flag          | Description                                                                  |
|------------|--------------------|------------------------------------------------------------------------------|
| -h         | --help             | See Usage                                                                    |
| -a         | --assimilate       | Assimilate knowledge from media provided in directory                        |
| -b         | --batch-token      | Number of tokens per batch                                                   |
| -c         | --chunks           | Number of chunks to use                                                      |
| -d         | --directory        | Directory for chromadb and model storage                                     |
| -e         | --embeddings-model | [Embeddings model](https://www.sbert.net/docs/pretrained_models.html) to use |
| -j         | --json             | Export to JSON                                                               |
| -p         | --prompt           | Prompt for chatbot                                                           |
| -q         | --mute-stream      | Mute stream of generation                                                    |
| -m         | --model            | Model to use from Huggingface                                                |
| -p         | --prompt           | Prompt for chatbot                                                           |
| -s         | --hide-source      | Hide source of answer                                                        |
| -t         | --max-token-limit  | Maximum token to generate                                                    |
| -x         | --model-engine     | GPT4All or LlamaCPP                                                          |

### Example:
```bash
genius-chatbot --assimilate "/directory/of/documents"
```

```bash
genius-chatbot --prompt "What is the 10th digit of Pi?"
```

```bash
genius-chatbot  \
    --model "wizardlm-13b-v1.1-superhot-8k.ggmlv3.q4_0.bin" \
    --prompt "Chatbots are cool because they" \
    --model-engine "GPT4All" \
    --assimilate "/directory/of/documents" \
    --json
```

#### Install Instructions
Install Python Package

```bash
python -m pip install genius-chatbot
```

#### Build Instructions
Build Python Package

```bash
sudo chmod +x ./*.py
sudo pip install .
python3 setup.py bdist_wheel --universal
# Test Pypi
twine upload --repository-url https://test.pypi.org/legacy/ dist/* --verbose -u "Username" -p "Password"
# Prod Pypi
twine upload dist/* --verbose -u "Username" -p "Password"
```


