Giter Club home page Giter Club logo

chatbot-ui's Introduction

Chatbot UI

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

See a demo.

Chatbot UI

Updates

Chatbot UI will be updated over time.

Expect frequent improvements.

Next up:

  • Sharing
  • "Bots"

Deploy

Vercel

Host your own live version of Chatbot UI with Vercel.

Deploy with Vercel

Docker Compose

Production (http://localhost:3000):

docker-compose -f docker-compose.yml --env-file .env.local up -d

Development (http://localhost:3001 & http://localhost:5984/_utils):

docker-compose -f docker-compose.dev.yml --env-file .env.local up --build

Docker

Build locally:

docker build -t chatgpt-ui .
docker run -e OPENAI_API_KEY=xxxxxxxx -p 3000:3000 chatgpt-ui

Pull from ghcr:

docker run -e OPENAI_API_KEY=xxxxxxxx -p 3000:3000 ghcr.io/mckaywrigley/chatbot-ui:main

Running Locally

1. Clone Repo

git clone https://github.com/mckaywrigley/chatbot-ui.git

2. Install Dependencies

npm i

3. Provide OpenAI API Key

Create a .env.local file in the root of the repo with your OpenAI API Key:

OPENAI_API_KEY=YOUR_KEY

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.

4. Run App

npm run dev

5. Use It

You should be able to start chatting.

Configuration

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

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
GOOGLE_CSE_ID See Custom Search JSON API documentation
NEXT_PUBLIC_NEXTAUTH_ENABLED false Enable SSO authentication. set 'true' or 'false'
NEXTAUTH_EMAIL_PATTERN The email regex pattern granted access to chatbot-ui
NEXTAUTH_URL http://localhost:3000 NextAuth Settings. See Official Document
NEXTAUTH_SECRET NextAuth Settings. See Official Document
GITHUB_CLIENT_ID GitHub OAuth Client ID for NextAuth
GITHUB_CLIENT_SECRET GitHub OAuth Client Secret for NextAuth
GOOGLE_CLIENT_ID Google OAuth Client ID for NextAuth
GOOGLE_CLIENT_SECRET Google OAuth Client Secret for NextAuth
STORAGE_TYPE local Options are local, couchdb, & rdbms
COUCHDB_HOST http://couchdb The hostname of the CouchDB instance
COUCHDB_PORT 5984 The port of the CouchDB instance
COUCHDB_USERNAME admin The username of the CouchDB instance
COUCHDB_PASSWORD password The password of the CouchDB instance
COUCHDB_DATABASE chatbot The database name of the CouchDB instance
RDBMS_DB_TYPE postgres The database type of the RDBMS instance
RDBMS_HOST 127.0.0.1 The hostname of the RDBMS instance
RDBMS_PORT 5432 The port of the RDBMS instance
RDBMS_DB postgres The database name of the RDBMS instance
RDBMS_USER postgres The username of the RDBMS instance
RDBMS_PASS password The password of the RDBMS instance
RDBMS_SYNCHRONIZE true Whether to create tables from entities. Should be false in production.
RDBMS_SSL_ENABLED false Whether to require SSL to connect to the database.
RDBMS_SSL_HOST The hostname of the database server you are connecting to. Google Cloud may require this.
RDBMS_SSL_CA The Server CA certificate used for SSL connections, in the form of a single line string.
RDBMS_SSL_CERT The Client certificate used for SSL connections, in the form of a single line string.
RDBMS_SSL_KEY The Client certificate key used for SSL connections, in the form of a single line string.
RDBMS_COCKROACHDB_TIME_TRAVEL_QUERIES false Wether to user time travel queries features in CockroachDB

If you do not provide an OpenAI API key with 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.

Relational Database Support

If you opt to use a relational database, you must also install the corresponding database driver. See the corresponding drivers here.

Contact

If you have any questions, feel free to reach out to Mckay on Twitter.

chatbot-ui's People

Contributors

mckaywrigley avatar jorge-menjivar avatar itbm avatar thomasleveil avatar nauxliu avatar dotneet avatar bcullman avatar syedmuzamilm avatar chanzhaoyu avatar dasunnimantha avatar liby avatar alanpog avatar riande avatar matriq avatar spctechdev avatar ryanhex53 avatar oznav2 avatar hyena459 avatar borborborja avatar srsholmes avatar adiestel avatar anthonypuppo avatar aweshchoudhary avatar ch4r4f avatar ernestobarrera avatar jdban avatar huuphongnguyen avatar shemarlindie avatar khairulhaaziq avatar khankudo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.