Releases: danny-avila/LibreChat
v0.4.8
ChatGPT Clone is now LibreChat 🎉
This project has evolved a lot since it first started, and I'm happy to say it keeps improving thanks to community support, so much so that it can't simply be called a ChatGPT Clone anymore. While the UI/design will continue to stay true to chat.openai.com, it's evident this project is standing out among a sea of ChatGPT Clones. The name was first introduced by @ClaraLeigh and was favored by the community over other options. I like the Latin emphasis of Libre, which is understood in software to mean "With very few limitations on distribution or the right to access the source code to create improved versions." This project will continue to emphasize and utilize open-source solutions and philosophies, to improve upon its origin for those who build and use it.
What's next
The next release will introduce the new plugins endpoint to the project, which opens the door to plugins and chain-of-thought prompting, and later, along with additional LLMs and plugins, other forms of prompting over traditional input/outputs.
The plugins endpoint allows the use of tools in a way similar to the official ChatGPT Plugins feature. It also enables changing conversation settings, including models, presets, and settings, mid-conversation, even without plugins. This is beneficial for varying responses between different models like GPT-4 and GPT-3. Future updates will introduce PaLM2 and HuggingFace models and tree-of-thought prompting to the endpoint.
For more info before the update goes live, you can read here or try out the langchain branch yourself.
What's Changed
- Updates: Documentation, typo, and UI phrasing improvements by @fuegovic (#389, #391, #393, #414)
- Features: Clear button in search bar by @fuegovic and @techwithanirudh (#328)
- Addition: User Settings Modal by @techwithanirudh (#342)
- Style: Dropdown menu background color change by @danny-avila (#419)
- Chores:
- API package updates by @danny-avila (#404, #424)
- Tokenizer improvement and testing by @danny-avila (#417)
- Package bumps by @danny-avila (#448, #449, #450, #451, #452, #453, #435, #442)
Full Changelog: v0.4.7...v0.4.8
v0.4.7
What's Changed
Features/updates
- feat: Setup Unit Test Environment and Refactor Typescript Config by @danorlando in #365
- Setup tests with new user system as well as for message streams by @danny-avila in #344 & #387
- docs : update & cleanup the documentation by @fuegovic @danny-avila @ocontant in #345 #347 #350 #367 #379
- Enable message regeneration for bingAI endpoint by @danny-avila in #349
- @dependabot update dependencies
- refactor: remove bcrypt by @danorlando in #375
- chore(api): remove unused crypto dependency from package.json by @danny-avila in #381
Fixes
- Fix Input losing focus in all endpoints aside from openAI by @danny-avila in #382
- Hotfix by @danny-avila in #334
- fix(Bing): Use full cookies string instead of just _U cookie by @danny-avila in #369
- UI fixes & changes #335 #337
- Minor fixes: tokenizer, default Bing toneStyle, SiblingSwitch by @danny-avila in #348
- Fix (PaLM2): Persist PaLM presets after initial message by @danny-avila in #366
- fix (PaLM2): messages will properly regenerate by @danny-avila in #368
Upcoming
This is the last minor release before we introduce plugins, now that all major known bugs on main branch are taken care of. We are switching to Test-driven development and this is aiding in discovering bugs before merging
Full Changelog: v0.4.6...v0.4.7
v0.4.6
What's Changed
Features
- Closable sidebar by @techwithanirudh in #324
- Added functionality to allow users to set custom OpenAI api keys by @techwithanirudh in #276
- feat: Frontend app title environment variable by @dncc89 in #291
- feat (presets): hide/show endpoints, increase preset menu size by @danny-avila in #320
- Calculate token usage for streaming chat by @p4w4n in #287
Fixes
- Docs/security guideline by @ocontant in #295
- fix duplicate mac install instructions by @johntiger1 in #310
- fix(api): fix support for user-provided OpenAI API key by @danny-avila in #311
- Fix title for document object by @danny-avila in #313
- Build/Refactor: lint pre-commit hook and reformat repo to spec by @danorlando in #314 #316 #317
- minor fixes by @danny-avila in #318
- bump dependencies using @dependabot
- fix(User.js, auth.service.js, localStrategy.js): change deprecated Joi.validate() to schema.validate() method by @danny-avila in #322
- fix(auth.service.js): fixes deprecated error callback in mongoose save method by @danny-avila in #323
- Fixes all Nav Menu related errors and bugs by @danny-avila in #331
New Contributors
- @johntiger1 made their first contribution in #310
- @dependabot introduced in #296
Full Changelog: v0.4.5...v0.4.6
v0.4.5
What's Changed
- Sydney is working again!
- Fix: install instructions by @fuegovic in #272
- fix: New GPT-4 model icon in presets and chat input by @dncc89 in #274
- feat: Add user icon in messages by @dncc89 in #275
- fix(getIcon.jsx): match initial styling better with official by @danny-avila in #277
- doc: coding conventions and proposal submissions by @danorlando in #250
- fix: fix link to coding conventions doc in contributor guidelines by @danorlando in #283
- docs : add basic info document in multiple languages by @fuegovic in #285
- #282 :
- Update @waylaidwanderer/node-chatgpt-api to latest version
- Update dockerfiles to use workspaces and ensure packages are @ latest
- Remove package-lock.json files from workspace directories as no longer needed
- refactor(api): remove deprecated text-davinci-002-render-paid model from CHATGPT_MODELS
- refactor(api/client): change model comparison to use startsWith() instead of === for GPT-4 models
Note: you can use all available models on chat.openai.com through the browser endpoint, including code interpreter, browsing, and plugins if you have access, though their full features are not fully supported in this project (mainly loading plugins). I haven't tested the interpreter as I don't have access, but plugins & browser gives you greater context (up to 8100 tokens), and the browser is useful for web knowledge. For more info, see discussion here: #284
In short, you simply need to add the models to this env var in your api/.env file
CHATGPT_MODELS=text-davinci-002-render-sha,gpt-4,gpt-4-browsing,gpt-4-plugins
Full Changelog: v0.4.4...v0.4.5
v0.4.4
What's Changed
- Msg Clipboard to checkmark (optimistic UX) by @techwithanirudh in #247
- Correct the typo in auth.json path for accessing Google Palm by @antonme in #266
- Add Popup Menu to Save Space in Sidebar by @techwithanirudh in #260
- refactor(Conversation.js): change default pageSize from 12 to 14 by @danny-avila in #267
- Fonts by @techwithanirudh in #261
- refactor(style.css): change font file paths by @danny-avila in #268
- fix code to adjust max_tokens according to model selection by @p4w4n in #263
- Fix react errors, max context tokens, and preset mobile view by @danny-avila in #269
New Contributors
- @techwithanirudh made their first contribution in #247
- @antonme made their first contribution in #266
- @p4w4n made their first contribution in #263
Full Changelog: v0.4.3...v0.4.4
v0.4.3
What's Changed
- chore: NPM Workspaces and scripts by @ClaraLeigh in #244
- Feat: PaLM 2 by @danny-avila in #262
How to Use PaLM 2 (via Google Cloud Vertex AI API)
- Enable the Vertex AI API on Google Cloud:
- Create a Service Account:
- Make sure to click 'Create and Continue' to give at least the 'Vertex AI User' role.
- Create a JSON key, rename as 'auth.json' and save it in /api/data/.
Alternatively
- In your ./api/.env file, set PALM_KEY as "user_provided" to allow the user to provide a Service Account key JSON from the UI.
- They will follow the steps above except for renaming the file, simply importing the JSON when prompted.
- The key is sent to the server but never saved except in your local storage
Note:
- Vertex AI does not (yet) support response streaming for text generations, so response may seem to take long when generating a lot of text.
- Text streaming is simulated
New Contributors
- @ClaraLeigh made their first contribution in #244
Full Changelog: v0.4.2...v0.4.3
v0.4.2
What's Changed
- refactor(getCitations.js): add null check for adaptiveCards variabl… by @qcgm1978 in #232
- feat: add support for titling convos with azure endpoint by @danny-avila in #234
- fix(titleConvo.js, endpoints.js): fix titling with azure, fix endpoints unavailable when only azure key is provided by @danny-avila in #235
- Feature/logging system with pino and sanitization (#214) by @danorlando in #227
- fix(docker): update .dockerignore to include client/.env file by @danny-avila in #241
- Release 0.4.2 by @danny-avila in #242
New Contributors
Upcoming
There is active work on the new Plugins feature, converting the frontend to Typescript, and looking to integrate Palm2, google's new generative AI accessible via API, to the project as a new endpoint.
Full Changelog: v0.4.1...v0.4.2
v0.4.1
What's Changed
- update user system section of readme by @danorlando in #207
- remove github-passport and update package.lock files by @danorlando in #208
- Update README.md by @fuegovic in #209
- fix: fix browser refresh redirecting to /chat/new by @danorlando in #210
- fix: fix issue with validation when google account has multiple spaces in username by @danorlando in #211
- chore: update docker image version to use latest by @danny-avila in #218
- update documentation structure by @fuegovic in #220
- Feat: Add Azure support by @danny-avila in #219
- Update Message.js by @DavidDev1334 in #191
New Contributors
- @DavidDev1334 made their first contribution in #191
Full Changelog: v0.4.0...v0.4.1
v0.4.0
v0.4.0
The Pre-built User system is now live!
When the first account is registered, the application will automatically migrate any conversations and presets that you created before the user system was implemented to that account.
You should register and login with a local account (email and password) for the first time sign-up. if you use login for the first time with a social login account (eg. Google, facebook, etc.), the conversations and presets that you created before the user system was implemented will NOT be migrated to that account.
You will need to add the new env variables from .env.example for the app to work, even if you're not using multiple users for your purposes. For more instructions on First Time Setup, see the readme here
What's Changed
- add whitespace-pre-wrap to the message editor to preserve line breaks by @danny-avila in #183
- Add container name by @zhangsean in #186
- Update .env.example by @fuegovic in #187
- Added a link for the "automated installer" by @fuegovic in #188
- Update LOCAL_INSTALL structure by @alfredo-f in #195
- Add instructions for local testing. by @alfredo-f in #196
- Fixup: LOCAL_INSTALL.md PS instructions by @alfredo-f in #200
- feat: Auth and User System by @danorlando in #205
- Bump package version to 0.4.0 and fix spacing in user system section of readme by @danorlando in #206
New Contributors
- @zhangsean made their first contribution in #186
- @fuegovic made their first contribution in #187
- @alfredo-f made their first contribution in #195
Upcoming changes
Currently working on reverse engineering the official plugins feature #197
I'm nearing completion on my first pass with interesting results!
2023-05-05_23-54-22.mp4
Full Changelog: v0.3.3...v0.4.0
v0.3.3
What's Changed
An openAI preset used with this project helped me write this! Check it out on our discord
New Functionality:
- Created Docker Hub repo, addressing #182 [f5ff91c]
- Changed docker-compose.yml to use pre-built image for api service instead of building from local file [f5ff91c]
- Use gen_title response for askChatGPTBrowser.js (official title). [017447b]
- Export conversation: csv, json, txt, markdown, screenshot. [6f0b559] [9691438]
- Set document title when conversation is switched. [e0b0b68]
- Add support for deleting individual presets. [83df28f]
- Add RQ tokenizer. [88aea81]
- Add support for saving messages to database. [a81bd27]
- Support user-provided token to bingAI and chatgptBrowser by @wtlyu in #177
Bug Fixes and Cleanup:
- Fix abort messages and continue conversation on abort , prevent page refresh on stop generating button by @danny-avila #176
- fix nginx container not containing the actual build output by @llk89 in #178
- fix: fix infinite query failure when conversationId is not found by @danorlando in #179
- Clean code with newConversationId in askbingai. [fc91ed4]
- Refactor Message.jsx to remove cancelled message bubble and improve wording of unfinished message. [0bd2409]
- Use new conversation Id [3b94a98], remove blank in screenshot [5664a0c], and remove use-screenshot [c271f04].
- Fix withAuthentication on post requests [94e0636], fix conversations in nav (put refreshConvoHint back) and pagination [9a0e380].
- Fix error and default tone for Sydney [e5e4ee2], and fix bug when clicking on title in search results [c983670]. by @HyunggyuJang and @danorlando
- Resolve JavaScript heap out of memory error from Vite [6e42d4f], and fix isNotAppendable condition [78ae220].
- Address infinite query failure when conversationId is not found [fb7542c], and correct typo in environment variable name [6aa540c].
What's coming
- User system is in progress
- Currently Implementing a reverse engineering of the chatgpt plugins functionality. Official plugins are proving tricky and error prone but a good agent solution that can use community created plugins is much more likely and functional. Possibly also autoGpt/agentGpt in the future
- Models supported by llama.cpp can be easily integrated and will get around to this optional feature. The idea is to have users install them as desired.
- LLaMA 🦙, Alpaca, GPT4All, Chinese LLaMA / Alpaca, Vigogne (French), Koala
- the official site UI has received a good update and will get around to matching it, possibly as a configurable setting
- Optimization of search function and database CRUD for multi-user system
New Contributors
Full Changelog: v0.3.0...v0.3.3