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 {
|
func LoadModelSelectionHandler(c *fiber.Ctx) error {
|
||||||
CheckedModels := []string{"gpt-3.5-turbo"} // Default model
|
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,
|
"CompanyInfos": CompanyInfos,
|
||||||
"CheckedModels": CheckedModels,
|
"CheckedModels": CheckedModels,
|
||||||
})
|
})
|
||||||
@ -29,6 +29,35 @@ func LoadModelSelectionHandler(c *fiber.Ctx) error {
|
|||||||
return c.SendString(out)
|
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 {
|
func DeleteMessageHandler(c *fiber.Ctx) error {
|
||||||
messageId := c.FormValue("id")
|
messageId := c.FormValue("id")
|
||||||
|
|
||||||
|
3
main.go
3
main.go
@ -11,12 +11,10 @@ import (
|
|||||||
|
|
||||||
var userTmpl *pongo2.Template
|
var userTmpl *pongo2.Template
|
||||||
var botTmpl *pongo2.Template
|
var botTmpl *pongo2.Template
|
||||||
var modelsPopoverTmpl *pongo2.Template
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
botTmpl = pongo2.Must(pongo2.FromFile("views/partials/message-bot.html"))
|
botTmpl = pongo2.Must(pongo2.FromFile("views/partials/message-bot.html"))
|
||||||
userTmpl = pongo2.Must(pongo2.FromFile("views/partials/message-user.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
|
// Import HTML using django engine/template
|
||||||
engine := django.New("./views", ".html")
|
engine := django.New("./views", ".html")
|
||||||
@ -40,6 +38,7 @@ func main() {
|
|||||||
app.Get("/loadChat", LoadChatHandler) // Load chat
|
app.Get("/loadChat", LoadChatHandler) // Load chat
|
||||||
app.Post("/deleteMessage", DeleteMessageHandler) // Delete message
|
app.Post("/deleteMessage", DeleteMessageHandler) // Delete message
|
||||||
app.Get("/loadModelSelection", LoadModelSelectionHandler) // Load model selection
|
app.Get("/loadModelSelection", LoadModelSelectionHandler) // Load model selection
|
||||||
|
app.Get("/loadUsageKPI", LoadUsageKPIHandler) // Load usage KPI
|
||||||
app.Get("/generateMultipleMessages", GenerateMultipleMessages) // Generate multiple messages
|
app.Get("/generateMultipleMessages", GenerateMultipleMessages) // Generate multiple messages
|
||||||
app.Get("/messageContent", GetMessageContentHandler)
|
app.Get("/messageContent", GetMessageContentHandler)
|
||||||
|
|
||||||
|
@ -8,20 +8,7 @@
|
|||||||
<textarea class="textarea" placeholder="Type your message here..." name="message"></textarea>
|
<textarea class="textarea" placeholder="Type your message here..." name="message"></textarea>
|
||||||
<div class="button-group">
|
<div class="button-group">
|
||||||
<hx hx-get="/loadModelSelection" hx-trigger="load" hx-swap="outerHTML" hx-target="this"></hx>
|
<hx hx-get="/loadModelSelection" hx-trigger="load" hx-swap="outerHTML" hx-target="this"></hx>
|
||||||
<div class="dropdown is-hoverable is-up">
|
<hx hx-get="/loadUsageKPI" hx-trigger="load" hx-swap="outerHTML" hx-target="this"></hx>
|
||||||
<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>
|
|
||||||
<button type="submit" class="send-button button is-primary is-small" hx-post="/requestMultipleMessages"
|
<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"
|
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>
|
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