Skip to content

TheBoatyMcBoatFace/chatbot-ui

 
 

Repository files navigation

Chatbot UI

Chatbot UI is an open source chat UI for AI models.

Discord Banner

Chatbot UI

See a demo.

Updates

Work Completed:

Up Next:

  • In-app plugin system
  • @chatbot-ui/couchdb extension
  • @chatbot-ui/mongodb extension

Deploy

Vercel

Host your own live version of Chatbot UI with Vercel.

Deploy with Vercel

Usage

Step 1. Clone Repo

git clone https://github.com/jorge-menjivar/chatbot-ui.git

Step 2. Install Dependencies

npm i

Step 3. Add extensions

Enable extensions by following the instructions in the README files of the extensions you want to use:

Step 4. Run App

Run Locally:

npm run dev

Or run with Docker:

docker build -t chatbot-ui . --rm
docker run --env-file=.env.local -p 3000:3000 --name chatbot chatbot-ui

(Optional) Step 5. Provide OpenAI API Key

To give everyone using the chatbot access to an API key, create a .env.local file and set:

OPENAI_API_KEY=YOUR_KEY

Notes:

  • If you do not provide an OpenAI API key, users will have to provide their own key.
  • If you don't have an OpenAI API key, you can get one here.
  • You can set OPENAI_API_HOST where access to the official OpenAI host is restricted or unavailable, allowing users to configure an alternative host for their specific needs.
  • Additionally, if you have multiple OpenAI Organizations, you can set OPENAI_ORGANIZATION to specify one.

Configuration

When deploying the application, the following environment variables can be set:

Chat-related Variables

Environment Variable Default value Description
OPENAI_API_KEY The default API key used for authentication with OpenAI
OPENAI_API_HOST https://api.openai.com The base url, for Azure use https://<endpoint>.openai.azure.com
OPENAI_API_TYPE openai The API type, options are openai or azure
OPENAI_API_VERSION 2023-03-15-preview Only applicable for Azure OpenAI
OPENAI_ORGANIZATION Your OpenAI organization ID
DEFAULT_MODEL gpt-3.5-turbo (OpenAI) gpt-35-turbo (Azure) The default model to use on new conversations
NEXT_PUBLIC_DEFAULT_SYSTEM_PROMPT see here The default system prompt to use on new conversations
NEXT_PUBLIC_DEFAULT_TEMPERATURE 1 The default temperature to use on new conversations
GOOGLE_API_KEY See [Custom Search JSON API documentation][GCSE]
GOOGLE_CSE_ID See [Custom Search JSON API documentation][GCSE]

Authentication Variables

Environment Variable Default value Description
NEXT_PUBLIC_AUTH_ENABLED false Enable SSO authentication. set 'true' or 'false'
NEXTAUTH_EMAIL_PATTERN The email regex pattern granted access to chatbot-ui. For example .+@mydomain.com
NEXTAUTH_SECRET NextAuth Settings. See Documentation
NEXTAUTH_URL http://localhost:3000 NextAuth Settings. See Documentation
NEXTAUTH_URL_INTERNAL (Optional) NextAuth Settings. See Documentation.
<PROVIDER>_CLIENT_ID Provider OAuth Client ID
<PROVIDER>_CLIENT_SECRET Provider OAuth Client Secret
<PROVIDER>_ISSUER Provider Issuer URL

Where <PROVIDER> is one of the following:

  • APPLE
  • AUTH0
  • COGNITO
  • DISCORD
  • FACEBOOK
  • GITHUB
  • GITLAB
  • GOOGLE
  • OKTA
  • REDDIT
  • SALESFORCE
  • SLACK
  • SPOTIFY
  • TWITCH
  • TWITTER

For example, to enable Google and Github authentication, you would add the following to your .env.local file:

GITHUB_CLIENT_ID=xxxxxxxxxxxxx
GITHUB_CLIENT_SECRET=xxxxxxxxxxxxx
GOOGLE_CLIENT_ID=xxxxxxxxxxxxx
GOOGLE_CLIENT_SECRET=xxxxxxxxxxxx

About

An open source ChatGPT UI.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Languages

  • TypeScript 98.5%
  • Other 1.5%