1 package com.netease.nimlib.sdk.v2.message.params;
3 import android.text.TextUtils;
9 import java.io.Serializable;
10 import java.util.List;
17 private static final String TAG =
"V2NIMMessageAIConfigParams";
19 private final String accountId;
25 private List<V2NIMAIModelCallMessage> messages;
28 private String promptVariables;
35 private boolean aiStream =
false;
46 this.accountId = accountId;
71 this.content = content;
87 if (messages == null || messages.isEmpty()) {
90 List<V2NIMAIModelCallMessage> filteredMessages =
new java.util.ArrayList<>();
92 if (message != null && !message.shouldBeFiltered()) {
93 filteredMessages.add(message);
96 return filteredMessages;
104 this.messages = messages;
112 return promptVariables;
120 this.promptVariables = promptVariables;
128 return modelConfigParams;
136 this.modelConfigParams = modelConfigParams;
152 this.aiStream = aiStream;
156 if (TextUtils.isEmpty(accountId)) {
157 NimLog.e(TAG,
"accountId is empty");
161 if (content != null && !content.
isValid()) {
162 NimLog.e(TAG,
"content is invalid");
167 if(messages != null && !messages.isEmpty()){
170 if(message == null || message.shouldBeFiltered()){
173 if(!message.isValid()){
174 NimLog.e(TAG,
"message is invalid");
180 if(promptVariables != null && !StringUtil.isJson(promptVariables)){
181 NimLog.e(TAG,
"promptVariables is invalid");
189 if (TextUtils.isEmpty(accountId)) {
190 return "accountId is empty";
193 if (content != null && !content.
isValid()) {
194 return "content is invalid";
198 if(messages != null && !messages.isEmpty()){
201 if(message == null || message.shouldBeFiltered()){
204 String invalidMsg = message.getInvalidMsg();
205 if(invalidMsg != null){
206 return "message."+invalidMsg;
211 if(promptVariables != null && !StringUtil.isJson(promptVariables)){
212 return "promptVariables is not json";
218 public static class Builder {
219 private String accountId;
221 private List<V2NIMAIModelCallMessage> messages;
222 private String promptVariables;
224 private boolean aiStream =
false;
231 public Builder accountId(String accountId) {
232 this.accountId = accountId;
242 this.content = content;
251 public Builder messages(List<V2NIMAIModelCallMessage> messages) {
252 this.messages = messages;
260 public Builder promptVariables(String promptVariables) {
261 this.promptVariables = promptVariables;
270 this.modelConfigParams = modelConfigParams;
278 public Builder aiStream(
boolean aiStream) {
279 this.aiStream = aiStream;
List< V2NIMAIModelCallMessage > getFilteredMessages()
获取过滤后的上下文内容(过滤掉 msg 为 null 或 trim 后为空字符串的 message)
V2NIMAIModelCallContent getContent()
获取请求大模型的内容
List< V2NIMAIModelCallMessage > getMessages()
获取上下文内容
V2NIMMessageAIConfigParams(String accountId)
构造函数
boolean isAIStream()
是否流式响应
String getAccountId()
获取数字人的 accountId
String getPromptVariables()
获取提示词变量占位符替换
V2NIMAIModelConfigParams getModelConfigParams()
获取请求接口模型相关参数配置
void setContent(V2NIMAIModelCallContent content)
设置请求大模型的内容
void setAIStream(boolean aiStream)
设置是否流式响应
void setModelConfigParams(V2NIMAIModelConfigParams modelConfigParams)
设置请求接口模型相关参数配置
void setMessages(List< V2NIMAIModelCallMessage > messages)
设置上下文内容
void setPromptVariables(String promptVariables)
设置提示词变量占位符替换