Skip to content

Commit e80698d

Browse files
authored
Merge pull request #4 from yjmp14/main
Support handling requests where the content is an array.
2 parents 6196fc0 + 5c3125e commit e80698d

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

conversion/requests/duckgo/convert.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,22 @@ func buildContent(api_request *officialtypes.APIRequest) string {
2323
for _, apiMessage := range api_request.Messages {
2424
role := apiMessage.Role
2525
if role == "user" || role == "system" || role == "assistant" {
26-
content.WriteString(role + ":" + apiMessage.Content + ";\r\n")
26+
contentStr := ""
27+
// 判断 apiMessage.Content 是否为数组
28+
if arrayContent, ok := apiMessage.Content.([]interface{}); ok {
29+
// 如果是数组,遍历数组,查找第一个 type 为 "text" 的元素
30+
for _, element := range arrayContent {
31+
if elementMap, ok := element.(map[string]interface{}); ok {
32+
if elementMap["type"] == "text" {
33+
contentStr = elementMap["text"].(string)
34+
break
35+
}
36+
}
37+
}
38+
} else {
39+
contentStr, _ = apiMessage.Content.(string)
40+
}
41+
content.WriteString(role + ":" + contentStr + ";\r\n")
2742
}
2843
}
2944
return content.String()

typings/official/request.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ type APIRequest struct {
99

1010
type api_message struct {
1111
Role string `json:"role"`
12-
Content string `json:"content"`
12+
Content interface{} `json:"content"`
1313
}
1414

1515
type OpenAISessionToken struct {

0 commit comments

Comments
 (0)