Browse Source

修改请求日志处理Content类型推断一个BUG

liwei 1 month ago
parent
commit
1e60de34db
3 changed files with 20 additions and 2 deletions
  1. 2 0
      desc/openapi/chat.api
  2. 16 2
      internal/logic/chat/chat_completions_logic.go
  3. 2 0
      internal/types/types.go

+ 2 - 0
desc/openapi/chat.api

@@ -125,6 +125,8 @@ type (
 	    Message ChatCompletionMessage  `json:"message,omitempty"`
         // A chat completion message generated by the model stream mode.
 	    Delta ChatCompletionMessage  `json:"delta,omitempty"`
+		//
+		Logprobs string `json:"logprobs"`
     }
 
     CompletionUsageCompletionTokensDetails {

+ 16 - 2
internal/logic/chat/chat_completions_logic.go

@@ -3,7 +3,6 @@ package chat
 import (
 	"context"
 	"errors"
-	"fmt"
 	"strconv"
 
 	"wechat-api/ent"
@@ -164,7 +163,21 @@ func (l *ChatCompletionsLogic) appendUsageDetailLog(authToken string, req *types
 	completionToken := uint64(resp.Usage.CompletionTokens)
 	totalTokens := promptTokens + completionToken
 
-	fmt.Printf("====>n appendUsageDetailLog:%v|||%T\n", req.Messages[0].Content, req.Messages[0].Content)
+	msgContent := ""
+	switch val := req.Messages[0].Content.(type) {
+	case string:
+		msgContent = val
+	case []map[string]string:
+		msgContent = val[0]["type"]
+	case []interface{}:
+		if len(val) > 0 {
+			if valc, ok := val[0].(map[string]interface{}); ok {
+				if valcc, ok := valc["text"]; ok {
+					msgContent, _ = valcc.(string)
+				}
+			}
+		}
+	}
 
 	res, err := l.svcCtx.DB.UsageDetail.Create().
 		SetNotNilType(&logType).
@@ -173,6 +186,7 @@ func (l *ChatCompletionsLogic) appendUsageDetailLog(authToken string, req *types
 		SetNotNilSessionID(&sessionId).
 		SetNillableApp(&workIdx).
 		//SetNillableRequest(&req.Messages[0].Content).
+		SetNillableRequest(&msgContent).
 		SetNillableResponse(&resp.Choices[0].Message.Content).
 		SetNillableOrganizationID(&orgId).
 		SetOriginalData(rawReqResp).

+ 2 - 0
internal/types/types.go

@@ -2024,6 +2024,8 @@ type ChatCompletionChoice struct {
 	Message ChatCompletionMessage `json:"message,omitempty"`
 	// A chat completion message generated by the model stream mode.
 	Delta ChatCompletionMessage `json:"delta,omitempty"`
+	//
+	Logprobs string `json:"logprobs"`
 }
 
 type CompletionUsageCompletionTokensDetails struct {