What is Libre Chat? The best alternative to Open WebUI and ChatGPT
ChatGPT is arguably one of the most popular applications currently available. It was the reason for starting this huge AI hype we are currently experiencing.
However, ChatGPT has two major drawbacks:
-
For larger companies it can get quite pricey, as for the advanced features one needs at least a PLUS license, probable even a TEAMS or ENTERPRISE one. This costs somewhere between 20 and 60$ per user per month.
-
Data Privacy: In the lower-tier licenses, OpenAI officially uses your chat data to train their next generation models. This is obviously a huge privacy concern for many companies. Furthermore, there are valid concerns about trusting your potentially most sensitive company data to an American start-up.
So, what to do? Thankfully, the open source community jumped in and created several free, open-source alternatives to ChatGPT. One such tool we already covered in one of our previous blog posts is Open WebUI.
Another very popular alternative is LibreChat. From their web-page, LibreChat is a free, open source AI chat platform. This Web UI offers vast customization, supporting numerous AI providers, services, and integrations. Serves all AI Conversations in one place with a familiar interface, innovative enhancements, for as many users as you need.
What is LibreChat?
LibreChat is an almost pixel-perfect copy of ChatGPT as of mid-2023. It offers more or less the same user interface and functionalities as ChatGPT, but with many features on top. While these additional features are nice - and we'll cover most of them in this post - the major selling point of LibreChat is that is open-source, self-hostable and free to use.
If you want to find our more about why we think an open source AI chat solution is much better than any hosted alternative, read this section in one of our latest posts.
If we look at the main interface of LibreChat, we see it's strikingly similar to ChatGPT.
LibreChat main interface
Furthermore, the health of the LibreChat open-source project is very good. The team provides contributions and updates on a regular basis.
LibreChat contribution graph
Features of LibreChat
Not more introduction necessary, let's dive right into the features of LibreChat.
Chat Interface
Without much surprise, the major feature in an AI chat solutions is ... the chat interface. LibreChat, as already established, tries to copy ChatGPT when it comes to the user interface. This makes it very easy to use for anyone already familiar with ChatGPT and is a great way to port your company from ChatGPT to a more privacy-focused solution.
LibreChat offers not many surprises here - you get the known chat input box, a field for messages in the center of the screen, can edit your messages (as well as the messages of your chat partner), and use voice input, so far so well-known.
LibreChat chat interface
Forking conversations
One rather cool feature is the option to fork a conversation. Below each message you can hit the 'fork' button, which creates a new chat with the messages up until this point. This is very nice for preparing a few-shot chat example which might be needed more often and then simply forking from that prepared chat.
Another use-case might be to try out different prompting options and compare them later on.
Furthemore, forking enables users to share specific parts of a chat, which is great for collaboration.
LibreChat fork conversation
Multi-modal AI support and image text extraction
Besides plain text, LibreChat supports multi-modal AI models. If your selected model supports images, simply paste an image into the chat window and ask questions about it.
This is also great for extracting text and data from images - which is in general one of the best features of vision enabled LLMs (as we established in one of our previous blog posts).
In the example below we posted a screenshot of our blog main page and asked to summarize what the LLM was able to find. The answer speaks for itself.
LibreChat image support
Prompt library
One of the more powerful features of LibreChat is its prompt library builder. It's a fully-fledged user interface allowing users to predefine prompts and even add variables and drop downs to these prompts. When a user selects a predefined prompt, they can fill in the variables and select the drop-down values and easily create a chat.
In the example below, there are 2 variables, topic
and tone
.
Prompt library builder
Upon creation of the prompt template, chat users can select it from the side panel and get the following prompt creation window. They just need to enter the defined variables, the rest is taken care of by the template.
Prompt template usage
File support and Retrieval Augmented Generation (RAG)
Besides the Assistant API, which is covered later in this article, LibreChat offers integration with RAG API, a product of the same team. RAG API is Retrieval Augmented Generation system, using LangChain and pgvector for implemententing the RAG pipeline.
By using RAG API alongside LibreChat, one can simply upload one or many files and ask questions about them.
Note: While it's nice to upload files and ask questions about them, LibreChat is not a fully-fledge RAG QnA system, as it lacks necessary features for file management and permissions on top of these files. That being said, the RAG implementation as part of a chatbot UI is more than good enough and a nice addition to the feature set.
File interaction support
The usage is really simple: Just add a file to the chat and ask questions. LibreChat will automatically invoke RAG API and use the data from the uploaded document (or documents) to answer the question.
Image generation
By using DALL-E 3, LibreChat allows to create images from the chat interface. LibreChat first uses an LLM model to create an optimized image generation text prompt and then invokes DALL-E to generate the image.
Image generation
Note: We had some troubles setting up DALL-E, so here what we learned:
- Set up the DALL_E_API_KEY in the env variables
- In the model selection section at the top of the chat window, select 'Plugins' -> gpt-4.
- Install DALL-E-3 from the plugin store
- Select DALL-E-3 from the plugin drop down
- Click on the 'Model parameters' button, then on "Show Agent Settings".
- In the agent settings, select a model which is not of the OpenAI o1 family, as they don't work with LibreChat plugins
DALL-E plugin selection
DALL-E plugin agent settings
Artifacts - or how to render React, HTML & Diagrams directly in the chat
Artifacts is a really cool feature. It's more or less a 1 to 1 copy of Antropics Artifacts, but integrated in LibreChat. And it supports not just Anthropic's models, but any.
Note: While any model is supported, Artifacts works best with higher quality models as the others are simply not good enough for coding tasks
Optionally, you can even add shadcn/ui instructions, meaning the LLM is instructed to create your output in shadcn UI components, if appropriate. This is awesome.
Enable Artifacts
Before we show some examples, what exactly is this Artifacts feature then? When you ask to create certain elements (like a React component, a diagram, or even webgl components), LibreChat opens a side panel which automatically renders the results of the code the LLM generated. So you ask the LLM to create a login screen - and Artifacts automatically renders the UI for you.
Artifacts example
This feature is very very powerful. You can even combine it with the vision capabilities of the LLMs. Upload an image and ask the AI the create a React component from the image - see example below.
Recreate React component from image
Can we stop for a moment and appreciate how cool this is? We just uplaoded and image and told the LLM to recreate it.
But we don't have to stop at simple UIs. With artifacts, we can also create animations and more fancy structures. Like here, a giant 3D 42 floating in the universe.
3D animation with Artifacts
Model support
LibreChat supports virtually any modern LLM, with a lot of first-class integrations for the well-known contenders like OpenAI and Anthropic. (This is quite special, as other contenders like Open WebUI mostly focus on one or two direct integrations and offer a generic integration for eg. Ollama which takes over the actual integration. This unique approach makes starting with many models easy).
The integrations which are provided out of the box, without needing any additional model router or serving platform, are:
- OpenAI
- Azure OpenAI
- AWS Bedrock
- Anthropic
- Google Gemini
- Assistants API
Additionally, LibreChat offers custom endpoints - a way to connect to any OpenAI API compatible service or model - like OpenRouter. This enables to use most of the modern LLMs with LibreChat.
To select a configured model, simply click on the model drop-down at the top of the chat screen.
Select model
Models can also be changed during chat, which is especially useful when combining very expensive but strong models like OpenAIs o1 model and weaker but cheaper models like a small Llama3.1 one.
One thing which is currently not available is to whitelist models from the user interface (from an admin UI for example). While you can define the models you want to show in the UI from a config file, it can only be changed before starting the server and requires a restart of LibreChat.
Custom Presets
In the "Parameters" section in the side-panel, one can set custom instructions, token settings and model parameters like 'Temperature'. A small but particularly handy feature is to save these settings as "Presets".
Preset creation
After creating the preset, chat user can select the preset just right of the model selection drop-down.
Preset selection
Plugin store
A plugin store similar to the one of the early ChatGPT days is provided as part of the chat interface.
Plugin store
IMPORTANT: While some of the plugins still work, many of them in the store are outdated and don't work anymore. Furthermore, LibreChat announced that they work on a new plugin/extension mechanism. So it's best to not rely too much on the avaialable plugins for now.
OpenAI Assistants as first-class citizens
Besides "ordinary" LLMs, LibreChat offers tight integrations with modern LLM Assistant APIs, OpenAI Assistants being the most prominent one. LibreChat with that regards is a fully-fledged frontend for these assistants. An Assistant has instructions and can leverage models, tools, and files to respond to user querieAn Assistant has instructions and can leverage models, tools, and files to respond to user queriess
The workflow here is a little different:
-
You define the assistant with the Assistants API provider, like in the OpenAI Assistant Platform.
OpenAI Assistant Platform
-
Then you use this assistant in LibreChat. LibreChat only acts as display for the Assistant - while the Assistant itself provides most of the logic
This is quite genious as therefore LibreChat is able to offer almost any feature the Assistant provider also offers. In the case of OpenAI, this is:
- creating and rendering charts
- file interactions
- external tool usage
Here is an example of a chart created by an OpenAI Assistant:
OpenAI Assistant chart
And here another example of a file interaction (assuming you enabled 'File Search' with your OpenAI assistant). Please take note of the source annotations the OpenAI Assistant provides.
OpenAI Assistant file interaction
Assistant Builder
On top of the already great Assistants API integration, LibreChat offers what they call the "Assistant Builder". It's more or less a great copy of OpenAI's ChatGPT "custom GPTs" feature.
You define the behavior of an assistant, add features (like File Search), upload files which are then always there for every chat and finally define actions (external APIs to use as tools).
Assistant Builder
Also this feature is highly appreciated, as it basically allows to create a small agent with capabilities beyond just simple text and image generation and analytics. Using the actions we can integrate basically any external REST API.
User management and authentication
There is one very good thing and one very bad thing about LibreChat when it comes to user management.
Let's start with the good: LibreChat offers a ton of authentication options:
- Username/Password, including Email verification
- Social Login (Google, Facebook, GitHub, Facebook)
- AWS Cognito
- Azure Entra/ID
- Keycloak
- Authelia
- Authentik
- LDAP/AD
So, basically anything you could need for authenticating your users. However, that's where the good ends. There is no permission system or role management. Each user sees the same user interface. While you can customize what users see, there is no way to define which users might see which models or files. And no user interface for any admin task is available as of now.
That being said, this part is currently the top-item on the LibreChat Roadmap. So, fingers crossed that this major issue for company adoption will be resolved soon. Because beside this, LibreChat is a great alternative to ChatGPT and one hell of a competitor for Open WebUI.
Interested in how to train your very own Large Language Model?
We prepared a well-researched guide for how to use the latest advancements in Open Source technology to fine-tune your own LLM. This has many advantages like:
- Cost control
- Data privacy
- Excellent performance - adjusted specifically for your intended use