fixed a bug while using ask() which given []map

This commit is contained in:
StarPro 2025-05-25 22:29:55 +08:00
parent e2b696a221
commit 946fcfd6e5

View File

@ -355,7 +355,7 @@ func makeChatMessages(args []goja.Value) []ChatMessage {
case reflect.Slice:
out = append(out, makeChatMessageFromSlice(vv2, defaultRole))
case reflect.Map:
out = append(out, makeChatMessageFromSlice(vv2, defaultRole))
out = append(out, makeChatMessageFromMap(vv2, defaultRole))
case reflect.Struct:
item := ChatMessage{}
u.Convert(vv2.Interface(), &item)
@ -399,9 +399,10 @@ func makeChatMessageFromSlice(vv reflect.Value, defaultRole string) ChatMessage
}
func makeChatMessageFromMap(vv reflect.Value, defaultRole string) ChatMessage {
role := u.String(vv.MapIndex(reflect.ValueOf(RoleUser)).Interface())
if role == "" {
role = defaultRole
role := defaultRole
roleValue := vv.MapIndex(reflect.ValueOf("role"))
if roleValue.IsValid() {
role = u.String(roleValue.Interface())
}
contents := make([]ChatMessageContent, 0)
content := u.String(vv.MapIndex(reflect.ValueOf("content")).Interface())