Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 51 additions & 1 deletion packages/astrbot/process_llm_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,58 @@ async def process_llm_request(self, event: AstrMessageEvent, req: ProviderReques
self._ensure_persona(req, cfg)

# image caption
# 只有当前 provider 不支持图像时才使用图像转述
if img_cap_prov_id and req.image_urls:
await self._ensure_img_caption(req, cfg, img_cap_prov_id)
current_provider = self.ctx.get_using_provider(
umo=event.unified_msg_origin
)
provider_supports_image = False

logger.debug(f"[IMG Caption] 当前 provider: {current_provider}")

if current_provider:
try:
provider_id = current_provider.meta().id
logger.debug(f"[IMG Caption] Provider ID: {provider_id}")

# 从配置中查找当前 provider 的配置
full_cfg = self.ctx.get_config(umo=event.unified_msg_origin)
providers_list = full_cfg.get("provider", [])
logger.debug(
f"[IMG Caption] 配置中的 provider 数量: {len(providers_list)}"
)
logger.debug(
f"[IMG Caption] 所有 provider IDs: {[p.get('id') for p in providers_list]}"
)

for provider_cfg in providers_list:
if provider_cfg.get("id") == provider_id:
modalities = provider_cfg.get("modalities", [])
logger.debug(
f"[IMG Caption] 找到 provider 配置,modalities: {modalities}"
)
if "image" in modalities:
provider_supports_image = True
logger.debug(
"[IMG Caption] Provider 支持图像能力,跳过图像转述"
)
break
else:
logger.debug(
f"[IMG Caption] 未找到 provider_id={provider_id} 的配置"
)
except Exception as e:
logger.warning(f"[IMG Caption] 获取 provider 信息失败: {e}")
else:
logger.debug("[IMG Caption] 当前没有 provider")
Comment on lines 165 to 187
Copy link

Copilot AI Nov 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Excessive debug logging clutters the code and may impact performance. Consider reducing the number of debug statements to only the most critical decision points (e.g., lines 204 and 207-209), or consolidate multiple debug logs into fewer, more informative messages. Debug logs at lines 165, 175-180, 185-187, 195-197, and 201 could be removed or reduced.

Suggested change
logger.debug(f"[IMG Caption] 当前 provider: {current_provider}")
if current_provider:
try:
provider_id = current_provider.meta().id
logger.debug(f"[IMG Caption] Provider ID: {provider_id}")
# 从配置中查找当前 provider 的配置
full_cfg = self.ctx.get_config(umo=event.unified_msg_origin)
providers_list = full_cfg.get("provider", [])
logger.debug(
f"[IMG Caption] 配置中的 provider 数量: {len(providers_list)}"
)
logger.debug(
f"[IMG Caption] 所有 provider IDs: {[p.get('id') for p in providers_list]}"
)
for provider_cfg in providers_list:
if provider_cfg.get("id") == provider_id:
modalities = provider_cfg.get("modalities", [])
logger.debug(
f"[IMG Caption] 找到 provider 配置,modalities: {modalities}"
)
if "image" in modalities:
provider_supports_image = True
logger.debug(
"[IMG Caption] Provider 支持图像能力,跳过图像转述"
)
break
else:
logger.debug(
f"[IMG Caption] 未找到 provider_id={provider_id} 的配置"
)
except Exception as e:
logger.warning(f"[IMG Caption] 获取 provider 信息失败: {e}")
else:
logger.debug("[IMG Caption] 当前没有 provider")
# Removed excessive debug logs; only log at decision points below
if current_provider:
try:
provider_id = current_provider.meta().id
# 从配置中查找当前 provider 的配置
full_cfg = self.ctx.get_config(umo=event.unified_msg_origin)
providers_list = full_cfg.get("provider", [])
for provider_cfg in providers_list:
if provider_cfg.get("id") == provider_id:
modalities = provider_cfg.get("modalities", [])
if "image" in modalities:
provider_supports_image = True
break
except Exception as e:
logger.warning(f"[IMG Caption] 获取 provider 信息失败: {e}")
# No need to log if no provider; decision point below will log outcome

Copilot uses AI. Check for mistakes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@railgun19457 可以减少一些debug log


if not provider_supports_image:
logger.debug("[IMG Caption] 当前 provider 不支持图像,启用图像转述")
await self._ensure_img_caption(req, cfg, img_cap_prov_id)
else:
logger.debug(
"[IMG Caption] 当前 provider 支持图像,直接传递图片 URL"
)

# quote message processing
# 解析引用内容
Expand Down