Skip to content

Releases: danny-avila/LibreChat

v0.5.0

10 Jun 23:25
e4c91df
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

🎉 Introducing Plugins via LangChain 🦜️🔗

image

⚠️ 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)
  • 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 to OPENAI_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

05 Jun 18:09
47d0184
Compare
Choose a tag to compare
v0.4.8 Pre-release
Pre-release

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

Full Changelog: v0.4.7...v0.4.8

v0.4.7

26 May 21:37
fd5afc0
Compare
Choose a tag to compare
v0.4.7 Pre-release
Pre-release

What's Changed

Features/updates

Fixes

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

19 May 20:28
a9444b6
Compare
Choose a tag to compare
v0.4.6 Pre-release
Pre-release

What's Changed

Features

Fixes

New Contributors

Full Changelog: v0.4.5...v0.4.6

v0.4.5

16 May 18:53
dbf4519
Compare
Choose a tag to compare
v0.4.5 Pre-release
Pre-release

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

15 May 00:48
501a15a
Compare
Choose a tag to compare
v0.4.4 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.4.3...v0.4.4

v0.4.3

13 May 21:01
49041e1
Compare
Choose a tag to compare
v0.4.3 Pre-release
Pre-release

image

What's Changed

How to Use PaLM 2 (via Google Cloud Vertex AI API)

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

Full Changelog: v0.4.2...v0.4.3

v0.4.2

11 May 20:41
94ad31d
Compare
Choose a tag to compare
v0.4.2 Pre-release
Pre-release

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

09 May 21:59
03d8713
Compare
Choose a tag to compare
v0.4.1 Pre-release
Pre-release

What's Changed

New Contributors

  • @DavidDev1334 made their first contribution in #191

Full Changelog: v0.4.0...v0.4.1

v0.4.0

07 May 19:42
960e8c4
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

v0.4.0

The Pre-built User system is now live!

image

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.

⚠️ IMPORTANT ⚠️
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.

⚠️ Breaking: new Env Variables ⚠️

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

New Contributors

Upcoming changes

Currently working on reverse engineering the official plugins feature #197

I'm nearing completion on my first pass with interesting results!

image

2023-05-05_23-54-22.mp4

Full Changelog: v0.3.3...v0.4.0