Skip to content

docs: PandoraNext guide #1276

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Dec 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ BINGAI_TOKEN=user_provided
#============#

CHATGPT_TOKEN=
CHATGPT_MODELS=text-davinci-002-render-sha,gpt-4
CHATGPT_MODELS=text-davinci-002-render-sha
# CHATGPT_REVERSE_PROXY=<YOUR REVERSE PROXY>

#============#
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,13 @@ Keep up with the latest updates by visiting the releases page - [Releases](https


* [Automated Moderation](docs/features/mod_system.md)
* [Token Usage](docs/features/token_usage.md)
* [Manage Your Database](docs/features/manage_your_database.md)
* [PandoraNext Deployment Guide](docs/features/pandoranext.md)
* [Third-Party Tools](docs/features/third_party.md)
* [Proxy](docs/features/proxy.md)
* [Bing Jailbreak](docs/features/bing_jailbreak.md)
* [Token Usage](docs/features/token_usage.md)
* [Manage Your Database](docs/features/manage_your_database.md)

</details>

<details>
Expand Down
158 changes: 158 additions & 0 deletions docs/features/pandoranext.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# PandoraNext Deployment Guide

If you're looking to use the `ChatGPT` Endpoint in LibreChat, setting up a reverse proxy is a essential. PandoraNext offers a robust solution for this purpose. This guide will walk you through deploying PandoraNext to enable the `CHATGPT_REVERSE_PROXY` for use with LibreChat.

> Using this method you will only be able to use `text-davinci-002-render-sha` with PandoraNext in LibreChat. Other models offer with the `plus` subscription do not work.

You can use it locally in docker or deploy it onthe web for remote access.

## Deploy Online by Duplicating Hugging Face Space

To deploy PandoraNext online by duplicating the Hugging Face Space, follow these steps:

1. Get your PandoraNext license id here: [PandoraNext Dashboard](https://dash.pandoranext.com/)

2. **Configure `config.json`:**
Edit the following `config.json`. Specify your `license_id` and `proxy_api_prefix`. For the `proxy_api_prefix`, use at least 8 characters, avoid characters that can't be used in a URL and make sure it's unique.

Here's the `config.json` for your reference:

```json
{
"bind": "0.0.0.0:8181",
"tls": {
"enabled": false,
"cert_file": "",
"key_file": ""
},
"timeout": 600,
"proxy_url": "",
"license_id": "",
"public_share": false,
"site_password": "",
"setup_password": "",
"server_tokens": true,
"proxy_api_prefix": "",
"isolated_conv_title": "*",
"captcha": {
"provider": "",
"site_key": "",
"site_secret": "",
"site_login": false,
"setup_login": false,
"oai_username": false,
"oai_password": false
},
"whitelist": null
}
```

3. **Hugging Face Space:**
Visit the [PandoraNext LibreChat Space](https://huggingface.co/spaces/LibreChat/PandoraNext) on Hugging Face.

4. **Duplicate the Space:**
Utilize the available options to duplicate or fork the space into your own Hugging Face account.

5. **Fill the required secrets**
When asked for the `SECRETS`,
- for `CONFIG_JSON` use the whole content of the `config.json` you just modified,
- for `TOKENS_JSON` use the following default `token.json`:
```json
{
"test-1": {
"token": "access token / session token / refresh token",
"shared": true,
"show_user_info": false
},
"test-2": {
"token": "access token / session token / refresh token",
"shared": true,
"show_user_info": true,
"plus": true
},
"test2": {
"token": "access token / session token / refresh token / share token",
"password": "12345"
}
}
```
6. **Configure LibreChat:**
In the .env file (or secrets settings if you host LibreChat on Hugging Face), set the `CHATGPT_REVERSE_PROXY` variable using the following format:

```bash
CHATGPT_REVERSE_PROXY=http://your_server_domain.com/your_proxy_api_prefix_here/backend-api/conversation
```

- Replace `your_server_domain.com` with the domain of your deployed space.
- you can use this format: `https://username-pandoranext.hf.space` (replace `username` with your Huggingface username)
- Replace `your_proxy_api_prefix_here` with the `proxy_api_prefix` you have set in your `config.json`.
- The resulting URL should look similar to:
`https://username-pandoranext.hf.space/your_proxy_api_prefix_here/backend-api/conversation`

## Deploy Locally Using Docker

For local deployment using Docker, the steps are as follows:

1. **Clone or Download the Repository:**
Get the latest release from the [PandoraNext GitHub repository](https://github.com/pandora-next/deploy).

```bash
git clone https://github.com/pandora-next/deploy.git
```

2. Get your PandoraNext license id here: [PandoraNext Dashboard](https://dash.pandoranext.com/)

3. **Configure `config.json`:**
Within the cloned repository, in the `data` folder, edit `config.json`. Specify your `license_id` and `proxy_api_prefix`. For the `proxy_api_prefix`, use at least 8 characters, avoid characters that can't be used in a URL and make sure it's unique.

Here's the `config.json` for your reference:

```json
{
"bind": "0.0.0.0:8181",
"tls": {
"enabled": false,
"cert_file": "",
"key_file": ""
},
"timeout": 600,
"proxy_url": "",
"license_id": "",
"public_share": false,
"site_password": "",
"setup_password": "",
"server_tokens": true,
"proxy_api_prefix": "",
"isolated_conv_title": "*",
"captcha": {
"provider": "",
"site_key": "",
"site_secret": "",
"site_login": false,
"setup_login": false,
"oai_username": false,
"oai_password": false
},
"whitelist": null
}
```

4. **Set Up the LibreChat `.env` Filer:**
In the `.env` file within your LibreChat directory, you'll need to set the `CHATGPT_REVERSE_PROXY` variable:

```bash
CHATGPT_REVERSE_PROXY=http://host.docker.internal:8181/your_proxy_api_prefix_here/backend-api/conversation
```
- Replace `your_proxy_api_prefix_here` with the actual proxy API prefix.

4. **Start Docker Containers:**
From the PandoraNext directory, run the following command to launch the Docker containers:

```bash
docker-compose up -d
```

## Final Notes

- The `proxy_api_prefix` should be sufficiently random and unique to prevent errors.
- Ensure you have obtained a license ID from the [PandoraNext Dashboard](https://dash.pandoranext.com/).
5 changes: 4 additions & 1 deletion docs/install/apis_and_tokens.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ To get your OpenAI API key, you need to:

## ChatGPT Free Access token

To get your Access token for ChatGPT 'Free Version', you need to:
> Note that this is disabled by default and requires additional configuration to work.
> See: [ChatGPT Reverse Proxy](../features/pandoranext.md)

To get your Access token for ChatGPT 'Web Version', you need to:

- Go to [https://chat.openai.com](https://chat.openai.com)
- Create an account or log in with your existing one
Expand Down
9 changes: 5 additions & 4 deletions docs/install/dotenv.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,21 +148,22 @@ BINGAI_HOST=
### ChatGPT
see: [ChatGPT Free Access token](./apis_and_tokens.md#chatgpt-free-access-token)

> **Warning**: The default reverse proxy (based on [PandoraNext](https://github.com/pandora-next/deploy)) needs to be updated and is not working anymore. To use this endpoint you'll have to set up your own.
> For more information: [https://github.com/waylaidwanderer/node-chatgpt-api#using-a-reverse-proxy](https://github.com/waylaidwanderer/node-chatgpt-api#using-a-reverse-proxy)
> **Warning**: To use this endpoint you'll have to set up your own reverse proxy. Here is the installation guide to deploy your own (based on [PandoraNext](https://github.com/pandora-next/deploy)): **[PandoraNext Deployment Guide](../features/pandoranext.md)**

```bash
CHATGPT_REVERSE_PROXY=<YOUR-REVERSE-PROXY>
```

> Note: If you're a GPT plus user you can add gpt-4-plugins, gpt-4-code-interpreter, and gpt-4-browsing to the list above and use the models for these features; however, the view/display portion of these features are not supported, but you can use the underlying models, which have higher token context
> ~~Note: If you're a GPT plus user you can add gpt-4, gpt-4-plugins, gpt-4-code-interpreter, and gpt-4-browsing to the list above and use the models for these features; however, the view/display portion of these features are not supported, but you can use the underlying models, which have higher token context~~
> **Note:** The current method only works with `text-davinci-002-render-sha`

- Leave `CHATGPT_TOKEN=` blank to disable this endpoint
- Set `CHATGPT_TOKEN=` to "user_provided" to allow users to provide their own API key from the WebUI
- It is not recommended to provide your token in the `.env` file since it expires often and sharing it could get you banned.

```bash
CHATGPT_TOKEN=
CHATGPT_MODELS=text-davinci-002-render-sha,gpt-4
CHATGPT_MODELS=text-davinci-002-render-sha
```

### OpenAI
Expand Down
3 changes: 2 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,9 @@ nav:
- Make Your Own Plugin: 'features/plugins/make_your_own.md'
- Using official ChatGPT Plugins: 'features/plugins/chatgpt_plugins_openapi.md'
- Automated Moderation: 'features/mod_system.md'
- Manage Your Database: 'features/manage_your_database.md'
- Token Usage: 'features/token_usage.md'
- Manage Your Database: 'features/manage_your_database.md'
- PandoraNext Deployment Guide: 'features/pandoranext.md'
- Third-Party Tools: 'features/third_party.md'
- Proxy: 'features/proxy.md'
- Bing Jailbreak: 'features/bing_jailbreak.md'
Expand Down