Total usage KPI
This commit is contained in:
parent
c363f12664
commit
bd514dd1e9
31
Chat.go
31
Chat.go
@ -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")
|
||||
|
||||
|
3
main.go
3
main.go
@ -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)
|
||||
|
||||
|
@ -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>
|
||||
|
15
views/partials/usagePopover.html
Normal file
15
views/partials/usagePopover.html
Normal 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>
|
Loading…
x
Reference in New Issue
Block a user