Go to file
Mckay Wrigley 6500db9c1c
MAJOR REFACTOR (#494)
* move index to home folder, create state and context files and barrell folder

* Sanity Check Commit:  reducer added to home.tsx manual QA all working

* WIP: promptBar

* fix missing json parse on folders and prompts

* split context and add promptbar context

* add context to nested prompt componets and componetize Folder componet

* remove log

* Create buttons folder and componetize sidebar action button

* tidy up prompt handlers

* componetized sidebar

* added back chatbar componet to left side sidebar

* monster commit: Componetized the common code between chatbar and promptbar into new componet Sidebar and added context to both bars

* add useFetch service

* added prettier import sort to keep imports ordered and easier to indentify

* added react query and useFetch to work with RQ

* added apiService, errorService and reactQuery

* add callback and tidy up error service

* refactor chat and child componets to useContext

* fix extra calls and bad calls to mel endpoint

* minor import cleanup

---------

Co-authored-by: jc.durbin <jc.durbin@ardanis.com>
2023-04-10 21:10:18 -06:00
.github/workflows MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
__tests__/utils/app MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
components MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
docs MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
hooks MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
k8s feat: add in prettier and format code for consistency (#168) 2023-03-25 23:13:18 -06:00
pages MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
public MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
services MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
styles fix: layout shifting on small devices (#258) 2023-03-28 04:23:34 -06:00
types MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
utils MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
.dockerignore fix import (#242) 2023-03-28 02:27:37 -06:00
.env.local.example push (#414) 2023-04-04 09:41:24 -06:00
.eslintrc.json chatbot-ui starter 2023-03-13 19:21:14 -06:00
.gitignore scroll btn (#256) 2023-03-28 02:52:45 -06:00
CONTRIBUTING.md MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
Dockerfile feat: Add i18n support for Chinese language (#142) 2023-03-25 09:42:48 -06:00
Makefile add k8s config (#117) 2023-03-25 04:24:43 -06:00
README.md update README regarding GOOGLE_API_KEY and GOOGLE_CSE_ID (#422) 2023-04-04 16:53:32 -06:00
docker-compose.yml 🐳 add Dockerfile (#17) 2023-03-19 06:49:41 -06:00
license chatbot-ui starter 2023-03-13 19:21:14 -06:00
next-i18next.config.js MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
next.config.js feat: add in prettier and format code for consistency (#168) 2023-03-25 23:13:18 -06:00
package-lock.json MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
package.json MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
postcss.config.js feat: add in prettier and format code for consistency (#168) 2023-03-25 23:13:18 -06:00
prettier.config.js MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
tailwind.config.js MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00
tsconfig.json chore: migrate to vitest for 10x faster tests (#257) 2023-03-28 04:22:58 -06:00
vitest.config.ts MAJOR REFACTOR (#494) 2023-04-10 21:10:18 -06:00

README.md

Chatbot UI

Chatbot UI is an advanced chatbot kit for OpenAI's chat models built on top of Chatbot UI Lite using Next.js, TypeScript, and Tailwind CSS.

See a demo.

Chatbot UI

Updates

Chatbot UI will be updated over time.

Expect frequent improvements.

Next up:

  • Delete messages
  • More model settings
  • Plugins

Recent updates:

  • Prompt templates (3/27/23)
  • Regenerate & edit responses (3/25/23)
  • Folders (3/24/23)
  • Search chat content (3/23/23)
  • Stop message generation (3/22/23)
  • Import/Export chats (3/22/23)
  • Custom system prompt (3/21/23)
  • Error handling (3/20/23)
  • GPT-4 support (access required) (3/20/23)
  • Search conversations (3/19/23)
  • Code syntax highlighting (3/18/23)
  • Toggle sidebar (3/18/23)
  • Conversation naming (3/18/23)
  • Github flavored markdown (3/18/23)
  • Add OpenAI API key in app (3/18/23)
  • Markdown support (3/17/23)

Modifications

Modify the chat interface in components/Chat.

Modify the sidebar interface in components/Sidebar.

Modify the system prompt in utils/index.ts.

Deploy

Vercel

Host your own live version of Chatbot UI with Vercel.

Deploy with Vercel

Replit

Fork Chatbot UI on Replit here.

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
DEFAULT_MODEL gpt-3.5-turbo The default model to use on new conversations
DEFAULT_SYSTEM_PROMPT see here The default system prompt to use on new conversations
GOOGLE_API_KEY See Custom Search JSON API documentation
GOOGLE_CSE_ID See Custom Search JSON API documentation

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.

Contact

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