mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-22 17:31:03 +01:00
refactor: update ChatMessageContent model for improved structure and clarity
- Removed type definitions for ChatMessageContentType and ChatMessageContentActionStatus, replacing them with string fields for flexibility. - Added a new 'Key' field to ChatMessageContent for enhanced content identification. - Updated the 'Content' field description in ChatMessage to specify its context for user/system messages. - Ensured consistency in field naming and descriptions across models for better maintainability.
This commit is contained in:
@@ -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 != "" {
|
||||
|
||||
@@ -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"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user