forwardMessage method
void
forwardMessage(
- NIMMessage message,
- String conversationId, {
- String? postScript,
})
Implementation
void forwardMessage(
NIMMessage message,
String conversationId, {
String? postScript,
}) async {
if (await haveConnectivity()) {
NIMMessageAIConfigParams? aiConfigParams;
if ((await ConversationIdUtil().conversationType(conversationId)).data ==
NIMConversationType.p2p) {
NIMAIUser? aiAgent = AIUserManager.instance.getAIUserById(
ChatKitUtils.getConversationTargetId(conversationId),
);
if (aiAgent != null) {
final aiStreamMode = await IMKitClient.enableAIStream;
// AI 参数处理
aiConfigParams = NIMMessageAIConfigParams(
accountId: aiAgent.accountId,
aiStream: aiStreamMode,
);
if (ChatMessageHelper.getAIContentMsg(message)?.isNotEmpty == true) {
NIMAIModelCallContent content = NIMAIModelCallContent(
type: 0,
msg: ChatMessageHelper.getAIContentMsg(message),
);
aiConfigParams.content = content;
}
}
}
final params = await ChatMessageHelper.getSenderParams(
message,
conversationId,
);
params.aiConfig = aiConfigParams;
ChatMessageRepo.forwardMessage(
message,
conversationId,
params: params,
).then((value) async {
if (value.code == ChatMessageRepo.errorInBlackList) {
ChatMessageRepo.saveTipsMessage(
conversationId,
S.of().chatMessageSendFailedByBlackList,
);
}
if (postScript?.isNotEmpty == true) {
//处理AI Config
NIMMessageAIConfigParams? aiConfigParams;
if ((await ConversationIdUtil().conversationType(
conversationId,
))
.data ==
NIMConversationType.p2p) {
NIMAIUser? aiAgent = AIUserManager.instance.getAIUserById(
ChatKitUtils.getConversationTargetId(conversationId),
);
if (aiAgent != null) {
final aiStreamMode = await IMKitClient.enableAIStream;
// AI 参数处理
aiConfigParams = NIMMessageAIConfigParams(
accountId: aiAgent.accountId,
aiStream: aiStreamMode,
);
NIMAIModelCallContent content = NIMAIModelCallContent(
type: 0,
msg: postScript,
);
aiConfigParams.content = content;
}
}
ChatMessageRepo.sendTextMessageWithMessageAck(
conversationId: conversationId,
text: postScript!,
aiConfigParams: aiConfigParams,
).then((msgSend) {
if (msgSend.code == ChatMessageRepo.errorInBlackList) {
ChatMessageRepo.saveTipsMessage(
conversationId,
S.of().chatMessageSendFailedByBlackList,
);
}
});
}
notifyListeners();
});
}
}