Compare commits

...

2 Commits

Author SHA1 Message Date
pre-commit-ci[bot]
062ee545b1 🚨 auto fix by pre-commit hooks 2025-11-15 16:54:02 +00:00
webjoin111
ddbe75704d 🐛 fix(gemini): 增加响应验证以处理内容过滤(promptFeedback) 2025-11-16 00:52:55 +08:00
2 changed files with 22 additions and 2 deletions

View File

@ -49,7 +49,9 @@ async def _():
async def _prune_stale_tags():
deleted_count = await tag_manager.prune_stale_group_links()
if deleted_count > 0:
logger.info(f"定时任务:成功清理了 {deleted_count} 个无效的群组标签"
f"关联。", "群组标签管理")
logger.info(
f"定时任务:成功清理了 {deleted_count} 个无效的群组标签" f"关联。",
"群组标签管理",
)
else:
logger.debug("定时任务:未发现无效的群组标签关联。", "群组标签管理")

View File

@ -354,6 +354,24 @@ class GeminiAdapter(BaseAdapter):
return safety_settings if safety_settings else None
def validate_response(self, response_json: dict[str, Any]) -> None:
"""验证 Gemini API 响应,增加对 promptFeedback 的检查"""
super().validate_response(response_json)
if prompt_feedback := response_json.get("promptFeedback"):
if block_reason := prompt_feedback.get("blockReason"):
logger.warning(
f"Gemini 内容因 promptFeedback 被安全过滤: {block_reason}"
)
raise LLMException(
f"内容被安全过滤: {block_reason}",
code=LLMErrorCode.CONTENT_FILTERED,
details={
"block_reason": block_reason,
"safety_ratings": prompt_feedback.get("safetyRatings"),
},
)
def parse_response(
self,
model: "LLMModel",