Total usage KPI

This commit is contained in:
Adrien Bouvais 2024-05-05 21:43:54 +02:00
parent c363f12664
commit bd514dd1e9
4 changed files with 47 additions and 17 deletions

31
Chat.go
View File

@ -17,7 +17,7 @@ func ChatPageHandler(c *fiber.Ctx) error {
func LoadModelSelectionHandler(c *fiber.Ctx) error {
CheckedModels := []string{"gpt-3.5-turbo"} // Default model
out, err := modelsPopoverTmpl.Execute(pongo2.Context{
out, err := pongo2.Must(pongo2.FromFile("views/partials/modelsPopover.html")).Execute(pongo2.Context{
"CompanyInfos": CompanyInfos,
"CheckedModels": CheckedModels,
})
@ -29,6 +29,35 @@ func LoadModelSelectionHandler(c *fiber.Ctx) error {
return c.SendString(out)
}
func LoadUsageKPIHandler(c *fiber.Ctx) error {
var TotalUsage float32
// Using the database. Get the sum of all usage.inputCost and outputCost
err := edgeClient.QuerySingle(edgeCtx, `
WITH
U := (
SELECT Usage
FILTER .user = global currentUser
)
SELECT sum(U.input_cost) + sum(U.output_cost)
`, &TotalUsage)
if err != nil {
fmt.Println("Error in edgedb.QuerySingle: in LoadUsageKPIHandler")
log.Fatal(err)
}
fmt.Println(TotalUsage)
out, err := pongo2.Must(pongo2.FromFile("views/partials/usagePopover.html")).Execute(pongo2.Context{
"TotalUsage": TotalUsage,
})
if err != nil {
c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": "Error rendering template",
})
}
return c.SendString(out)
}
func DeleteMessageHandler(c *fiber.Ctx) error {
messageId := c.FormValue("id")

View File

@ -11,12 +11,10 @@ import (
var userTmpl *pongo2.Template
var botTmpl *pongo2.Template
var modelsPopoverTmpl *pongo2.Template
func main() {
botTmpl = pongo2.Must(pongo2.FromFile("views/partials/message-bot.html"))
userTmpl = pongo2.Must(pongo2.FromFile("views/partials/message-user.html"))
modelsPopoverTmpl = pongo2.Must(pongo2.FromFile("views/partials/modelsPopover.html"))
// Import HTML using django engine/template
engine := django.New("./views", ".html")
@ -40,6 +38,7 @@ func main() {
app.Get("/loadChat", LoadChatHandler) // Load chat
app.Post("/deleteMessage", DeleteMessageHandler) // Delete message
app.Get("/loadModelSelection", LoadModelSelectionHandler) // Load model selection
app.Get("/loadUsageKPI", LoadUsageKPIHandler) // Load usage KPI
app.Get("/generateMultipleMessages", GenerateMultipleMessages) // Generate multiple messages
app.Get("/messageContent", GetMessageContentHandler)

View File

@ -8,20 +8,7 @@
<textarea class="textarea" placeholder="Type your message here..." name="message"></textarea>
<div class="button-group">
<hx hx-get="/loadModelSelection" hx-trigger="load" hx-swap="outerHTML" hx-target="this"></hx>
<div class="dropdown is-hoverable is-up">
<div class="dropdown-trigger">
<button class="button is-small" aria-haspopup="true" aria-controls="dropdown-menu4">
<span>Settings</span>
</button>
</div>
<div class="dropdown-menu" id="dropdown-menu4" role="menu">
<div class="dropdown-content">
<div class="dropdown-item">
<h5>Hello</h5>
</div>
</div>
</div>
</div>
<hx hx-get="/loadUsageKPI" hx-trigger="load" hx-swap="outerHTML" hx-target="this"></hx>
<button type="submit" class="send-button button is-primary is-small" hx-post="/requestMultipleMessages"
hx-swap="beforeend settle:200ms" hx-target="#chat-messages" id="chat-input-send-btn"
class="chat-input" hx-include="[name='message'], [name^='model-check-']">Send</button>

View File

@ -0,0 +1,15 @@
<div class="dropdown is-hoverable is-up">
<div class="dropdown-trigger">
<button class="button is-small" aria-haspopup="true" aria-controls="dropdown-menu4">
<span>Usage</span>
</button>
</div>
<div class="dropdown-menu" id="dropdown-menu4" role="menu">
<div class="dropdown-content">
<div class="dropdown-item">
<h5>Total Usage</h5>
<h5>{{ TotalUsage }}$</h5>
</div>
</div>
</div>
</div>