Nodes and media
Obsługa obrazów i multimediów
Kanał WhatsApp działa przez Baileys Web. Ten dokument opisuje bieżące reguły obsługi multimediów dla wysyłania, Gateway i odpowiedzi agentów.
Cele
- Wysyłanie multimediów z opcjonalnymi podpisami przez
openclaw message send --media. - Umożliwienie automatycznym odpowiedziom ze skrzynki odbiorczej web dołączania multimediów obok tekstu.
- Utrzymanie rozsądnych i przewidywalnych limitów dla poszczególnych typów.
Interfejs CLI
openclaw message send --media <path-or-url> [--message <caption>]--mediajest opcjonalne; podpis może być pusty przy wysyłaniu samych multimediów.--dry-runwypisuje rozwiązany ładunek;--jsonemituje{ channel, to, messageId, mediaUrl, caption }.
Zachowanie kanału WhatsApp Web
- Dane wejściowe: lokalna ścieżka pliku lub adres URL HTTP(S).
- Przepływ: wczytaj do Buffer, wykryj rodzaj multimediów i zbuduj właściwy ładunek:
- Obrazy: zmiana rozmiaru i ponowna kompresja do JPEG (maksymalny bok 2048px) z celem
channels.whatsapp.mediaMaxMb(domyślnie: 50 MB). - Audio/Głos/Wideo: przekazywanie bez zmian do 16 MB; audio jest wysyłane jako notatka głosowa (
ptt: true). - Dokumenty: wszystko inne, do 100 MB, z zachowaniem nazwy pliku, gdy jest dostępna.
- Obrazy: zmiana rozmiaru i ponowna kompresja do JPEG (maksymalny bok 2048px) z celem
- Odtwarzanie w stylu GIF w WhatsApp: wyślij MP4 z
gifPlayback: true(CLI:--gif-playback), aby klienci mobilni zapętlali je inline. - Wykrywanie MIME preferuje bajty magiczne, potem nagłówki, potem rozszerzenie pliku.
- Podpis pochodzi z
--messagealboreply.text; pusty podpis jest dozwolony. - Logowanie: tryb niewerbose pokazuje
↩️/✅; tryb verbose zawiera rozmiar i ścieżkę/URL źródła.
Potok automatycznych odpowiedzi
getReplyFromConfigzwraca{ text?, mediaUrl?, mediaUrls? }.- Gdy multimedia są obecne, nadawca web rozwiązuje lokalne ścieżki lub adresy URL przy użyciu tego samego potoku co
openclaw message send. - Wiele pozycji multimedialnych jest wysyłanych sekwencyjnie, jeśli zostały podane.
Multimedia przychodzące do poleceń
- Gdy przychodzące wiadomości web zawierają multimedia, OpenClaw pobiera je do pliku tymczasowego i udostępnia zmienne szablonów:
{{MediaUrl}}pseudo-URL dla przychodzących multimediów.{{MediaPath}}lokalna ścieżka tymczasowa zapisana przed uruchomieniem polecenia.
- Gdy włączona jest piaskownica Docker dla sesji, przychodzące multimedia są kopiowane do obszaru roboczego piaskownicy, a
MediaPath/MediaUrlsą przepisywane na ścieżkę względną, taką jakmedia/inbound/<filename>. - Rozumienie multimediów (jeśli skonfigurowane przez
tools.media.*lub współdzielonetools.media.models) działa przed szablonowaniem i może wstawiać bloki[Image],[Audio]i[Video]doBody.- Audio ustawia
{{Transcript}}i używa transkrypcji do parsowania poleceń, aby polecenia z ukośnikiem nadal działały. - Opisy wideo i obrazów zachowują dowolny tekst podpisu na potrzeby parsowania poleceń.
- Jeśli aktywny główny model obrazów już natywnie obsługuje widzenie, OpenClaw pomija blok podsumowania
[Image]i zamiast tego przekazuje oryginalny obraz do modelu.
- Audio ustawia
- Domyślnie przetwarzany jest tylko pierwszy pasujący załącznik obrazu/audio/wideo; ustaw
tools.media.<cap>.attachments, aby przetwarzać wiele załączników.
Limity i błędy
Limity wysyłania wychodzącego (wysyłka WhatsApp web)
- Obrazy: do
channels.whatsapp.mediaMaxMb(domyślnie: 50 MB) po ponownej kompresji. - Audio/głos/wideo: limit 16 MB; dokumenty: limit 100 MB.
- Zbyt duże lub nieczytelne multimedia → czytelny błąd w logach, a odpowiedź jest pomijana.
Limity rozumienia multimediów (transkrypcja/opis)
- Domyślnie obraz: 10 MB (
tools.media.image.maxBytes). - Domyślnie audio: 20 MB (
tools.media.audio.maxBytes). - Domyślnie wideo: 50 MB (
tools.media.video.maxBytes). - Zbyt duże multimedia pomijają rozumienie, ale odpowiedzi nadal przechodzą z oryginalną treścią.
Uwagi do testów
- Obejmij przepływy wysyłania i odpowiedzi dla przypadków obrazu/audio/dokumentu.
- Zweryfikuj ponowną kompresję obrazów (ograniczenie rozmiaru) i flagę notatki głosowej dla audio.
- Upewnij się, że odpowiedzi z wieloma multimediami rozsyłają się jako sekwencyjne wysyłki.
Powiązane
Was this useful?