You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免翻译程序连续重复输出相同错误响应?

避免连续返回相同错误响应的解决方案

你当前的错误响应逻辑通过随机索引从列表中选取内容,但未记录上一次的选择,导致可能连续两次返回相同的响应。

修改思路

新增一个实例变量记录上一次使用的错误响应索引,每次生成新索引时,确保它与上一次的索引不同。需要特殊处理列表仅含1个元素的情况——此时只能返回该元素,无需规避重复。

修改后的代码

首先在类中添加存储上一次索引的变量:

// 初始值设为-1,表示尚未选择过任何错误响应
private int lastErrorIdx = -1;

然后修改getErrorResponse()方法:

public String getErrorResponse() {
    // 列表只有一个元素时直接返回,无需处理重复
    if (errorResponses.size() == 1) {
        return errorResponses.get(0);
    }

    int idx;
    do {
        // 生成0到列表长度-1之间的随机索引
        idx = rnd.nextInt(errorResponses.size());
        // 循环直到生成与上一次不同的索引
    } while (idx == lastErrorIdx);

    // 更新上一次的索引记录
    lastErrorIdx = idx;
    return errorResponses.get(idx);
}

补充说明

该逻辑会持续生成随机索引,直到得到与上一次不同的结果,彻底避免连续重复的错误响应。如果后续需要重置记录(比如用户输入了可翻译内容后,允许下次错误响应重复最早的历史内容),只需将lastErrorIdx重新设为-1即可。

内容的提问来源于stack exchange,提问作者jepa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 02:30:48