使用Gemini API遭遇‘Candidate was blocked due to RECITATION’错误求助
解决Gemini API的“Candidate was blocked due to RECITATION”错误
错误原因说明
RECITATION拦截并非由你配置的安全规则(HARM_CATEGORY_*)触发,这类安全规则仅针对有害内容过滤。该错误是Gemini的内容复用检测机制导致的——当模型判定输入内容或生成内容与训练数据中的现有内容高度重合(比如直接照搬版权题目、重复训练数据片段),就会触发这个拦截。
具体解决方案
调整Prompt表述,引导原创生成
避免直接使用“resolva a seguinte questao”(解答这道题)这类易触发检测的指令,改用更侧重“解释、重构”的表述,让AI用自有语言生成答案。比如修改你的Prompt:const resposta = await model.generateContent(`请结合你的知识,用适合教材的通俗语言解释这道题的解法和答案,仅输出纯文本内容,仅在数学、化学等必要学科使用专业符号:${questionHeader} ${options}`)(注:若原题是葡萄牙语,保持对应语言表述即可,核心是引导AI重构而非直接“背诵”答案)
精简输入Token数量
当前请求的Prompt Token数达到2437,过长的输入更容易包含与训练数据重合的片段。尝试精简题目内容,只保留核心问题和必要选项,去掉冗余描述。调整生成参数,提升原创性
在模型配置中加入generationConfig,提高temperature参数(范围0-1,数值越高生成内容越多样),降低AI重复训练数据的概率:const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash", safe, generationConfig: { temperature: 0.8, topP: 0.95 } });重构题目文本
如果题目来自有版权的教材或题库,不要直接复制原题,用自己的话重新描述问题核心,避免触发版权相关的拦截机制。尝试切换模型版本
部分模型版本的内容检测规则存在差异,可尝试切换到gemini-1.5-pro,观察是否仍触发拦截。
内容的提问来源于stack exchange,提问作者Luiz
相关产品推荐
相关产品推荐

