Metadata-Version: 2.1
Name: openbb-chat
Version: 0.0.11
Summary: Deep learning package to add chat capabilities to OpenBB
Project-URL: Homepage, https://github.com/GPTStonks/openbb-chat
Project-URL: Bug Tracker, https://github.com/GPTStonks/openbb-chat/issues
Author-email: GPTStonks <gptstonks@gmail.com>
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: <3.12,>=3.10
Requires-Dist: accelerate>=0.22.0
Requires-Dist: auto-gptq>=0.4.2
Requires-Dist: bitsandbytes>=0.41.1
Requires-Dist: einops>=0.6.1
Requires-Dist: guidance>=0.0.64
Requires-Dist: langchain>=0.0.353
Requires-Dist: llama-index-embeddings-huggingface>=0.1.3
Requires-Dist: llama-index-llms-huggingface>=0.1.3
Requires-Dist: llama-index-llms-openai>=0.1.6
Requires-Dist: llama-index-retrievers-bm25>=0.1.3
Requires-Dist: llama-index>=0.10.13
Requires-Dist: optimum>=1.12.0
Requires-Dist: peft>=0.5.0
Requires-Dist: pre-commit>=3.3.3
Requires-Dist: pyrootutils>=1.0.4
Requires-Dist: rank-bm25>=0.2.2
Requires-Dist: rich<13.0.0,>=12.6.0
Requires-Dist: sentencepiece>=0.1.99
Requires-Dist: torch==2.*
Requires-Dist: transformers>=4.33.0
Provides-Extra: dev
Requires-Dist: hydra-colorlog==1.*; extra == 'dev'
Requires-Dist: hydra-core==1.*; extra == 'dev'
Requires-Dist: hydra-optuna-sweeper==1.*; extra == 'dev'
Requires-Dist: ipykernel>=6.29.3; extra == 'dev'
Requires-Dist: lightning>=2.0.0; extra == 'dev'
Requires-Dist: torchmetrics>=0.11.4; extra == 'dev'
Requires-Dist: wandb>=0.15.5; extra == 'dev'
Provides-Extra: tests
Requires-Dist: duckduckgo-search>=4.5.0; extra == 'tests'
Requires-Dist: pytest-asyncio>=0.23.5; extra == 'tests'
Requires-Dist: pytest-cov[toml]>=4.1.0; extra == 'tests'
Requires-Dist: pytest>=8.0.2; extra == 'tests'
Requires-Dist: sentence-transformers>=2.2.2; extra == 'tests'
Requires-Dist: torchvision>=0.17.1; extra == 'tests'
Requires-Dist: wikipedia>=1.4.0; extra == 'tests'
Description-Content-Type: text/markdown

<div align="center">

# OpenBB Chat

<p align="center">
  <!-- X Badge -->
  <a href="https://twitter.com/GPTStonks"><img src="https://img.shields.io/badge/follow_us-000000?logo=x&logoColor=white" alt="X Follow Us Badge"></a>
  <!-- Discord Badge -->
  <a href="https://discord.gg/MyDDGuEd"><img src="https://img.shields.io/badge/Discord-5865F2?logo=discord&logoColor=white" alt="Discord Badge"></a>
  <!-- Docker Badge -->
  <a href="https://hub.docker.com/u/gptstonks">
    <img src="https://img.shields.io/badge/Docker-2496ED?logo=docker&logoColor=white" alt="Docker Badge">
  </a>
</p>
<p align="center">
    <a href="https://pytorch.org/get-started/locally/"><img alt="PyTorch" src="https://img.shields.io/badge/PyTorch-ee4c2c?logo=pytorch&logoColor=white"></a>
    <a href="https://pytorchlightning.ai/"><img alt="Lightning" src="https://img.shields.io/badge/-Lightning-792ee5?logo=pytorchlightning&logoColor=white"></a>
    <a href="https://hydra.cc/"><img alt="Config: Hydra" src="https://img.shields.io/badge/Config-Hydra-89b8cd"></a>
    <a href="https://huggingface.co/"><img alt="Models: HuggingFace" src="https://img.shields.io/badge/Models-HuggingFace-ffd21e"></a>
</p>

</div>

## Description

OpenBB Chat provides chat capabilities to [OpenBB](https://github.com/OpenBB-finance/OpenBBTerminal) by leveraging the generative potential of LLMs. The chat is implemented following [InstructGPT](https://openai.com/research/instruction-following). This repository contains the implementations of the NLP models and the training/inference infraestructure.

## Installation

#### PDM

```bash
# clone project
git clone https://github.com/Dedalo314/openbb-chat
cd openbb-chat

# install pdm
pip install pdm

# install package
pdm install
```

## How to run

Train model with default configuration

```bash
# train demo on CPU
python openbb_chat/train.py trainer=cpu

# train demo on GPU
python openbb_chat/train.py trainer=gpu
```

Train model with chosen experiment configuration from [configs/experiment/](configs/experiment/)

```bash
python openbb_chat/train.py experiment=experiment_name.yaml
```

You can override any parameter from command line like this

```bash
python openbb_chat/train.py trainer.max_epochs=20 data.batch_size=64
```

## Released models

The model [Griffin-3B-GPTQ](https://huggingface.co/daedalus314/Griffin-3B-GPTQ) has been created as part of this project by quantizing [Griffin-3B](https://huggingface.co/acrastt/Griffin-3B). In the future, more models will be trained and released as needed.

## Sample usage with pre-trained models

In the repository https://github.com/GPTStonks/api `openbb-chat` is used to perform [retrieval-augmented generation](https://arxiv.org/abs/2005.11401) (RAG) with OpenBB's official documentation and pre-trained models. In particular, the `classifiers` modules are used to find the appropriate function in OpenBB and the `llms` modules are used to complete the function call.

## License

The Dockerfile is based on the image `nvidia/cuda`, which states that the following notice must be included: *This software contains source code provided by NVIDIA Corporation.*
