<p align="center">
  <a href="https://github.com/nilbasora/GPTDriver"><img src="https://github.com/nilbasora/GPTDriver/assets/32940624/4c97f7da-f44a-401e-bdc0-1a36ab400834" alt="GPTDriver"></a>
</p>
<p align="center">
    <em>Take control of ChatGPT effortlessly with GPTDriver: Simplified interaction, no API key required.</em>
</p>
<p align="center">
<a href="https://github.com/nilbasora/GPTDriver/actions?query=workflow%3ATest+event%3Apush+branch%3Amaster" target="_blank">
    <img src="https://github.com/nilbasora/GPTDriver/workflows/Test/badge.svg?event=push&branch=master" alt="Test">
</a>
<a href="https://coverage-badge.samuelcolvin.workers.dev/redirect/nilbasora/GPTDriver" target="_blank">
    <img src="https://coverage-badge.samuelcolvin.workers.dev/nilbasora/GPTDriver.svg" alt="Coverage">
</a>
<a href="https://pypi.org/project/GPTDriver" target="_blank">
    <img src="https://img.shields.io/pypi/v/GPTDriver?color=%2334D058&label=pypi%20package" alt="Package version">
</a>
</p>

<div style="display: flex; justify-content: center;">
  <p align="center">
    <img src="https://img.shields.io/github/downloads/ShaanCoding/ReadME-Generator/total" alt="Downloads">
    <img src="https://img.shields.io/github/contributors/ShaanCoding/ReadME-Generator?color=dark-green" alt="Contributors">
    <img src="https://img.shields.io/github/issues/ShaanCoding/ReadME-Generator" alt="Issues">
  </p>
</div>

---

**Documentation**: Coming Soon!

**Source Code**: <a href="https://github.com/nilbasora/GPTDriver" target="_blank">https://github.com/nilbasora/GPTDriver</a>

---

## About The Project

GPTDriver is a Python library developed to simplify the process of interacting with OpenAI's ChatGPT model. With GPTDriver, you can control ChatGPT through command lines, allowing for easy integration and seamless communication with the language model.

ChatGPT, powered by OpenAI, is a state-of-the-art language model capable of generating human-like text based on prompts provided to it. However, interacting with the ChatGPT user interface manually can be cumbersome and time-consuming. GPTDriver aims to streamline this process by leveraging Selenium, a web automation framework, to emulate human navigation through the ChatGPT website.

Rather than relying on the OpenAI API key for direct access to ChatGPT, GPTDriver automates the browser interactions required to communicate with the model. This approach provides a more convenient way to interact with ChatGPT and eliminates the need for handling HTTP requests or managing API keys.

By using Selenium, GPTDriver mimics human behavior while navigating the ChatGPT website. It can log in to your OpenAI account, create new chat sessions, send prompts, and retrieve responses, all through command lines. This approach provides a natural and intuitive way to control ChatGPT and integrate it into your Python projects.

Key features of GPTDriver include:

* Simple command line interface for controlling ChatGPT.
* Emulation of human navigation through the ChatGPT website using Selenium.
* Automated login process for OpenAI account authentication.
* Ability to create new chats and maintain multiple chat sessions.
* Seamless sending of prompts to ChatGPT and retrieving responses.
* ~~Support for customization, including chat history and system messages.~~

GPTDriver aims to empower developers and researchers by providing a user-friendly and efficient way to leverage the capabilities of ChatGPT. With GPTDriver, you can harness the power of ChatGPT's natural language processing by emulating human interactions with the ChatGPT user interface.

## Getting Started

This is an example of how you may give instructions on setting up your project locally.
To get a local copy up and running follow these simple example steps.

### Requirements

Python 3.6+

ChatGPT account (free or plus)

Chromedriver (+Chrome)

### Installation

<div class="termy">

```console
$ pip install GPTDriver

---> 100%
```

</div>

## Usage

Coming Soon!

## Roadmap

See the [open issues](https://github.com/nilbasora/GPTDriver/issues) for a list of proposed features (and known issues).

- [x] Create the basic structure to post/get prompts
- [ ] Models selector
  - [x] GPT 3.5
  - [ ] GPT 4
  - [ ] GPT 4 with browser
- [ ] Authentification methods
  - [x] Email
  - [x] Google
  - [ ] Microsoft
  - [ ] Apple
- [ ] Follow old conversations
- [x] Automatic "plus" user detection
- [ ] Add Tests

## Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.

- If you have suggestions for adding or removing projects, feel free to [open an issue](https://github.com/nilbasora/GPTDriver/issues/new) to discuss it, or directly create a pull request after you edit the _README.md_ file with necessary changes.
- Please make sure you check your spelling and grammar.
- Create individual PR for each suggestion.
- Please also read through the [Code Of Conduct](https://github.com/nilbasora/GPTDriver/CODE_OF_CONDUCT.md) before posting your first idea as well.

### Creating A Pull Request

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## License

Distributed under the MIT License. See [LICENSE](https://github.com/nilbasora/GPTDriver/LICENSE) for more information.

## Authors

- **[Nil Basora](https://github.com/nilbasora/)** - _Data Scientist_

## Contributors
