Replies: 2 comments 7 replies
-
|
你可以通过 useXChat 返回的 messages 数组获取上一条用户消息。每条消息对象通常有 status 字段,用户消息的 status 一般为 'local'。你可以在重试时,从 messages 里筛选出最后一条 status 为 'local' 的消息,然后把它的内容作为参数传给 onReload。例如: // 获取上一条用户消息
const lastUserMessage = [...messages].reverse().find(msg => msg.status === 'local');
// 重试时传递用户消息内容
if (lastUserMessage) {
context?.onReload?.(id, { message: lastUserMessage.message });
}这样就能实现用上一条用户消息内容重新请求,无需 userAction 参数。建议在用户发送消息时就把内容保存到 state,重试时直接复用即可。具体参数结构要根据你的自定义接口要求调整即可。参考官方实现和 messages 结构。 To reply, just mention @dosu. How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
由于任意一条Ai消息都可以重试,所以在state中记录最近用户消息不可行。从消息列表中遍历获取太麻烦了,能否在Ai消息中记录所回复的用户消息内容或者id |
Beta Was this translation helpful? Give feedback.
7 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
我需要实现一个重试功能,即让ai重新回答,我看官方实例中的用法:
https://x.ant.design/docs/playground/independent-cn
但我的自定义接口不支持userAction 参数,需要重新传入上一次的用户消息内容,该如何获取呢
Beta Was this translation helpful? Give feedback.
All reactions