mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-11-09 02:03:42 +08:00
feat: 支持CozeV3
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package model
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
type Message struct {
|
||||
Role string `json:"role,omitempty"`
|
||||
Content any `json:"content,omitempty"`
|
||||
@@ -37,6 +39,53 @@ func (m Message) StringContent() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m Message) CozeV3StringContent() string {
|
||||
content, ok := m.Content.(string)
|
||||
if ok {
|
||||
return content
|
||||
}
|
||||
contentList, ok := m.Content.([]any)
|
||||
if ok {
|
||||
contents := make([]map[string]any, 0)
|
||||
var contentStr string
|
||||
for _, contentItem := range contentList {
|
||||
contentMap, ok := contentItem.(map[string]any)
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
switch contentMap["type"] {
|
||||
case "text":
|
||||
if subStr, ok := contentMap["text"].(string); ok {
|
||||
contents = append(contents, map[string]any{
|
||||
"type": "text",
|
||||
"text": subStr,
|
||||
})
|
||||
}
|
||||
case "image_url":
|
||||
if subStr, ok := contentMap["image_url"].(string); ok {
|
||||
contents = append(contents, map[string]any{
|
||||
"type": "image",
|
||||
"file_url": subStr,
|
||||
})
|
||||
}
|
||||
case "file":
|
||||
if subStr, ok := contentMap["image_url"].(string); ok {
|
||||
contents = append(contents, map[string]any{
|
||||
"type": "file",
|
||||
"file_url": subStr,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
if len(contents) > 0 {
|
||||
b, _ := json.Marshal(contents)
|
||||
return string(b)
|
||||
}
|
||||
return contentStr
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m Message) ParseContent() []MessageContent {
|
||||
var contentList []MessageContent
|
||||
content, ok := m.Content.(string)
|
||||
|
||||
Reference in New Issue
Block a user