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

Android应用集成Google Gemini API时,简单加法触发SAFETY错误求助

解决Gemini API处理简单加法请求触发SAFETY错误崩溃的问题

核心原因

Gemini的安全过滤系统存在边缘case误判,像what is 2+2这类极简单的数学请求被错误识别为违反安全规则,导致API终止内容生成并抛出ResponseStoppedException,而你的应用未处理该异常,引发崩溃。

解决步骤

1. 捕获异常避免应用崩溃

首先必须在调用API的代码中捕获ResponseStoppedException,防止未处理异常导致应用崩溃。示例代码:

lifecycleScope.launch {
    try {
        val response = generativeModel.generateContent("what is 2+2")
        // 处理正常响应逻辑
    } catch (e: ResponseStoppedException) {
        // 处理安全拦截情况,比如提示用户请求被拦截,或尝试重试
        Log.e("GeminiError", "请求被安全拦截: ${e.reason}")
    } catch (e: Exception) {
        // 处理其他类型异常
    }
}

2. 自定义安全设置降低阈值

可以在初始化GenerativeModel时,调整安全规则的阈值,减少误判概率。比如针对性降低相关类别的拦截级别:

val safetySettings = listOf(
    SafetySetting(HarmCategory.HARASSMENT, HarmBlockThreshold.BLOCK_ONLY_HIGH),
    SafetySetting(HarmCategory.HATE_SPEECH, HarmBlockThreshold.BLOCK_ONLY_HIGH),
    SafetySetting(HarmCategory.SEXUALLY_EXPLICIT, HarmBlockThreshold.BLOCK_ONLY_HIGH),
    SafetySetting(HarmCategory.DANGEROUS_CONTENT, HarmBlockThreshold.BLOCK_ONLY_HIGH)
)

val generativeModel = GenerativeModel(
    modelName = "gemini-pro",
    apiKey = BuildConfig.GEMINI_API_KEY,
    safetySettings = safetySettings
)

注意:根据实际场景调整,不建议盲目关闭所有安全过滤,优先保证功能合规性。

3. 调整提示语规避误判

尝试修改提示语的表述方式,比如将what is 2+2改为Calculate 2 plus 2或直接2+2等于多少?,不同的表述可能绕过误判的安全规则。

额外说明

这类误判属于Gemini安全系统的边缘问题,后续Google可能会通过模型更新修复。当前阶段优先通过异常捕获保证应用稳定性,再结合安全设置和提示语调整减少触发概率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:52:27