diff --git a/Chat.go b/Chat.go index c55dc81..cf9bcac 100644 --- a/Chat.go +++ b/Chat.go @@ -289,7 +289,7 @@ func generateWelcomeChatHTML() string { } NextMessages = append(NextMessages, nextMsg) - botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true}) + botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true, "DontShowName": true}) if err != nil { fmt.Println("Error executing bot template") panic(err) @@ -334,7 +334,7 @@ func generateHelpChatHTML() string { } NextMessages = append(NextMessages, nextMsg) - botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true}) + botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true, "DontShowName": true}) if err != nil { fmt.Println("Error executing bot template") panic(err) @@ -383,7 +383,7 @@ func generateEnterKeyChatHTML() string { } NextMessages = append(NextMessages, nextMsg) - botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true}) + botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true, "DontShowName": true}) if err != nil { fmt.Println("Error executing bot template") panic(err) @@ -463,7 +463,7 @@ func generateTermAndServiceChatHTML() string { } NextMessages = append(NextMessages, nextMsg) - botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true}) + botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true, "DontShowName": true}) if err != nil { fmt.Println("Error executing bot template") panic(err) @@ -842,7 +842,7 @@ func LoadSettingsHandler(c *fiber.Ctx) error { // Percent encoding of the email user.Email = url.QueryEscape(user.Email) - stripeSubLink := "https://billing.stripe.com/p/login/test_eVa5kC1q7dogaaIcMM?prefilled_email=" + user.Email + stripeSubLink := "https://billing.stripe.com/p/login/6oE6sc0PTfvq1Hi288?prefilled_email=" + user.Email openaiExists, anthropicExists, mistralExists, groqExists, gooseaiExists, googleExists := getExistingKeys(c) isPremium, isBasic := IsCurrentUserSubscribed(c) diff --git a/Stripe.go b/Stripe.go index 02f3a73..1c3ff2c 100644 --- a/Stripe.go +++ b/Stripe.go @@ -58,7 +58,7 @@ func generatePricingTableChatHTML(c *fiber.Ctx) string { } NextMessages = append(NextMessages, nextMsg) - botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true, "notFlex": true}) + botOut, err := botTmpl.Execute(pongo2.Context{"Messages": NextMessages, "ConversationAreaId": 0, "NotClickable": true, "notFlex": true, "DontShowName": true}) if err != nil { fmt.Println("Error executing template") panic(err) diff --git a/views/partials/chat-input.html b/views/partials/chat-input.html index 50eb4ba..9eb7406 100644 --- a/views/partials/chat-input.html +++ b/views/partials/chat-input.html @@ -1,4 +1,4 @@ -{% if IsSubscribed or not IsLimiteReached %} +{% if IsSubscribed or not IsLimiteReached or not IsLogin %}
It was build with simplicity in mind. The goal being to have a minimalist chatbot for all models.
-I don't want fancy stuff like importing files or images. I want the chatbot to be as simple as possible.
-Following this philosophy, I was able to focus on other way to improve the current way we use AI chatbots.
-My first complain was that there is a lot of models, and they are all good at different things.
-But if you want to use all of them, it get impractical and very expensive.
+JADE was built with simplicity in mind. The goal is to have a minimalist chatbot that supports all models without + unnecessary features like importing files or images. This focus on simplicity allows us to improve how we use AI + chatbots in other ways.
+ +One of my main concerns was the variety of models available, each excelling in different areas. Using all of them can + be impractical and very expensive.
So I decided to focus my chatbot on this and created the first Multi-Models chatbot.
-The idea is to use multiple models in the same conversation.
-There is 2 things to understand about this:
-1. When asking a question, you can ask it to multiple models. You can them compare and pick the best one.
-2. The next message will use the text of the selected message for all models. So the response from GPT4 can be then - use by Claude Haiku for example.
+To address this, I created the first Multi-Model chatbot. The idea is to use multiple models within the same + conversation. Here are the key points:
+To use JADE, you need to sign up for an API key to providers. There is 5 providers available:
+You can enter an API key in the settings menu. One enter you get access to all models from this provider. Check the + appendix for more details about available models.
Once an API key enter, you have access to all models from that provider.
-If you open the Bots menu (next to send), you will find a list of all your Bots. A bot have a name, a model and some - parameters.
-You can create a new bot by clicking on the "+" button. And enter a name and a model. Additionaly, you can add choose - a temperature and a system prompt.
-Once created, you can select it by clicking on it and order it by draging it. You can keep SHIFT pressed and click on - 2 Bots to select them and all in between.
-You can also delete selected Bots by clicking on the trash can.
+Once you enter an API key, you gain access to all models from that provider. In the Bots menu (next to the send + button), you'll find a list of all your Bots.
+To create a new bot, click the "+" button, enter a name and a model, and optionally set a temperature and a system + prompt. Once created, you can select a bot by clicking on it and reorder it by dragging. Hold SHIFT and click to + select multiple bots. You can delete selected bots by clicking the trash can icon.
-A conversation is a list of messages. You have a Default conversation that is created when you first sign in.
-You can create a new conversation by clicking on the "+" button. You can also delete a conversation by clicking on - the trash can.
-You can not delete the Default conversation but you can Archive it.
+A conversation is a list of messages. A Default conversation is created when you first sign in. You can create a new + conversation by clicking the "+" button and delete one by clicking the trash can icon. The Default conversation + cannot be deleted but can be renamed.
You can see the usage of your account in the Usage menu. You can see how many messages you have sent and received, - and how much the API costed you.
\ No newline at end of file +In the Usage menu, you can see the usage of your account, including the number of messages sent and received and the + associated API costs.
+ +The following is a list of available models for each provider:
+