Metadata-Version: 2.1
Name: gptop
Version: 0.0.7
Summary: Handles communication with GPTs
Home-page: https://github.com/ncrews35/gpt-operator
Author: Nick Crews
Author-email: nickcrews35@gmail.com
Keywords: gptop GPT operator llm ai
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests (>=2.20)
Requires-Dist: scikit-learn (>=1.0.2)
Requires-Dist: tenacity (>=8.0.1)
Requires-Dist: matplotlib
Requires-Dist: plotly
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: pandas (>=1.2.3)
Requires-Dist: pandas-stubs (>=1.1.0.11)
Requires-Dist: openpyxl (>=3.0.7)
Requires-Dist: aiohttp
Requires-Dist: tqdm
Requires-Dist: pyyaml (>=5.4)
Requires-Dist: loguru (>=0.5.0)
Requires-Dist: typing-extensions (>=3.7.4)
Requires-Dist: dnspython (>=2.0.0)
Requires-Dist: python-dateutil (>=2.5.3)
Requires-Dist: urllib3 (>=1.21.1)
Requires-Dist: openai
Requires-Dist: pinecone-client
Provides-Extra: dev
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'

<div align="center">
  <img  src="https://user-images.githubusercontent.com/33267791/233712514-b47aabb4-1821-4f67-8214-33d6fe2d6402.png" alt="GPTOP Logo" />
</div>

# GPT Operator

[![PyPI version](https://badge.fury.io/py/gptop.svg)](https://badge.fury.io/py/gptop)

**Enhance your GPT applications with external operations**

GPT Operator (`gptop`) serves as a [call operator](https://en.wikipedia.org/wiki/Operator_assistance) for your application. Simply provide `gptop` with a prompt, and it will determine the required external operation to fulfill the prompt and, if desired, execute that operation on your behalf.

## Features

* Execute operations based on a given prompt
* Create, update, and remove operations in vector database

## Requirements

* Pinecone Vector Database Index
* OpenAI access to gpt-4

## Installation

Install the released version via pip:

```bash
$ pip install gptop
```

[WARNING] The package is currently in Alpha stage, so please exercise caution before using it in production.

## Repository Setup

If you don’t have Python installed, [download it here](https://www.python.org/downloads/).

1. Clone this repository.

2. Navigate to the project directory:

   ```bash
   $ cd gpt-operator
   ```

3. Create a new virtual environment:

   ```bash
   $ virtualenv virt
   $ source virt/bin/activate
   ```

4. Install the requirements:

   ```bash
   $ pip install -r requirements.txt
   ```

5. Make a copy of the example environment variables file:

   ```bash
   $ cp .env.example .env
   ```

6. Add your [OpenAI API key](https://beta.openai.com/account/api-keys) to the newly created `.env` file.

7. Add your [Pinecone API key and Region](https://docs.pinecone.io/docs/quickstart) to the newly created `.env` file.

## CLI

1. Run the application:

    ```bash
    $ ./run.sh
    ```

To set up an operation on your machine, please see the [example](https://github.com/ncrews35/gpt-operator/tree/mainline/example).

## Contributing

We are actively looking for new contributors to help improve and expand the GPT Operator repository. All contributions are welcome! Please feel free to reach out for more information on how you can contribute.
