Fix NLU flow: media_id, upload perm, catalog filter, nlu_description field

- WpWebhook: inject media_id into context before calling BotRouter so
  MediaTranscriber can download audio/image (was passing caption='')
- BotRouter: use context['media_id'] for transcription (non-breaking fallback)
- AiBot::processMedia: fix canUpload to include permType 1 (solo reporta)
- AiBot::buildFlowCatalog: include text flows that have nlu_description set
- DashboardController + index.php: add nlu_description field per flow card

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-05 08:51:13 -05:00
co-authored by Claude Sonnet 4.6
parent bb4b5dab10
commit 1d9484a1e0
5 changed files with 18 additions and 5 deletions
+3 -2
View File
@@ -118,9 +118,10 @@ class BotRouter
}
if ($nluEnabled && in_array($inputType, ['audio', 'image'], true)) {
$mediaId = $context['media_id'] ?? $input; // injected by WpWebhook::handleMedia
$text = $inputType === 'audio'
? MediaTranscriber::transcribeAudio($input, $company)
: MediaTranscriber::extractFromImage($input, $company);
? MediaTranscriber::transcribeAudio($mediaId, $company)
: MediaTranscriber::extractFromImage($mediaId, $company);
if ($text !== null && trim($text) !== '') {
self::log("NLU media [{$inputType}]: texto extraído → \"{$text}\"");