All error are panic now

This commit is contained in:
Adrien Bouvais 2024-05-20 09:24:02 +02:00
parent 74e9673fc4
commit ac94ae08f9
13 changed files with 60 additions and 168 deletions

49
Chat.go
View File

@ -2,8 +2,6 @@ package main
import (
"context"
"fmt"
"log"
"sort"
"time"
@ -27,8 +25,7 @@ func DeleteMessageHandler(c *fiber.Ctx) error {
messageUUID, err := edgedb.ParseUUID(messageId)
if err != nil {
fmt.Println("Error in uuid.FromString: in DeleteMessageHandler")
fmt.Println(err)
panic(err)
}
// Delete all messages
@ -39,8 +36,7 @@ func DeleteMessageHandler(c *fiber.Ctx) error {
FILTER .position >= messageArea.position AND .conversation = messageArea.conversation;
`, messageUUID)
if err != nil {
fmt.Println("Error in edgeClient.Execute: in DeleteMessageHandler")
fmt.Println(err)
panic(err)
}
return c.SendString(generateChatHTML())
@ -146,7 +142,7 @@ func GetMessageContentHandler(c *fiber.Ctx) error {
.id = <uuid>$0;
`, &selectedMessage, messageUUID)
if err != nil {
log.Fatal(err)
panic(err)
}
if onlyContent == "true" {
@ -172,7 +168,7 @@ func GetMessageContentHandler(c *fiber.Ctx) error {
SET {selected := false};
`, messageUUID)
if err != nil {
log.Fatal(err)
panic(err)
}
_ = edgeClient.Execute(edgeCtx, `
@ -254,7 +250,7 @@ func GetEditMessageFormHandler(c *fiber.Ctx) error {
FILTER .id = <uuid>$0;
`, &message, idUUID)
if err != nil {
log.Fatal(err)
panic(err)
}
tmpl := pongo2.Must(pongo2.FromFile("views/partials/edit-message-form.html"))
@ -277,15 +273,12 @@ func RedoMessageHandler(c *fiber.Ctx) error {
FILTER .position > messageArea.position AND .conversation = messageArea.conversation;
`, messageUUID)
if err != nil {
fmt.Println("Error in edgeClient.Execute: in DeleteMessageHandler")
fmt.Println(err)
panic(err)
}
messageOut, err := botTmpl.Execute(pongo2.Context{"IsPlaceholder": true})
if err != nil {
c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": "Error rendering template",
})
panic(err)
}
return c.SendString(messageOut)
@ -298,8 +291,7 @@ func ClearChatHandler(c *fiber.Ctx) error {
FILTER .user = global currentUser AND .name = "Default";
`)
if err != nil {
fmt.Println("Error in edgeClient.Execute: in ClearChatHandler")
fmt.Println(err)
panic(err)
}
return c.SendString(generateChatHTML())
@ -321,8 +313,7 @@ func LoadUsageKPIHandler(c *fiber.Ctx) error {
SELECT sum(U.input_cost) + sum(U.output_cost)
`, &TotalUsage)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in LoadUsageKPIHandler")
log.Fatal(err)
panic(err)
}
now := time.Now()
@ -338,8 +329,7 @@ func LoadUsageKPIHandler(c *fiber.Ctx) error {
SELECT sum(U.input_cost) + sum(U.output_cost)
`, &TodayUsage, now.Add(time.Hour*-24))
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in LoadUsageKPIHandler")
log.Fatal(err)
panic(err)
}
var WeekUsage float32
@ -368,9 +358,7 @@ func LoadUsageKPIHandler(c *fiber.Ctx) error {
"TotalUsage": TotalUsage, "TodayUsage": TodayUsage, "WeekUsage": WeekUsage, "MonthUsage": MonthUsage,
})
if err != nil {
c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": "Error rendering template",
})
panic(err)
}
return c.SendString(out)
}
@ -392,9 +380,7 @@ func LoadKeysHandler(c *fiber.Ctx) error {
"AnyExists": openaiExists || anthropicExists || mistralExists || groqExists || gooseaiExists || googleExists,
})
if err != nil {
c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": "Error rendering template",
})
panic(err)
}
return c.SendString(out)
}
@ -419,8 +405,7 @@ func LoadModelSelectionHandler(c *fiber.Ctx) error {
FILTER .user = global currentUser AND .name != 'none'
`, &llms)
if err != nil {
fmt.Println("Error in edgeClient.Query: in LoadModelSelectionHandler")
log.Fatal(err)
panic(err)
}
for i := 0; i < len(llms); i++ {
@ -442,9 +427,7 @@ func LoadModelSelectionHandler(c *fiber.Ctx) error {
"LLMs": llms,
})
if err != nil {
c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": "Error rendering template",
})
panic(err)
}
return c.SendString(out)
@ -456,9 +439,7 @@ func LoadSettingsHandler(c *fiber.Ctx) error {
}
out, err := pongo2.Must(pongo2.FromFile("views/partials/popover-settings.html")).Execute(pongo2.Context{"IsLogin": checkIfLogin()})
if err != nil {
c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": "Error rendering template",
})
panic(err)
}
return c.SendString(out)
}

9
LLM.go
View File

@ -1,8 +1,6 @@
package main
import (
"fmt"
"github.com/edgedb/edgedb-go"
"github.com/flosch/pongo2"
"github.com/gofiber/fiber/v2"
@ -18,8 +16,7 @@ func deleteLLM(c *fiber.Ctx) error {
FILTER .id = <uuid>$0;
`, idUUID)
if err != nil {
fmt.Println("Error in edgeClient.Execute: in deleteLLM")
fmt.Println(err)
panic(err)
}
return c.SendString("")
@ -28,9 +25,7 @@ func deleteLLM(c *fiber.Ctx) error {
func openLlmModal(c *fiber.Ctx) error {
out, err := pongo2.Must(pongo2.FromFile("views/partials/modal-llm-setting.html")).Execute(pongo2.Context{})
if err != nil {
c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": "Error rendering template",
})
panic(err)
}
return c.SendString(out)
}

View File

@ -3,7 +3,6 @@ package main
import (
"context"
"fmt"
"log"
"strings"
"sync"
"time"
@ -50,8 +49,7 @@ func GeneratePlaceholderHandler(c *fiber.Ctx) error {
.id = <uuid>$0;
`, &selectedLLM, idUUID)
if err != nil {
fmt.Println("Error trying to select the unique LLM")
log.Fatal(err)
panic(err)
}
selectedLLMs = append(selectedLLMs, selectedLLM)
}
@ -136,8 +134,7 @@ func GenerateMultipleMessagesHandler(c *fiber.Ctx) error {
FILTER .id = <uuid>$0;
`, &message, messageID)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in HandleGenerateMultipleMessages 1")
log.Fatal(err)
panic(err)
}
templateMessage := TemplateMessage{
@ -165,8 +162,7 @@ func GenerateMultipleMessagesHandler(c *fiber.Ctx) error {
"ConversationAreaId": message.Area.Position,
})
if err != nil {
fmt.Println("Error in modelSelecBtnTmpl.Execute: in HandleGenerateMultipleMessages 3")
log.Fatal(err)
panic(err)
}
outBtn = strings.ReplaceAll(outBtn, "\n", "")
@ -192,8 +188,7 @@ func GenerateMultipleMessagesHandler(c *fiber.Ctx) error {
"ConversationAreaId": message.Area.Position,
})
if err != nil {
fmt.Println("Error in modelSelecBtnTmpl.Execute: in HandleGenerateMultipleMessages 3")
log.Fatal(err)
panic(err)
}
// Replace newline characters to prevent premature termination

View File

@ -40,7 +40,7 @@ func addAnthropicMessage(llm LLM, selected bool) edgedb.UUID {
chatCompletion, err := RequestAnthropic(llm.Model.ModelID, Messages, int(llm.Model.MaxToken), float64(llm.Temperature))
if err != nil {
fmt.Println("Error:", err)
panic(err)
} else if len(chatCompletion.Content) == 0 {
fmt.Println("No response from Anthropic")
id := insertBotMessage("No response from Anthropic", selected, llm.ID)
@ -49,7 +49,6 @@ func addAnthropicMessage(llm LLM, selected bool) edgedb.UUID {
id := insertBotMessage(chatCompletion.Content[0].Text, selected, llm.ID)
return id
}
return edgedb.UUID{}
}
func TestAnthropicKey(apiKey string) bool {

View File

@ -49,7 +49,7 @@ func addGoogleMessage(llm LLM, selected bool) edgedb.UUID {
chatCompletion, err := RequestGoogle(llm.Model.ModelID, Messages, float64(llm.Temperature))
if err != nil {
fmt.Println("Error:", err)
panic(err)
} else if len(chatCompletion.Choices) == 0 {
fmt.Println("No response from OpenAI")
id := insertBotMessage("No response from OpenAI", selected, llm.ID)
@ -59,7 +59,6 @@ func addGoogleMessage(llm LLM, selected bool) edgedb.UUID {
id := insertBotMessage(Content, selected, llm.ID)
return id
}
return edgedb.UUID{}
}
func TestGoogleKey(apiKey string) bool {

View File

@ -34,7 +34,7 @@ func addGooseaiMessage(llm LLM, selected bool) edgedb.UUID {
chatCompletion, err := RequestGooseai(llm.Model.ModelID, Messages, float64(llm.Temperature))
if err != nil {
fmt.Println("Error:", err)
panic(err)
} else if len(chatCompletion.Choices) == 0 {
fmt.Println("No response from GooseAI")
id := insertBotMessage("No response from GooseAI", selected, llm.ID)
@ -44,7 +44,6 @@ func addGooseaiMessage(llm LLM, selected bool) edgedb.UUID {
id := insertBotMessage(Content, selected, llm.ID)
return id
}
return edgedb.UUID{}
}
func TestGooseaiKey(apiKey string) bool {

View File

@ -42,7 +42,7 @@ func addGroqMessage(llm LLM, selected bool) edgedb.UUID {
chatCompletion, err := RequestGroq(llm.Model.ModelID, Messages, float64(llm.Temperature))
if err != nil {
fmt.Println("Error:", err)
panic(err)
} else if len(chatCompletion.Choices) == 0 {
fmt.Println("No response from Groq")
id := insertBotMessage("No response from Groq", selected, llm.ID)
@ -52,7 +52,6 @@ func addGroqMessage(llm LLM, selected bool) edgedb.UUID {
id := insertBotMessage(Content, selected, llm.ID)
return id
}
return edgedb.UUID{}
}
func TestGroqKey(apiKey string) bool {

View File

@ -41,7 +41,7 @@ func addMistralMessage(llm LLM, selected bool) edgedb.UUID {
chatCompletion, err := RequestMistral(llm.Model.ModelID, Messages, float64(llm.Temperature))
if err != nil {
fmt.Println("Error:", err)
panic(err)
} else if len(chatCompletion.Choices) == 0 {
fmt.Println("No response from Mistral")
id := insertBotMessage("No response from Mistral", selected, llm.ID)
@ -51,7 +51,6 @@ func addMistralMessage(llm LLM, selected bool) edgedb.UUID {
id := insertBotMessage(Content, selected, llm.ID)
return id
}
return edgedb.UUID{}
}
func TestMistralKey(apiKey string) bool {

View File

@ -42,7 +42,7 @@ func addOpenaiMessage(llm LLM, selected bool) edgedb.UUID {
chatCompletion, err := RequestOpenai(llm.Model.ModelID, Messages, float64(llm.Temperature))
if err != nil {
fmt.Println("Error:", err)
panic(err)
} else if len(chatCompletion.Choices) == 0 {
fmt.Println("No response from OpenAI")
id := insertBotMessage("No response from OpenAI", selected, llm.ID)
@ -52,7 +52,6 @@ func addOpenaiMessage(llm LLM, selected bool) edgedb.UUID {
id := insertBotMessage(Content, selected, llm.ID)
return id
}
return edgedb.UUID{}
}
func TestOpenaiKey(apiKey string) bool {

View File

@ -1,37 +0,0 @@
package main
import (
"github.com/gofiber/fiber/v2"
)
type Command struct {
Name string
Trigger string
Handler func(c *fiber.Ctx) string
}
var Commands []Command
func init() {
Commands = []Command{
{
Name: "Clear",
Trigger: "clear",
Handler: ClearCommandHandler,
},
}
}
func ClearCommandHandler(c *fiber.Ctx) string {
// DOTO clear the chat
return "<hx hx-get='/loadChat' hx-trigger='load' hx-swap='outerHTML' hx-target='#chat-container'></hx>"
}
func DetectCommand(message string, c *fiber.Ctx) (string, bool) {
for _, command := range Commands {
if command.Trigger == message {
return command.Handler(c), true
}
}
return "", false // No command detected
}

View File

@ -2,8 +2,6 @@ package main
import (
"context"
"fmt"
"log"
"time"
"github.com/edgedb/edgedb-go"
@ -93,8 +91,7 @@ func init() {
var ctx = context.Background()
client, err := edgedb.CreateClient(ctx, edgedb.Options{})
if err != nil {
fmt.Println("Error in edgedb.CreateClient: in init")
log.Fatal(err)
panic(err)
}
edgeCtx = ctx
@ -110,8 +107,7 @@ func getLastArea() edgedb.UUID {
limit 1
`, &inserted)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in getLastArea")
log.Fatal(err)
panic(err)
}
return inserted.id
}
@ -135,8 +131,7 @@ func addUsage(inputCost float32, outputCost float32, inputToken int32, outputTok
}
`, inputCost, outputCost, inputToken, outputToken, modelID)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addUsage")
log.Fatal(err)
panic(err)
}
}
@ -149,8 +144,7 @@ func insertNewConversation() edgedb.UUID {
}
`, &inserted)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in insertNewConversation")
log.Fatal(err)
panic(err)
}
return inserted.id
}
@ -182,8 +176,7 @@ func insertArea() (edgedb.UUID, int64) {
}
`, &inserted)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in insertArea")
log.Fatal(err)
panic(err)
}
var positionSet struct{ position int64 }
@ -196,8 +189,7 @@ func insertArea() (edgedb.UUID, int64) {
LIMIT 1
`, &positionSet)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in insertArea")
log.Fatal(err)
panic(err)
}
return inserted.id, positionSet.position
@ -227,8 +219,7 @@ func insertUserMessage(content string) edgedb.UUID {
}
`, &inserted, "user", content, lastAreaID)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in insertUserMessage")
log.Fatal(err)
panic(err)
}
return inserted.id
}
@ -259,8 +250,7 @@ func insertBotMessage(content string, selected bool, llmUUID edgedb.UUID) edgedb
}
`, &inserted, "bot", llmUUID, content, selected, lastAreaID)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in insertBotMessage")
log.Fatal(err)
panic(err)
}
return inserted.id
}
@ -294,8 +284,7 @@ func getAllMessages() []Message {
ORDER BY .date ASC
`, &messages)
if err != nil {
fmt.Println("Error in edgedb.Query: in getAllMessages")
fmt.Println(err)
panic(err)
}
return messages
@ -328,8 +317,7 @@ func getAllSelectedMessages() []Message {
ORDER BY .date ASC
`, &messages)
if err != nil {
fmt.Println("Error in edgedb.Query: in getAllMessages")
fmt.Println(err)
panic(err)
}
return messages
@ -339,8 +327,7 @@ func getCurrentUserKeys() []Key {
var result []Key
err := edgeClient.Query(edgeCtx, "SELECT global currentUser.setting.keys", &result)
if err != nil {
fmt.Println("Error in edgedb.Query: in getCurrentUserKeys")
fmt.Println(err)
panic(err)
}
return result
}

59
main.go
View File

@ -3,11 +3,13 @@ package main
import (
"bufio"
"fmt"
"log"
"sync"
"github.com/flosch/pongo2"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/logger"
"github.com/gofiber/fiber/v2/middleware/recover"
"github.com/gofiber/template/django/v3"
)
@ -54,6 +56,7 @@ func main() {
// Add default logger
app.Use(logger.New())
app.Use(recover.New())
// Add static files
app.Static("/", "./static")
@ -133,7 +136,7 @@ func main() {
})
// Start server
app.Listen(":8080")
log.Fatal(app.Listen(":3000"))
}
func addKeys(c *fiber.Ctx) error {
@ -160,8 +163,7 @@ func addKeys(c *fiber.Ctx) error {
);
`, &Exists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addOpenaiKey")
fmt.Println(err)
panic(err)
}
if Exists {
@ -173,8 +175,7 @@ func addKeys(c *fiber.Ctx) error {
}
`, "openai", openaiKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addOpenaiKey")
fmt.Println(err)
panic(err)
}
} else {
err = edgeClient.Execute(edgeCtx, `
@ -191,8 +192,7 @@ func addKeys(c *fiber.Ctx) error {
)
}`, openaiKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addOpenaiKey")
fmt.Println(err)
panic(err)
}
}
}
@ -212,8 +212,7 @@ func addKeys(c *fiber.Ctx) error {
);
`, &Exists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addAnthropicKey")
fmt.Println(err)
panic(err)
}
if Exists {
@ -224,8 +223,7 @@ func addKeys(c *fiber.Ctx) error {
}
`, anthropicKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addAnthropicKey")
fmt.Println(err)
panic(err)
}
} else {
err = edgeClient.Execute(edgeCtx, `
@ -242,8 +240,7 @@ func addKeys(c *fiber.Ctx) error {
)
}`, anthropicKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addAnthropicKey")
fmt.Println(err)
panic(err)
}
}
}
@ -263,8 +260,7 @@ func addKeys(c *fiber.Ctx) error {
);
`, &Exists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addMistralKey")
fmt.Println(err)
panic(err)
}
if Exists {
@ -275,8 +271,7 @@ func addKeys(c *fiber.Ctx) error {
}
`, mistralKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addMistralKey")
fmt.Println(err)
panic(err)
}
} else {
err = edgeClient.Execute(edgeCtx, `
@ -293,8 +288,7 @@ func addKeys(c *fiber.Ctx) error {
)
}`, mistralKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addMistralKey")
fmt.Println(err)
panic(err)
}
}
}
@ -314,8 +308,7 @@ func addKeys(c *fiber.Ctx) error {
);
`, &Exists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addGroqKey")
fmt.Println(err)
panic(err)
}
if Exists {
@ -326,8 +319,7 @@ func addKeys(c *fiber.Ctx) error {
}
`, groqKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addGroqKey")
fmt.Println(err)
panic(err)
}
} else {
err = edgeClient.Execute(edgeCtx, `
@ -344,8 +336,7 @@ func addKeys(c *fiber.Ctx) error {
)
}`, groqKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addGroqKey")
fmt.Println(err)
panic(err)
}
}
}
@ -365,8 +356,7 @@ func addKeys(c *fiber.Ctx) error {
);
`, &Exists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addGooseaiKey")
fmt.Println(err)
panic(err)
}
if Exists {
@ -377,8 +367,7 @@ func addKeys(c *fiber.Ctx) error {
}
`, gooseaiKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addGooseaiKey")
fmt.Println(err)
panic(err)
}
} else {
err = edgeClient.Execute(edgeCtx, `
@ -395,8 +384,7 @@ func addKeys(c *fiber.Ctx) error {
)
}`, gooseaiKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addGooseaiKey")
fmt.Println(err)
panic(err)
}
}
}
@ -416,8 +404,7 @@ func addKeys(c *fiber.Ctx) error {
);
`, &Exists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addGoogleKey")
fmt.Println(err)
panic(err)
}
if Exists {
@ -428,8 +415,7 @@ func addKeys(c *fiber.Ctx) error {
}
`, googleKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addGoogleKey")
fmt.Println(err)
panic(err)
}
} else {
err = edgeClient.Execute(edgeCtx, `
@ -446,8 +432,7 @@ func addKeys(c *fiber.Ctx) error {
)
}`, googleKey)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in addGoogleKey")
fmt.Println(err)
panic(err)
}
}
}

View File

@ -2,7 +2,6 @@ package main
import (
"bytes"
"fmt"
"regexp"
"github.com/yuin/goldmark"
@ -59,8 +58,6 @@ func getExistingKeys() (bool, bool, bool, bool, bool, bool) {
);
`, &openaiExists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle checking for openai: ", err)
//fatal error
panic(err)
}
@ -71,7 +68,6 @@ func getExistingKeys() (bool, bool, bool, bool, bool, bool) {
);
`, &anthropicExists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle checking for anthropic: ", err)
panic(err)
}
@ -82,7 +78,6 @@ func getExistingKeys() (bool, bool, bool, bool, bool, bool) {
);
`, &mistralExists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle checking for mistral: ", err)
panic(err)
}
@ -93,7 +88,6 @@ func getExistingKeys() (bool, bool, bool, bool, bool, bool) {
);
`, &groqExists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle checking for mistral: ", err)
panic(err)
}
@ -104,7 +98,6 @@ func getExistingKeys() (bool, bool, bool, bool, bool, bool) {
);
`, &gooseaiExists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle checking for gooseai: ", err)
panic(err)
}
@ -115,7 +108,6 @@ func getExistingKeys() (bool, bool, bool, bool, bool, bool) {
);
`, &googleExists)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle checking for google: ", err)
panic(err)
}