NIMSDK-AOS  9.21.10
NIMProxyAIModelCallParams.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.ai.params;
2 
3 import android.text.TextUtils;
4 import com.netease.nimlib.log.NimLog;
6 import com.netease.nimlib.util.StringUtil;
7 import java.io.Serializable;
8 import java.util.List;
9 
10 public class NIMProxyAIModelCallParams implements Serializable {
11 
12  private static final String TAG = "NIMProxyAIModelCallParams";
13 
14  /**
15  * 机器人账号ID,AIUser对应的账号ID
16  */
17  private final String accountId;
18 
19  /**
20  * 请求id
21  */
22  private final String requestId;
23 
24  /**
25  * 请求大模型的内容
26  */
27  private final NIMAIModelCallContent content;
28 
29  /**
30  * 上下文内容
31  */
32  private List<NIMAIModelCallMessage> messages;
33 
34  /**
35  * 提示词变量占位符替换,JSON 格式的字符串用于填充prompt中的变量
36  */
37  private String promptVariables;
38 
39  /**
40  * 请求接口模型相关参数配置, 如果参数不为空,则默认覆盖控制相关配置
41  */
42  private NIMAIModelConfigParams modelConfigParams;
43 
44  /**
45  * 反垃圾配置, 复用消息体里的部分反垃圾字段
46  */
47  private NIMProxyAICallAntispamConfig antispamConfig;
48 
49  /**
50  * 是否流式响应,默认为 false
51  */
52  private boolean aiStream = false;
53 
54  private NIMProxyAIModelCallParams() {
55  this(null, null, null);
56  }
57 
58  /**
59  * 构造函数
60  *
61  * @param accountId 机器人账号ID
62  * @param requestId 请求id
63  * @param content 请求大模型的内容
64  */
65  public NIMProxyAIModelCallParams(String accountId, String requestId, NIMAIModelCallContent content) {
66  this.accountId = accountId;
67  this.requestId = requestId;
68  this.content = content;
69  }
70 
71 
72 
73  /**
74  * 获取机器人账号ID
75  *
76  * @return 机器人账号ID
77  */
78  public String getAccountId() {
79  return accountId;
80  }
81 
82 
83  /**
84  * 获取请求id
85  *
86  * @return 请求id
87  */
88  public String getRequestId() {
89  return requestId;
90  }
91 
92 
93  /**
94  * 获取请求大模型的内容
95  *
96  * @return 请求大模型的内容
97  */
99  return content;
100  }
101 
102  /**
103  * 获取上下文内容
104  *
105  * @return 上下文内容
106  */
107  public List<NIMAIModelCallMessage> getMessages() {
108  return messages;
109  }
110 
111  /**
112  * 设置上下文内容
113  *
114  * @param messages 上下文内容
115  */
116  public void setMessages(List<NIMAIModelCallMessage> messages) {
117  this.messages = messages;
118  }
119 
120  /**
121  * 获取提示词变量占位符替换
122  *
123  * @return 提示词变量占位符替换
124  */
125  public String getPromptVariables() {
126  return promptVariables;
127  }
128 
129  /**
130  * 设置提示词变量占位符替换
131  *
132  * @param promptVariables 提示词变量占位符替换
133  */
134  public void setPromptVariables(String promptVariables) {
135  this.promptVariables = promptVariables;
136  }
137 
138  /**
139  * 获取请求接口模型相关参数配置
140  *
141  * @return 请求接口模型相关参数配置
142  */
144  return modelConfigParams;
145  }
146 
147  /**
148  * 设置请求接口模型相关参数配置
149  *
150  * @param modelConfigParams 请求接口模型相关参数配置
151  */
152  public void setModelConfigParams(NIMAIModelConfigParams modelConfigParams) {
153  this.modelConfigParams = modelConfigParams;
154  }
155 
156  /**
157  * 获取反垃圾配置
158  *
159  * @return 反垃圾配置
160  */
162  return antispamConfig;
163  }
164 
165  /**
166  * 设置反垃圾配置
167  *
168  * @param antispamConfig 反垃圾配置
169  */
170  public void setAntispamConfig(NIMProxyAICallAntispamConfig antispamConfig) {
171  this.antispamConfig = antispamConfig;
172  }
173 
174  /**
175  * 获取是否流式响应
176  * @return 是否流式响应
177  */
178  public boolean isAIStream() {
179  return aiStream;
180  }
181 
182  /**
183  * 设置是否流式响应
184  * @param aiStream 是否流式响应
185  */
186  public void setAIStream(boolean aiStream) {
187  this.aiStream = aiStream;
188  }
189 
190  /**
191  * 是否有效
192  * @return 是否有效
193  */
194  public boolean isValid(){
195  if(TextUtils.isEmpty(accountId)){
196  NimLog.e(TAG, "accountId is empty");
197  return false;
198  }
199 
200  if(TextUtils.isEmpty(requestId)){
201  NimLog.e(TAG, "requestId is empty");
202  return false;
203  }
204 
205  if(content == null || !content.isValid()){
206  NimLog.e(TAG, "content is invalid");
207  return false;
208  }
209 
210  if(messages != null && !messages.isEmpty()){
211  for(NIMAIModelCallMessage message : messages){
212  if(!message.isValid()){
213  NimLog.e(TAG, "message is invalid");
214  return false;
215  }
216  }
217  }
218 
219  if(promptVariables != null && !StringUtil.isJson(promptVariables)){
220  NimLog.e(TAG, "promptVariables is invalid");
221  return false;
222  }
223 
224  return true;
225  }
226 
227  /**
228  * 构造器
229  */
230  public static class Builder {
231  private String accountId;
232  private String requestId;
233  private NIMAIModelCallContent content;
234  private List<NIMAIModelCallMessage> messages;
235  private String promptVariables;
236  private NIMAIModelConfigParams modelConfigParams;
237  private NIMProxyAICallAntispamConfig antispamConfig;
238 
239  /**
240  * 是否流式响应,默认为 false
241  */
242  private boolean aiStream = false;
243 
244  /**
245  * 设置机器人账号ID
246  * @param accountId 机器人账号ID
247  * @return Builder
248  */
249  public Builder accountId(String accountId) {
250  this.accountId = accountId;
251  return this;
252  }
253 
254  /**
255  * 设置请求id
256  * @param requestId 请求id
257  * @return Builder
258  */
259  public Builder requestId(String requestId) {
260  this.requestId = requestId;
261  return this;
262  }
263 
264  /**
265  * 设置请求大模型的内容
266  * @param content 请求大模型的内容
267  * @return Builder
268  */
269  public Builder content(NIMAIModelCallContent content) {
270  this.content = content;
271  return this;
272  }
273 
274  /**
275  * 设置上下文内容
276  * @param messages 上下文内容
277  * @return Builder
278  */
279  public Builder messages(List<NIMAIModelCallMessage> messages) {
280  this.messages = messages;
281  return this;
282  }
283 
284  /**
285  * 设置提示词变量占位符替换
286  * @param promptVariables 提示词变量占位符替换
287  * @return Builder
288  */
289  public Builder promptVariables(String promptVariables) {
290  this.promptVariables = promptVariables;
291  return this;
292  }
293 
294  /**
295  * 设置请求接口模型相关参数配置
296  * @param modelConfigParams 请求接口模型相关参数配置
297  * @return Builder
298  */
299  public Builder modelConfigParams(NIMAIModelConfigParams modelConfigParams) {
300  this.modelConfigParams = modelConfigParams;
301  return this;
302  }
303 
304  public Builder antispamConfig(NIMProxyAICallAntispamConfig antispamConfig) {
305  this.antispamConfig = antispamConfig;
306  return this;
307  }
308 
309  public Builder aiStream(boolean aiStream) {
310  this.aiStream = aiStream;
311  return this;
312  }
313 
314  /**
315  * 构建NIMProxyAIModelCallParams
316  * @return NIMProxyAIModelCallParams
317  */
318  public NIMProxyAIModelCallParams build() {
319  NIMProxyAIModelCallParams params = new NIMProxyAIModelCallParams(accountId, requestId, content);
320  params.messages = messages;
321  params.promptVariables = promptVariables;
322  params.modelConfigParams = modelConfigParams;
323  params.antispamConfig = antispamConfig;
324  params.aiStream = aiStream;
325  return params;
326  }
327  }
328 }
void setPromptVariables(String promptVariables)
设置提示词变量占位符替换
void setAntispamConfig(NIMProxyAICallAntispamConfig antispamConfig)
设置反垃圾配置
void setModelConfigParams(NIMAIModelConfigParams modelConfigParams)
设置请求接口模型相关参数配置
NIMProxyAIModelCallParams(String accountId, String requestId, NIMAIModelCallContent content)
构造函数
String getPromptVariables()
获取提示词变量占位符替换
void setAIStream(boolean aiStream)
设置是否流式响应
NIMAIModelCallContent getContent()
获取请求大模型的内容
void setMessages(List< NIMAIModelCallMessage > messages)
设置上下文内容
NIMProxyAICallAntispamConfig getAntispamConfig()
获取反垃圾配置
List< NIMAIModelCallMessage > getMessages()
获取上下文内容
NIMAIModelConfigParams getModelConfigParams()
获取请求接口模型相关参数配置