diff --git a/core/models/models/chat_message.go b/core/models/models/chat_message.go index 14713564..a36d67ef 100644 --- a/core/models/models/chat_message.go +++ b/core/models/models/chat_message.go @@ -9,7 +9,7 @@ type ChatMessage struct { BaseModel `bson:",inline"` ConversationId primitive.ObjectID `json:"conversation_id" bson:"conversation_id" description:"Conversation ID"` Role string `json:"role" bson:"role" description:"Message role (user/assistant/system)"` - Content string `json:"content,omitempty" bson:"content,omitempty" description:"Message content"` + Content string `json:"content,omitempty" bson:"content,omitempty" description:"Message content for user/system only"` IsAgent bool `json:"is_agent,omitempty" bson:"is_agent,omitempty" description:"Is agent"` ContentIds []primitive.ObjectID `json:"content_ids,omitempty" bson:"content_ids,omitempty" description:"Content IDs"` Contents []ChatMessageContent `json:"contents,omitempty" bson:"-" description:"Contents"` @@ -30,9 +30,9 @@ func (m *ChatMessage) GetContent() string { var result string for _, content := range m.Contents { switch content.Type { - case ChatMessageContentTypeText: + case "text": result += content.Content - case ChatMessageContentTypeAction: + case "action": // Format action content with status actionInfo := "[" + content.Action if content.ActionStatus != "" { diff --git a/core/models/models/chat_message_content.go b/core/models/models/chat_message_content.go index e3ffee0a..ee928c8a 100644 --- a/core/models/models/chat_message_content.go +++ b/core/models/models/chat_message_content.go @@ -21,27 +21,14 @@ package models import "go.mongodb.org/mongo-driver/bson/primitive" -type ChatMessageContentType string - -const ( - ChatMessageContentTypeText ChatMessageContentType = "text" - ChatMessageContentTypeAction ChatMessageContentType = "action" -) - -type ChatMessageContentActionStatus string - -const ( - ChatMessageContentActionStatusPending ChatMessageContentActionStatus = "pending" - ChatMessageContentActionStatusSuccess ChatMessageContentActionStatus = "success" - ChatMessageContentActionStatusFailed ChatMessageContentActionStatus = "failed" -) - type ChatMessageContent struct { any `collection:"chat_message_contents"` BaseModel `bson:",inline"` - MessageId primitive.ObjectID `json:"message_id" bson:"message_id" description:"Message ID"` - Content string `json:"content" bson:"content" description:"Message content"` - Type ChatMessageContentType `json:"type" bson:"type" description:"Message type (text/action)"` - Action string `json:"action,omitempty" bson:"action,omitempty" description:"Action name"` - ActionStatus ChatMessageContentActionStatus `json:"action_status,omitempty" bson:"action_status,omitempty" description:"Action status"` + MessageId primitive.ObjectID `json:"message_id" bson:"message_id" description:"Message ID"` + Key string `json:"key" bson:"key" description:"Message content key"` + Content string `json:"content" bson:"content" description:"Message content"` + Type string `json:"type" bson:"type" description:"Message type (text/action)"` + Action string `json:"action,omitempty" bson:"action,omitempty" description:"Action name"` + ActionStatus string `json:"action_status,omitempty" bson:"action_status,omitempty" description:"Action status"` + Hidden bool `json:"hidden,omitempty" bson:"hidden,omitempty" description:"Hidden"` }