|
--- |
|
title: CSRD GPT |
|
emoji: ๐ฟ |
|
colorFrom: blue |
|
colorTo: green |
|
sdk: gradio |
|
python_version: 3.10.0 |
|
sdk_version: 3.22.1 |
|
app_file: app.py |
|
pinned: true |
|
--- |
|
|
|
--- |
|
title: CSRD GPT |
|
emoji: ๐ |
|
colorFrom: red |
|
colorTo: green |
|
sdk: gradio |
|
sdk_version: 4.13.0 |
|
app_file: app.py |
|
pinned: false |
|
--- |
|
|
|
## Introduction |
|
|
|
Python Version used is: 3.10.0 |
|
|
|
## Built With |
|
|
|
- [Gradio](https://www.gradio.app/docs/interface) - Main server and interactive components |
|
- [OpenAI API](https://platform.openai.com/docs/api-reference) - Main LLM engine used in the app |
|
- [HuggingFace Sentence Transformers](https://huggingface.co/docs/hub/sentence-transformers) - Used as the default embedding model |
|
|
|
## Requirements |
|
|
|
> **_NOTE:_** Before installing the requirements, rename the file `.env.example` to `.env` and put your OpenAI API key there ! |
|
|
|
We suggest you to create a separate virtual environment running Python 3 for this app, and install all of the required dependencies there. Run in Terminal/Command Prompt: |
|
|
|
```bash |
|
git clone https://github.com/Nexialog/RegGPT.git |
|
cd RegGPT/ |
|
python -m venv env |
|
``` |
|
|
|
In UNIX system: |
|
|
|
```bash |
|
source venv/bin/activate |
|
``` |
|
|
|
In Windows: |
|
|
|
```bash |
|
venv\Scripts\activate |
|
``` |
|
|
|
To install all of the required packages to this environment, simply run: |
|
|
|
```bash |
|
pip install -r requirements.txt |
|
``` |
|
|
|
and all of the required `pip` packages will be installed, and the app will be able to run. |
|
|
|
## Usage of run_script.py |
|
|
|
This script is used for processing PDF documents and generating text embeddings. You can specify different modes and parameters via command-line arguments. |
|
|
|
### Process Documents |
|
To process PDF documents and extract paragraphs and metadata, use the following command: |
|
|
|
```bash |
|
python run_script.py --type process_documents |
|
``` |
|
|
|
You can also use optional arguments to specify the folder containing PDFs, the output data folder, minimum paragraph length, and merge length. |
|
|
|
### Generate Embeddings |
|
To generate text embeddings from the processed paragraphs, use the following command: |
|
|
|
```bash |
|
python run_script.py --type generate_embeddings |
|
``` |
|
|
|
This command will use the default embedding model, but you can specify another model using the `--embedding_model` argument. |
|
|
|
### Process Documents and Generate Embeddings |
|
To perform both document processing and embedding generation, use: |
|
|
|
```bash |
|
python run_script.py --type all |
|
``` |
|
|
|
### Command Line Arguments |
|
|
|
- `--type`: Specifies the operation type. Choices are `all`, `process_documents`, or `generate_embeddings`. (required) |
|
- `--pdf_folder`: Path to the folder containing PDF documents. Default is `pdf_data/`. (optional) |
|
- `--data_folder`: Path to the folder where processed data and embeddings will be saved. Default is `data/`. (optional) |
|
- `--embedding_model`: Specifies the model to be used for generating embeddings. Default is `sentence-transformers/multi-qa-mpnet-base-dot-v1`. (optional) |
|
- `--device`: Specifies the device to be used (CPU or GPU). Choices are `cpu` or `cuda`. Default is `cpu`. (optional) |
|
- `--min_length`: Specifies the minimum paragraph length for inclusion. Default is `300`. (optional) |
|
- `--merge_length`: Specifies the merge length for paragraphs. Default is `700`. (optional) |
|
|
|
### Examples |
|
|
|
```bash |
|
python run_script.py --type process_documents --pdf_folder my_pdf_folder/ --merge_length 800 |
|
``` |
|
|
|
```bash |
|
python run_script.py --type generate_embeddings --device cuda |
|
``` |
|
|
|
### How to use Colab's GPU |
|
|
|
1. Create your own [deploying key from github](https://github.com/Nexialog/RegGPT/settings/keys) |
|
2. Upload the key to Google Drive on the path : `drive/MyDrive/ssh_key_github/` |
|
3. Upload the notebook `notebooks/generate_embeddings.ipynb` into a colab session (or use this [link](https://colab.research.google.com/drive/1E7uHJF7gH_36O9ylIgWhiAjHpRJRyvnv?usp=sharing)) |
|
4. Upload the pdf files on the same colab session on the path : `pdf_data/` |
|
5. Run the notebook on GPU mode and download the folder `data/` containing embeddings and chnukns |
|
|
|
## How to Configure a New BOT |
|
|
|
1. Put all pdf files in a folder at the same repository (We recommend using the folder name : 'pdf_data') |
|
2. Run the python sciprt 'run_script.py' as explained above. 3-Configure the BOT in config by following the steps bellow: |
|
|
|
In order to configure the chatbot, you need to modify the config.py file that contains the CFG_APP class. Here's what each attribute in the class means: |
|
|
|
### Basic Settings |
|
|
|
- `DEBUG`: Debugging mode |
|
- `K_TOTAL`: The total number of retrieved docs |
|
- `THRESHOLD`: Threshold of retrieval by embeddings |
|
- `DEVICE`: Device for computation |
|
- `BOT_NAME`: The name of the bot |
|
- `MODEL_NAME`: The name of the model |
|
|
|
### Language and Data |
|
|
|
- `DEFAULT_LANGUAGE`: Default language |
|
- `DATA_FOLDER`: Path to the data folder |
|
- `EMBEDDING_MODEL`: Embedding model |
|
|
|
### Tokens and Prompts |
|
|
|
- `MAX_TOKENS_REF_QUESTION`: Maximum tokens in the reformulated question |
|
- `MAX_TOKENS_ANSWER`: Maximum tokens in answers |
|
- `INIT_PROMPT`: Initial prompt |
|
- `SOURCES_PROMPT`: Sources prompt for responses |
|
|
|
### Default Questions |
|
|
|
- `DEFAULT_QUESTIONS`: Tuple of default questions |
|
|
|
### Reformulation Prompt |
|
|
|
- `REFORMULATION_PROMPT`: Prompt for reformulating questions |
|
|
|
### Metadata Path |
|
|
|
- `DOC_METADATA_PATH`: Path to document metadata |
|
|
|
## How to Use This BOT |
|
|
|
Run this app locally by: |
|
|
|
```bash |
|
python app.py |
|
``` |
|
|
|
Open [http://127.0.0.1:7860](http://127.0.0.1:7860) in your browser, and you will see the bot. |