package main import ( "encoding/json" "strconv" "github.com/edgedb/edgedb-go" "github.com/gofiber/fiber/v2" ) // LLM stuff func deleteLLM(c *fiber.Ctx) error { var selectedLLMIds []string err := json.Unmarshal([]byte(c.FormValue("selectedLLMIds")), &selectedLLMIds) if err != nil { // Handle the error panic(err) } for _, id := range selectedLLMIds { idUUID, _ := edgedb.ParseUUID(id) err := edgeClient.Execute(edgeCtx, ` UPDATE LLM FILTER .id = $0 AND .user = global currentUser SET { to_delete := true }; `, idUUID) if err != nil { panic(err) } } deleteLLMtoDelete() return c.SendString(GenerateModelPopoverHTML(true)) } func deleteLLMtoDelete() { err := edgeClient.Execute(edgeCtx, ` delete LLM filter .to_delete = true and not exists( select Message filter .llm = LLM ); `) if err != nil { panic(err) } } func createLLM(c *fiber.Ctx) error { name := c.FormValue("model-name-input") modelID := c.FormValue("selectedLLMId") temperature := c.FormValue("temperature-slider") systemPrompt := c.FormValue("model-prompt-input") f, _ := strconv.ParseFloat(temperature, 32) temperatureFloat := float32(f) err := edgeClient.Execute(edgeCtx, ` INSERT LLM { name := $0, context := $1, temperature := $2, modelInfo := (SELECT ModelInfo FILTER .modelID = $3 LIMIT 1), user := global currentUser } `, name, systemPrompt, temperatureFloat, modelID) if err != nil { panic(err) } return c.SendString(GenerateModelPopoverHTML(true)) }