Преглед на файлове

Merge branch 'feature/compapi'

* feature/compapi:
  适配 go 官方 sdk
  去除一处无用分支
  修改请求日志处理Content类型推断一个BUG
boweniac преди 1 месец
родител
ревизия
e1874acc64
променени са 4 файла, в които са добавени 19 реда и са изтрити 3 реда
  1. 2 0
      desc/openapi/chat.api
  2. 14 2
      internal/logic/chat/chat_completions_logic.go
  3. 2 0
      internal/types/types.go
  4. 1 1
      internal/utils/compapi/func.go

+ 2 - 0
desc/openapi/chat.api

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

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

@@ -3,7 +3,6 @@ package chat
 import (
 import (
 	"context"
 	"context"
 	"errors"
 	"errors"
-	"fmt"
 	"strconv"
 	"strconv"
 
 
 	"wechat-api/ent"
 	"wechat-api/ent"
@@ -164,7 +163,19 @@ func (l *ChatCompletionsLogic) appendUsageDetailLog(authToken string, req *types
 	completionToken := uint64(resp.Usage.CompletionTokens)
 	completionToken := uint64(resp.Usage.CompletionTokens)
 	totalTokens := promptTokens + completionToken
 	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 []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().
 	res, err := l.svcCtx.DB.UsageDetail.Create().
 		SetNotNilType(&logType).
 		SetNotNilType(&logType).
@@ -173,6 +184,7 @@ func (l *ChatCompletionsLogic) appendUsageDetailLog(authToken string, req *types
 		SetNotNilSessionID(&sessionId).
 		SetNotNilSessionID(&sessionId).
 		SetNillableApp(&workIdx).
 		SetNillableApp(&workIdx).
 		//SetNillableRequest(&req.Messages[0].Content).
 		//SetNillableRequest(&req.Messages[0].Content).
+		SetNillableRequest(&msgContent).
 		SetNillableResponse(&resp.Choices[0].Message.Content).
 		SetNillableResponse(&resp.Choices[0].Message.Content).
 		SetNillableOrganizationID(&orgId).
 		SetNillableOrganizationID(&orgId).
 		SetOriginalData(rawReqResp).
 		SetOriginalData(rawReqResp).

+ 2 - 0
internal/types/types.go

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

+ 1 - 1
internal/utils/compapi/func.go

@@ -95,7 +95,7 @@ func DoChatCompletionsStream(ctx context.Context, client *openai.Client, chatInf
 		flusher.Flush()
 		flusher.Flush()
 		//time.Sleep(1 * time.Millisecond)
 		//time.Sleep(1 * time.Millisecond)
 	}
 	}
-	fmt.Fprintf(hw, "event:%s\ndata:%s\n\n", "answer", "[DONE]")
+	fmt.Fprintf(hw, "data:%s\n\n", "[DONE]")
 	flusher.Flush()
 	flusher.Flush()
 	httpx.Ok(hw)
 	httpx.Ok(hw)