- Introduced `log_info_generate.go` to implement functions for generating various log information, including text, WebSocket, and audio details. - Enhanced `LogsTable` component to display the 'group' information from the log data, improving the visibility of grouped logs in the UI.
46 lines
2.1 KiB
Go
46 lines
2.1 KiB
Go
package service
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"one-api/dto"
|
|
relaycommon "one-api/relay/common"
|
|
)
|
|
|
|
func GenerateTextOtherInfo(ctx *gin.Context, relayInfo *relaycommon.RelayInfo, modelRatio, groupRatio, completionRatio, modelPrice float64) map[string]interface{} {
|
|
other := make(map[string]interface{})
|
|
other["model_ratio"] = modelRatio
|
|
other["group_ratio"] = groupRatio
|
|
other["completion_ratio"] = completionRatio
|
|
other["model_price"] = modelPrice
|
|
other["group"] = relayInfo.Group
|
|
other["frt"] = float64(relayInfo.FirstResponseTime.UnixMilli() - relayInfo.StartTime.UnixMilli())
|
|
adminInfo := make(map[string]interface{})
|
|
adminInfo["use_channel"] = ctx.GetStringSlice("use_channel")
|
|
other["admin_info"] = adminInfo
|
|
return other
|
|
}
|
|
|
|
func GenerateWssOtherInfo(ctx *gin.Context, relayInfo *relaycommon.RelayInfo, usage *dto.RealtimeUsage, modelRatio, groupRatio, completionRatio, audioRatio, audioCompletionRatio, modelPrice float64) map[string]interface{} {
|
|
info := GenerateTextOtherInfo(ctx, relayInfo, modelRatio, groupRatio, completionRatio, modelPrice)
|
|
info["ws"] = true
|
|
info["audio_input"] = usage.InputTokenDetails.AudioTokens
|
|
info["audio_output"] = usage.OutputTokenDetails.AudioTokens
|
|
info["text_input"] = usage.InputTokenDetails.TextTokens
|
|
info["text_output"] = usage.OutputTokenDetails.TextTokens
|
|
info["audio_ratio"] = audioRatio
|
|
info["audio_completion_ratio"] = audioCompletionRatio
|
|
return info
|
|
}
|
|
|
|
func GenerateAudioOtherInfo(ctx *gin.Context, relayInfo *relaycommon.RelayInfo, usage *dto.Usage, modelRatio, groupRatio, completionRatio, audioRatio, audioCompletionRatio, modelPrice float64) map[string]interface{} {
|
|
info := GenerateTextOtherInfo(ctx, relayInfo, modelRatio, groupRatio, completionRatio, modelPrice)
|
|
info["audio"] = true
|
|
info["audio_input"] = usage.PromptTokensDetails.AudioTokens
|
|
info["audio_output"] = usage.CompletionTokenDetails.AudioTokens
|
|
info["text_input"] = usage.PromptTokensDetails.TextTokens
|
|
info["text_output"] = usage.CompletionTokenDetails.TextTokens
|
|
info["audio_ratio"] = audioRatio
|
|
info["audio_completion_ratio"] = audioCompletionRatio
|
|
return info
|
|
}
|