Browse Source

feat: add JSON marshaling for empty slices in LLM token request

Yeuoly 5 months ago
parent
commit
109050dc16
1 changed files with 14 additions and 0 deletions
  1. 14 0
      pkg/entities/requests/model.go

+ 14 - 0
pkg/entities/requests/model.go

@@ -1,6 +1,8 @@
 package requests
 
 import (
+	"encoding/json"
+
 	"github.com/langgenius/dify-plugin-daemon/pkg/entities/model_entities"
 )
 
@@ -133,6 +135,18 @@ type RequestGetLLMNumTokens struct {
 	Tools          []model_entities.PromptMessageTool `json:"tools" validate:"omitempty,dive"`
 }
 
+func (r RequestGetLLMNumTokens) MarshalJSON() ([]byte, error) {
+	type alias RequestGetLLMNumTokens
+	p := alias(r)
+	if p.PromptMessages == nil {
+		p.PromptMessages = []model_entities.PromptMessage{}
+	}
+	if p.Tools == nil {
+		p.Tools = []model_entities.PromptMessageTool{}
+	}
+	return json.Marshal(p)
+}
+
 type RequestGetAIModelSchema struct {
 	BaseRequestInvokeModel
 	Credentials