Enable free tier users to have unlimited chats with the default chat model (#886)

- Allow free tier users to have unlimited chats with default chat model. It'll only be rate-limited and at the same rate as subscribed users
- In the server chat settings, replace the concept of default/summarizer models with default/advanced chat models. Use the advanced models as a default for subscribed users.
- For each `ChatModelOption' configuration, allow the admin to specify a separate value of `max_tokens' for subscribed users. This allows server admins to configure different max token limits for unsubscribed and subscribed users
- Show error message in web app when hit rate limit or other server errors
This commit is contained in:
sabaimran
2024-08-16 12:14:44 -07:00
committed by GitHub
parent 8dad9362e7
commit c0316a6b5d
11 changed files with 210 additions and 92 deletions

View File

@@ -672,7 +672,15 @@ export default function SettingsView() {
};
const updateModel = (name: string) => async (id: string) => {
if (!userConfig?.is_active && name !== "search") return;
if (!userConfig?.is_active && name !== "search") {
toast({
title: `Model Update`,
description: `You need to be subscribed to update ${name} models`,
variant: "destructive",
});
return;
}
try {
const response = await fetch(`/api/model/${name}?id=` + id, {
method: "POST",
@@ -1144,7 +1152,7 @@ export default function SettingsView() {
<ChatCircleText className="h-7 w-7 mr-2" />
Chat
</CardHeader>
<CardContent className="overflow-hidden pb-12 grid gap-8">
<CardContent className="overflow-hidden pb-12 grid gap-8 h-fit">
<p className="text-gray-400">
Pick the chat model to generate text responses
</p>
@@ -1169,7 +1177,7 @@ export default function SettingsView() {
<FileMagnifyingGlass className="h-7 w-7 mr-2" />
Search
</CardHeader>
<CardContent className="overflow-hidden pb-12 grid gap-8">
<CardContent className="overflow-hidden pb-12 grid gap-8 h-fit">
<p className="text-gray-400">
Pick the search model to find your documents
</p>
@@ -1190,7 +1198,7 @@ export default function SettingsView() {
<Palette className="h-7 w-7 mr-2" />
Paint
</CardHeader>
<CardContent className="overflow-hidden pb-12 grid gap-8">
<CardContent className="overflow-hidden pb-12 grid gap-8 h-fit">
<p className="text-gray-400">
Pick the paint model to generate image responses
</p>
@@ -1217,7 +1225,7 @@ export default function SettingsView() {
<Waveform className="h-7 w-7 mr-2" />
Voice
</CardHeader>
<CardContent className="overflow-hidden pb-12 grid gap-8">
<CardContent className="overflow-hidden pb-12 grid gap-8 h-fit">
<p className="text-gray-400">
Pick the voice model to generate speech
responses