修复发送空字符串system message的导致openai接口报错的问题 (#927)

Co-authored-by: lzy-lenovo <lizhanyu@chinasie.com>
This commit is contained in:
LzyGit
2024-04-22 15:41:26 +08:00
committed by GitHub
parent 4238927b82
commit eed5ba03fe

View File

@@ -1,6 +1,7 @@
package com.tencent.supersonic.common.util; package com.tencent.supersonic.common.util;
import cn.hutool.core.util.StrUtil;
import com.plexpt.chatgpt.ChatGPT; import com.plexpt.chatgpt.ChatGPT;
import com.plexpt.chatgpt.entity.chat.ChatCompletion; import com.plexpt.chatgpt.entity.chat.ChatCompletion;
import com.plexpt.chatgpt.entity.chat.ChatCompletionResponse; import com.plexpt.chatgpt.entity.chat.ChatCompletionResponse;
@@ -14,6 +15,7 @@ import java.net.Proxy;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List;
@Component @Component
@@ -47,9 +49,15 @@ public class ChatGptHelper {
} }
public Message getChatCompletion(Message system, Message message) { public Message getChatCompletion(Message system, Message message) {
List<Message> messages ;
if (StrUtil.isBlank(system.getContent())) {
messages = Arrays.asList(message);
} else {
messages = Arrays.asList(system, message);
}
ChatCompletion chatCompletion = ChatCompletion.builder() ChatCompletion chatCompletion = ChatCompletion.builder()
.model(ChatCompletion.Model.GPT_3_5_TURBO_16K.getName()) .model(ChatCompletion.Model.GPT_3_5_TURBO_16K.getName())
.messages(Arrays.asList(system, message)) .messages(messages)
.maxTokens(10000) .maxTokens(10000)
.temperature(0.9) .temperature(0.9)
.build(); .build();