Releases: danny-avila/LibreChat
v0.5.6
What's Changed
✨ New Features
- Add update script for clean update installations (supports local npm and docker) by @danny-avila and @fuegovic in #673 #712
- After you update to the latest release, use
npm run update
in the root folder to update your local/docker builds. - If you are on linux and need to use
sudo
for docker, runnpm run update:sudo
- After you update to the latest release, use
- Use Bing Image Creator (working on Chrome, MS Edge browsers) by @fuegovic in #668
- Added a leaner, alternative docker strategy and deployment compose file by @danny-avila in #719
- to use it, run
docker-compose -f ./deploy-compose.yml up
from the root of the project directory.
- to use it, run
- Add more plugins to the Plugin store by @fuegovic in #709
- Build dev images on changes to api/client or manual trigger by @danny-avila in #676 #715 #716 #717 #720
- Enhanced MongoDB-MeiliSearch Syncing by @danny-avila in #722
- Fetch api for model list when
OPENAI_MODELS
env variable is not specified (useful for ChimeraGPT) by @danny-avila in https://github.com/danny-avila/LibreChat - Reverse Proxy support for Plugins by @danny-avila in #691
🐛 Fixes
- Resolve null pointer exception in tokenizer management by @ywkim in #689
- Oauth fixes for Cognito (OpenID) by @Donavan in #686
- TypeError Issue in
db/indexSync.js
, and Search Pagination by @danny-avila in #722 - Clear convo bug from General Settings by @danny-avila in #710
📝 Documentation
- Add "chatgpt_plugins_openapi.md" to readme.md and mkdocs by @fuegovic in #655
- Updates by @fuegovic in #662
- Add installation guide for free AI APIs (ChimeraGPT) by @danny-avila @berry-13 in #692 #707
- Improved ngrok installation and enhanced user_auth_system.md by @berry-13 in #721
🌐 Internationalization
- Add localization support for endpoint pages components by @NoahDragon in #667
- Italian localization support for endpoint pages components by @berry-13 in #687 #697
- Support localization for Nav components by @NoahDragon in #688
- Language files: Spanish translation and Portuguese corrections for PR by @itzraiss in #694
⚙️ Other Changes
- Add version number in UI by @fuegovic in #704
- Improve passport strategy handling in async/await manner by @danny-avila in #682
- Add a restart to melisearch in docker-compose.yml by @Donavan in #684
- Update langchain dependency to version 0.0.114 by @danny-avila in #669
- Organize the getting started menu by @berry-13 in #708
- Nav/Conversation imports, add linting rules by @danny-avila in #710
- Remove data-provider and use npm package instead by @danny-avila in #713
- Update placeholder text for promptPrefix/system message by @danny-avila in #656
New Contributors
Full Changelog: v0.5.5...v0.5.6
v0.5.5
What's Changed
This update introduces ChatGPT Plugins (OpenAPI specs) for use with our Plugins endpoint! One of the main use cases we gain from integrating them to LibreChat is to allow use of official plugins with gpt-3.5 models, and without ChatGPT Plus. Read the full documentation to learn how to add/configure them, although I've included some.
Note: LibreChat's implementation is not 1:1 with ChatGPT's, depends on the LangChainJS library, and is a working first pass. For more disclaimers on the limitations, read here
✨ Features
- feat: ChatGPT Plugins/OpenAPI specs for Plugins Endpoint by @danny-avila in #620
- style(Nav): improve Nav transition for open/close by @danny-avila in #652
- feat(Meilisearch): disable anonymized analytics telemetry by default by @danny-avila in #647
🔧 Fixes
- fix(Settings.jsx): fix Settings inputs losing focus to main textarea from 0.5.4 update by @danny-avila in #646
- fix: typo when including proxy for langchain by @danny-avila in #653
- fix: sharpness in Bing Chat icon by @fuegovic in #648
We are always looking for contributors at any skill level. Here's our roadmap, see if there's anything you may want to tackle, or you can simply ask how you can contribute on discord, especially if you have new ideas. This is a great project to contribute to if you've never contributed to an open source project before
Full Changelog: v0.5.4...v0.5.5
v0.5.4
What's Changed
This is a big feature update and introduces Anthropic (Claude) models to the project, which have 100k context!
✨ Features
- Integrate Anthropic API. #552 by @danorlando @danny-avila
- Allow changing settings/presets mid-conversation for Anthropic, Google, OpenAI. #636 by @danny-avila
- Generate Bing's title using Bing. #612 by @HyunggyuJang
- Implement localization (i18n) support. #557 by @NoahDragon
- Integrate Discord login. #615 by @berry-13
- Add feature to disable social logins, warning message if social login is disabled (default behavior). #615 #635
- [Meilisearch] Add batch indexing functionality. #606 by @HyunggyuJang
🔧 Fixes
- Improve Meilisearch syncing #600 by @danny-avila
- Use user-provided OpenAI credential for browser plugin embedding. #603 by @danny-avila
- Fix conversation titling. #637 by @danny-avila
- Show censored message and fix toneStyle UI bug for BingAI. #644 by @danny-avila
- Implement minor UI changes. #643 by @techwithanirudh
📖 Documentation
- Update Docker installation and configuration guide. #601 by @ywkim
- Update docker_install.md with new container URL. #604 by @danny-avila
- Update documentation, fix some i8n issues, add Italian translation, and create a more realistic "chat.openai.com" login page. #634 by @berry-13
- Add instructions to deploy on render.com. #638 by @fuegovic
- Fix typo in plugin docs. #607 by @jhcao23
⚙️ General Updates
- add multiple endpoint icons as SVG. #600 by @danny-avila
- Update Bing chat icon. #627 by @fuegovic
- Add linter step to the backend review workflow. #625 by @danny-avila
New Contributors
- @ywkim made their first contribution in #601
- @NoahDragon made their first contribution in #557
Full Changelog: v0.5.3...v0.5.4
v0.5.3
What's Changed
Features
- Added Github Login. by @berry-13 (#578)
- Integrated Azure OpenAI as a separate Endpoint. by @danny-avila (#532)
- Integrated Frontend/user provided credentials for the Plugins Endpoint. by @danny-avila (#596)
- Developed feature: ChatGPT style show/hide panel button (panel state saved in local storage). by @dncc89 (#575, #595)
- Enabled LaTeX for formatted math expression outputs. by @danny-avila (#574)
- Prepped Admin panel: Moved data provider to shared package. by @danorlando (#582)
- Feat: Save Last Selected Bing Settings. by @danny-avila (#587)
Fixes
- Fixed increase in password max length and acceptance of '-' for username in regex. by @fuegovic (#564)
- Improved UX by Eliminating Screen Flicker in Message Creation. by @danny-avila (#577)
- Fixed Azure Frontend "user_provided" Credentials. by @danny-avila (#587)
- Hot-fix issue related to plugins refactoring, to retain message history and improve completion prompt handling in Plugins. by @danny-avila (#597)
Documentation
- Fully Live Documentation at https://docs.librechat.ai by @bsu3338 @fuegovic @mjtechguy (#568)
- Significant updates and enhancements in Documentation by @fuegovic and @jhcao23 (#555, #594, #598, #569)
- Added Ngrok Documentation. by @berry-13 (#586)
- Added Cloudflare tunnels documentation. by @berry-13 (#592)
- Updated OpenID Login .env.example. by @bsu3338 (#563)
General updates
- Refactored Client Classes for easier maintenance and modularity of AI model integrations. by @danny-avila (#532, #591)
- Updated end-to-end tests. (#579)
- Updated compose file to use auto-tagged GH container image. by @danny-avila (#559)
- Implemented minor fixes. by @danny-avila and @danorlando (#599, #590)
New Contributors
Full Changelog: v0.5.2...v0.5.3
v0.5.2
What's Changed
Features:
- feat(Functions Agent): use official langchain function executor/agent for better output handling by @danny-avila in #538
- feat(Plugins): change default agent to functions and skip completion by @danny-avila in #544
- This is the most token-efficient method of using plugins. Docs on how to write plugins as functions coming soon.
- OpenID Authentication by @bsu3338 in #495
Build and Docker Updates:
- build(docker-compose.yml): change the image name to librechat by @danny-avila in #530
- #531: Create container.yml: build and push docker image upon tagging by @jinzishuai in #536
- feat: update Dockerfile to include curl by @jinzishuai in #539
Style and UX:
- style: mobile optimizations, use fixed dialogs, and prevent auto-scroll for presets by @danny-avila in #534
- fix(SubmitButton.jsx): fix padding overlap of textarea by @danny-avila in #540
Documentation & Logos:
- Update [logo] README.md by @fuegovic in #535
- MkDocs for Material by @bsu3338 in #545
- Enhanced Documentation: Added Cloudflare and Linode Setup by @berry-13 in #549
- Minor OpenID Documentation Update by @bsu3338 in #553
- Add social sites to MkDocs by @bsu3338 in #554
Refactoring and Fixes:
- refactor: update references from chatgpt-clone to LibreChat by @fuegovic in #541
- fix: #546 issue with closing registration by @danorlando in #547
New Contributors
- @jinzishuai made their first contribution in #536
- @bsu3338 made their first contribution in #495
- @berry-13 made their first contribution in #549
Full Changelog: v0.5.1...v0.5.2
v0.5.1
What's Changed
Features:
- Option to use new OpenAI Functions with Plugins Agent by @danny-avila in #521
- feat(OpenAI, PaLM): Add model support for new OpenAI models and codechat-bison by @danny-avila in #516
- Command line features: Create a user & more install options by @ClaraLeigh in #487
- Feat/startup config api to handle Frontend environment variables more reliably by @danorlando in #518
Bug Fixes:
- fix(logout.controller.js): destructure logoutUser function by @danny-avila in #482
- fix(DALL-E.js): should only use DALLE_API_KEY in all cases by @danny-avila in #506
- fix: prepare script no longer breaks local installation by @danny-avila in #512
- style(Input): remove unnecessary z-index class from input field by @danny-avila in #522
Documentation:
- docs: fix outdated references by @fuegovic in #480
- docs update by @fuegovic in #508
- Create HetznerUbuntuSetup.md by @heathriel in #492
- docs: fix/update by @fuegovic in #525
Tests and Refactor:
- test: frontend jest ci/cd & minor fixes post-release by @danny-avila in #478
- refactor: Settings, General Tab & DialogTemplate to TS, Fix Conversation Clearing Bug, Add Tests by @danny-avila in #485
- tests(api): refactor to mock database and network operations by @danny-avila in #494
Docker and Dev Environment:
- Change prepare script to not run in CI mode and remove --ignore-scripts flag from workflow by @danorlando in #491
- Update .dockerignore by @thunderbug1 in #510
- fix(nodemon): will now follow nodemonConfig in package file by @danny-avila in #514
- fully dockerized development with VS-code devcontainers by @thunderbug1 in #524
- Update stable_diffusion.md by @thunderbug1 in #523
- Update docker, Minor Styling fix by @danny-avila in #528
New Contributors:
- @thunderbug1 made their first contribution in #510
- @heathriel made their first contribution in #492
Full Changelog: v0.5.0...v0.5.1
v0.5.0
🎉 Introducing Plugins via LangChain 🦜️🔗
⚠️ Note: this update introduces Breaking Changes ⚠️ See notes below for more information
The following contributors were crucial for this release: @fuegovic @danorlando @ClaraLeigh @dncc89
The new Plugins endpoint opens the door to prompting LLMs in new ways other than traditional input/output prompting.
The first step is using chain-of-thought prompting for using plugins/tools in a fashion mimicing the official ChatGPT Plugins feature.
More than this, you can use this endpoint for changing your conversation settings mid-conversation. Unlike the official ChatGPT site and all other endpoints, you can switch models, presets, and settings mid-convo, even when you have no plugins selected. This is useful if you first want a creative response from GPT-4, and then a deterministic, lower cost response from GPT-3.
Soon, you will be able to use Local LLMs, PaLM2 and HuggingFace models, all in this endpoint in the same modular manner.
Click here for more detailed information on this update, including how it works, how to setup specific plugins like Stable Diffusion, and how to make your own plugins compatible with this project
Immediate Roadmap
- Vector Indexing & Memory - Chat with Documents
- Starting work
- Python API to utilize Most up-to-date Python Features/Tools (including Langchain & more)
- already in progress: https://github.com/danny-avila/ai-services
- OpenAPI Support (ChatGPT plugins)
- already in progress, testing working method
- Local LLM Support
- in planning phase, methods already outlined
- HuggingFace Models Support
- in planning phase, methods already outlined
- Code-Bison Compatibility
- in planning phase, methods already outlined
- More tests and CI/CD pipeline
- already in progress, multiple test suites across the full stack are added with this update
ℹ️ If you would like to contribute to any of the above or in any other capacity, we will be adding all of these tasks & more to our GitHub Projects tab very soon. Please also join our discord for developer discussion.
Note: You can now close registration by either omitting this env variable or setting it to false
# ALLOW_REGISTRATION=true
# ...or
ALLOW_REGISTRATION=false
⚠️ Breaking Changes ⚠️
Note: These changes only apply to users who are updating from a previous version of the app.
- We have simplified the configuration process by using a single
.env
file in the root folder instead of separate/api/.env
and/client/.env
files. - If you had installed a previous version, you can run
npm run upgrade
to automatically copy the content of both files to the new.env
file and backup the old ones in the root dir. - If you are installing the project for the first time, it's recommend you run the installation script
npm run install
to guide your local setup (otherwise continue to use docker) - The docker-compose file had some changes. Review the new docker instructions to make sure you are setup properly. This is still the simplest and most effective method.
- The upgrade script requires both
/api/.env
and/client/.env
files to run properly. If you get an error about a missing client env file, just rename the/client/.env.example
file to/client/.env
and run the script again. - We have renamed the
OPENAI_KEY
variable toOPENAI_API_KEY
to match the official documentation. The upgrade script should do this automatically for you, but please double-check that your key is correct in the new.env
file. - After running the upgrade script, the
OPENAI_API_KEY
variable might be placed in a different section in the new.env
file than before. This does not affect the functionality of the app, but if you want to keep it organized, you can look for it near the bottom of the file and move it to its usual section.
- For enhanced security, we are now asking for crypto keys for securely storing credentials in the
.env
file. Crypto keys are used to encrypt and decrypt sensitive data such as passwords and access keys. If you don't set them, the app will crash on startup. - You need to fill the following variables in the
.env
file with 32-byte (64 characters in hex) or 16-byte (32 characters in hex) values:CREDS_KEY
(32-byte)CREDS_IV
(16-byte)JWT_SECRET
(32-byte, optional but recommended)
- You can use this replit to generate some crypto keys quickly: https://replit.com/@daavila/crypto#index.js
- Make sure you keep your crypto keys safe and don't share them with anyone.
We apologize for any inconvenience caused by these changes. We hope you enjoy the new and improved version of our app!
If you're having trouble with this update, visit our #issues thread on our discord, or our troubleshooting discussion on our Discussions page. Report bugs in our Issues Page
Full Changelog: v0.4.8...v0.5.0
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