|
@@ -168,6 +168,7 @@ func (l *CronTask) analyze() {
|
|
|
}
|
|
|
usageDetails[u.BotID][u.ReceiverID] += fmt.Sprintf("用户:%s\n机器人:%s\n", u.Request, u.Response)
|
|
|
}
|
|
|
+ logx.Info("contactFieldTemplates: ", contactFieldTemplates)
|
|
|
logx.Info("usageDetails: ", usageDetails)
|
|
|
for botID, template := range contactFieldTemplates {
|
|
|
if template == nil {
|
|
@@ -176,8 +177,6 @@ func (l *CronTask) analyze() {
|
|
|
template = append(template, contactBasicFieldTemplates...)
|
|
|
}
|
|
|
for receiverID, messages := range usageDetails[botID] {
|
|
|
- logx.Info("messages: ", messages)
|
|
|
- logx.Info("template: ", template)
|
|
|
result, _ := l.openaiRequest(messages, template)
|
|
|
logx.Info("result: ", result)
|
|
|
if result == nil {
|
|
@@ -196,7 +195,6 @@ func (l *CronTask) openaiRequest(messages string, template []custom_types.Contac
|
|
|
return nil, err
|
|
|
}
|
|
|
jsonStr := string(jsonBytes)
|
|
|
- logx.Info("contactFieldTemplates: ", jsonStr)
|
|
|
req := &types.CompApiReq{
|
|
|
types.CompCtlReq{
|
|
|
"form",
|
|
@@ -228,11 +226,24 @@ func (l *CronTask) openaiRequest(messages string, template []custom_types.Contac
|
|
|
logx.Info("resp: ", resp)
|
|
|
if err == nil && resp != nil && len(resp.Choices) > 0 {
|
|
|
logx.Info("resp.Choices: ", resp.Choices[0].Message.Content)
|
|
|
+ // 尝试第一层解析成 string
|
|
|
+ var inner string
|
|
|
+ if err := json.Unmarshal([]byte(resp.Choices[0].Message.Content), &inner); err == nil {
|
|
|
+ // 成功表示 data 是个被编码过的 JSON 字符串
|
|
|
+ resp.Choices[0].Message.Content = inner
|
|
|
+ }
|
|
|
+ // 解析最终目标
|
|
|
var items []ResponseItem
|
|
|
- err = json.Unmarshal([]byte(resp.Choices[0].Message.Content), &items)
|
|
|
+ err := json.Unmarshal([]byte(resp.Choices[0].Message.Content), &items)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
+
|
|
|
+ //var items []ResponseItem
|
|
|
+ //err = json.Unmarshal([]byte(resp.Choices[0].Message.Content), &items)
|
|
|
+ //if err != nil {
|
|
|
+ // return nil, err
|
|
|
+ //}
|
|
|
return items, nil
|
|
|
} else if resp != nil && len(resp.Choices) == 0 {
|
|
|
return nil, err
|