From 71b7eaa3f57a45707a0877b97977de1a849caadf Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Wed, 22 Mar 2023 20:09:52 -0400 Subject: [PATCH] chore: update env example and add browser client config --- api/.env.example | 24 ++++++++++++++++++++---- api/app/clients/chatgpt-browser.js | 7 +++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/api/.env.example b/api/.env.example index c1ca58128..00b229e4a 100644 --- a/api/.env.example +++ b/api/.env.example @@ -18,17 +18,33 @@ MONGO_URI="mongodb://127.0.0.1:27017/chatgpt-clone" # API key configuration. # Leave blank if you don't want them. OPENAI_KEY= -CHATGPT_TOKEN= BING_TOKEN= +# ChatGPT Browser Client (free but use at your own risk) +# Access token from https://chat.openai.com/api/auth/session +# Exposes your access token to a 3rd party +CHATGPT_TOKEN= +# If you have access to other models on the official site, you can use them here. +# Defaults to 'text-davinci-002-render-sha' if left empty. +# options: gpt-4, text-davinci-002-render, text-davinci-002-render-paid, or text-davinci-002-render-sha +# You cannot use a model that your account does not have access to. You can check +# which ones you have access to by opening DevTools and going to the Network tab. +# Refresh the page and look at the response body for https://chat.openai.com/backend-api/models. +BROWSER_MODEL= + # Enable Message/Convo Search -# Requires installation of self-hosted Meilisearch or Paid Remote Plan -# this is taken care of you if you use the docker-compose file. +# Requires installation of free self-hosted Meilisearch or Paid Remote Plan (Remote not tested) +# The easiest setup for this is through docker-compose, which takes care of it for you. # SEARCH=TRUE SEARCH= +# REQUIRED FOR SEARCH: MeiliSearch Host, mainly for api server to connect to the search server. MEILI_HOST='http://0.0.0.0:7700' +# REQUIRED FOR SEARCH: MeiliSearch HTTP Address, mainly for docker-compose to expose the search server. MEILI_HTTP_ADDR='0.0.0.0:7700' -# needs a secure key, feel free to generate your own. +# REQUIRED FOR SEARCH: needs a secure key, feel free to generate your own. +# This master key must be at least 16 bytes, composed of valid UTF-8 characters. +# Meilisearch will throw an error and refuse to launch if no master key is provided or if it is under 16 bytes, +# Meilisearch will suggest a secure autogenerated master key. MEILI_MASTER_KEY=WjRvKvpelIYHa4dlcDGsdT9c0CKRbY-4VcuCQ1iZPcc # User System diff --git a/api/app/clients/chatgpt-browser.js b/api/app/clients/chatgpt-browser.js index 7776083b6..01de94cd6 100644 --- a/api/app/clients/chatgpt-browser.js +++ b/api/app/clients/chatgpt-browser.js @@ -1,5 +1,6 @@ require('dotenv').config(); const { KeyvFile } = require('keyv-file'); +const set = new Set(["gpt-4", "text-davinci-002-render", "text-davinci-002-render-paid", "text-davinci-002-render-sha"]); const clientOptions = { // Warning: This will expose your access token to a third party. Consider the risks before using this. @@ -10,6 +11,12 @@ const clientOptions = { proxy: process.env.PROXY || null, }; +// You can check which models you have access to by opening DevTools and going to the Network tab. +// Refresh the page and look at the response body for https://chat.openai.com/backend-api/models. +if (set.has(process.env.BROWSER_MODEL)) { + clientOptions.model = process.env.BROWSER_MODEL; +} + const browserClient = async ({ text, onProgress, convo, abortController }) => { const { ChatGPTBrowserClient } = await import('@waylaidwanderer/chatgpt-api');