108 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			108 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Go
		
	
	
	
| /*
 | |
|  * Copyright 2025 coze-dev Authors
 | |
|  *
 | |
|  * Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  * you may not use this file except in compliance with the License.
 | |
|  * You may obtain a copy of the License at
 | |
|  *
 | |
|  *     http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing, software
 | |
|  * distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  * See the License for the specific language governing permissions and
 | |
|  * limitations under the License.
 | |
|  */
 | |
| 
 | |
| package message
 | |
| 
 | |
| import (
 | |
| 	"github.com/cloudwego/eino/schema"
 | |
| 
 | |
| 	"github.com/coze-dev/coze-studio/backend/api/model/conversation/message"
 | |
| )
 | |
| 
 | |
| type Message struct {
 | |
| 	ID               int64                   `json:"id"`
 | |
| 	ConversationID   int64                   `json:"conversation_id"`
 | |
| 	RunID            int64                   `json:"run_id"`
 | |
| 	AgentID          int64                   `json:"agent_id"`
 | |
| 	SectionID        int64                   `json:"section_id"`
 | |
| 	Content          string                  `json:"content"`
 | |
| 	MultiContent     []*InputMetaData        `json:"multi_content"`
 | |
| 	ContentType      ContentType             `json:"content_type"`
 | |
| 	DisplayContent   string                  `json:"display_content"`
 | |
| 	Role             schema.RoleType         `json:"role"`
 | |
| 	Name             string                  `json:"name"`
 | |
| 	Status           MessageStatus           `json:"status"`
 | |
| 	MessageType      MessageType             `json:"message_type"`
 | |
| 	ModelContent     string                  `json:"model_content"`
 | |
| 	Position         int32                   `json:"position"`
 | |
| 	UserID           string                  `json:"user_id"`
 | |
| 	Ext              map[string]string       `json:"ext"`
 | |
| 	ReasoningContent string                  `json:"reasoning_content"`
 | |
| 	RequiredAction   *message.RequiredAction `json:"required_action"`
 | |
| 	CreatedAt        int64                   `json:"created_at"`
 | |
| 	UpdatedAt        int64                   `json:"updated_at"`
 | |
| }
 | |
| 
 | |
| type InputMetaData struct {
 | |
| 	Type     InputType   `json:"type"`
 | |
| 	Text     string      `json:"text"`
 | |
| 	FileData []*FileData `json:"file_data"`
 | |
| }
 | |
| 
 | |
| type MessageStatus int32
 | |
| 
 | |
| const (
 | |
| 	MessageStatusAvailable MessageStatus = 1
 | |
| 	MessageStatusDeleted   MessageStatus = 2
 | |
| 	MessageStatusBroken    MessageStatus = 4
 | |
| )
 | |
| 
 | |
| type InputType string
 | |
| 
 | |
| const (
 | |
| 	InputTypeText  InputType = "text"
 | |
| 	InputTypeFile  InputType = "file"
 | |
| 	InputTypeImage InputType = "image"
 | |
| 	InputTypeVideo InputType = "video"
 | |
| 	InputTypeAudio InputType = "audio"
 | |
| )
 | |
| 
 | |
| type FileData struct {
 | |
| 	Url  string `json:"url"`
 | |
| 	URI  string `json:"uri"`
 | |
| 	Name string `json:"name"`
 | |
| }
 | |
| 
 | |
| type ContentType string
 | |
| 
 | |
| const (
 | |
| 	ContentTypeText   ContentType = "text"
 | |
| 	ContentTypeImage  ContentType = "image"
 | |
| 	ContentTypeVideo  ContentType = "video"
 | |
| 	ContentTypeMusic  ContentType = "music"
 | |
| 	ContentTypeCard   ContentType = "card"
 | |
| 	ContentTypeWidget ContentType = "widget"
 | |
| 	ContentTypeAPP    ContentType = "app"
 | |
| 	ContentTypeMix    ContentType = "mix"
 | |
| )
 | |
| 
 | |
| type MessageType string
 | |
| 
 | |
| const (
 | |
| 	MessageTypeAck          MessageType = "ack"
 | |
| 	MessageTypeQuestion     MessageType = "question"
 | |
| 	MessageTypeFunctionCall MessageType = "function_call"
 | |
| 	MessageTypeToolResponse MessageType = "tool_response"
 | |
| 	MessageTypeKnowledge    MessageType = "knowledge"
 | |
| 	MessageTypeAnswer       MessageType = "answer"
 | |
| 	MessageTypeFlowUp       MessageType = "follow_up"
 | |
| 	MessageTypeInterrupt    MessageType = "interrupt"
 | |
| 	MessageTypeVerbose      MessageType = "verbose"
 | |
| 
 | |
| 	MessageTypeToolAsAnswer  MessageType = "tool_as_answer"
 | |
| 	MessageTypeToolMidAnswer MessageType = "tool_mid_answer"
 | |
| )
 |