MCPcopy Create free account
hub / github.com/aiprodcoder/MIXAPI / onMessageSend

Function onMessageSend

web/src/pages/Playground/index.js:195–250  ·  view source on GitHub ↗
(content, attachment)

Source from the content-addressed store, hash-verified

193
194 // 发送消息
195 function onMessageSend(content, attachment) {
196 console.log('attachment: ', attachment);
197
198 // 创建用户消息和加载消息
199 const userMessage = createMessage(MESSAGE_ROLES.USER, content);
200 const loadingMessage = createLoadingAssistantMessage();
201
202 // 如果是自定义请求体模式
203 if (customRequestMode && customRequestBody) {
204 try {
205 const customPayload = JSON.parse(customRequestBody);
206
207 setMessage(prevMessage => {
208 const newMessages = [...prevMessage, userMessage, loadingMessage];
209
210 // 发送自定义请求体
211 sendRequest(customPayload, customPayload.stream !== false);
212
213 // 发送消息后保存,传入新消息列表
214 setTimeout(() => saveMessagesImmediately(newMessages), 0);
215
216 return newMessages;
217 });
218 return;
219 } catch (error) {
220 console.error('自定义请求体JSON解析失败:', error);
221 Toast.error(ERROR_MESSAGES.JSON_PARSE_ERROR);
222 return;
223 }
224 }
225
226 // 默认模式
227 const validImageUrls = inputs.imageUrls.filter(url => url.trim() !== '');
228 const messageContent = buildMessageContent(content, validImageUrls, inputs.imageEnabled);
229 const userMessageWithImages = createMessage(MESSAGE_ROLES.USER, messageContent);
230
231 setMessage(prevMessage => {
232 const newMessages = [...prevMessage, userMessageWithImages];
233
234 const payload = buildApiPayload(newMessages, null, inputs, parameterEnabled);
235 sendRequest(payload, inputs.stream);
236
237 // 禁用图片模式
238 if (inputs.imageEnabled) {
239 setTimeout(() => {
240 handleInputChange('imageEnabled', false);
241 }, 100);
242 }
243
244 // 发送消息后保存,传入新消息列表(包含用户消息和加载消息)
245 const messagesWithLoading = [...newMessages, loadingMessage];
246 setTimeout(() => saveMessagesImmediately(messagesWithLoading), 0);
247
248 return messagesWithLoading;
249 });
250 }
251
252 // 切换推理展开状态

Callers 1

useMessageActionsFunction · 0.85

Calls 5

createMessageFunction · 0.90
buildMessageContentFunction · 0.90
buildApiPayloadFunction · 0.90
handleInputChangeFunction · 0.50

Tested by

no test coverage detected