Nodes and media
Görüntü ve medya desteği
WhatsApp kanalı Baileys Web üzerinde çalışır. Bu sayfa; gönderim, Gateway ve ajan yanıtları için medya işleme kurallarını kapsar.
Hedefler
- Medya dosyalarını isteğe bağlı bir açıklamayla
openclaw message send --mediaüzerinden gönderme. - Web gelen kutusundan gönderilen otomatik yanıtların metnin yanında medya da içermesine izin verme.
- Türe göre sınırları makul ve öngörülebilir tutma.
CLI Yüzeyi
openclaw message send --target <dest> --media <path-or-url> [--message <caption>]
--media <path-or-url>— medya (görüntü/ses/video/belge) ekler; yerel yolları veya URL'leri kabul eder. İsteğe bağlıdır; yalnızca medya içeren gönderimlerde açıklama boş olabilir.--gif-playback— video medyasını GIF oynatımı olarak işler (yalnızca WhatsApp).--force-document— kanal sıkıştırmasını önlemek için medyayı belge olarak gönderir (Telegram, WhatsApp); görüntüler, GIF'ler ve videolar için geçerlidir.--reply-to <id>,--thread-id <id>,--pin,--silent— yalnızca metin içeren gönderimlerle paylaşılan teslim ve iş parçacığı seçenekleri.--dry-run— çözümlenen yükü yazdırır ve gönderimi atlar.--json— sonucu JSON olarak yazdırır:{ action, channel, dryRun, handledBy, messageId?, payload }(payload, tüm medya referansları dâhil olmak üzere kanala özgü gönderim sonucunu taşır).
WhatsApp Web kanalı davranışı
- Girdi: yerel dosya yolu veya HTTP(S) URL'si.
- Akış: tampon belleğe yükler, medya türünü algılar, ardından türe göre giden yükü oluşturur:
- Görüntüler:
channels.whatsapp.mediaMaxMb(varsayılan 50MB) altında kalacak şekilde optimize edilir. Saydam olmayan görüntüler yeniden JPEG olarak sıkıştırılır (varsayılan kenar basamakları 2048px'ten başlar ve boyut sınırı tekrar tekrar aşıldığında azalır); saydamlık içeren görüntüler PNG olarak tutulur. Kaynak, boyut ve kenar uzunluğu bütçesi içinde zaten kabul edilebilir bir JPEG/PNG/WebP ise yeniden sıkıştırılmak yerine özgün baytlar değiştirilmeden korunur. Animasyonlu GIF'ler hiçbir zaman yeniden kodlanmaz, yalnızca boyut denetiminden geçirilir. - Ses/sesli mesaj: Zaten yerel sesli mesaj biçiminde olmadığı sürece (
.ogg/.opusveyaaudio/ogg/audio/opus), giden ses, sesli mesaj (ptt: true) olarak gönderilmeden önceffmpegaracılığıyla Opus/OGG biçimine dönüştürülür (48kHz mono, 64kbps, en fazla 20 dakika). - Video: 16MB'a kadar doğrudan geçirilir.
- Belgeler: Diğer her şey, varsa dosya adı korunarak 100MB'a kadar gönderilir.
- Görüntüler:
- WhatsApp GIF tarzı oynatım: mobil istemcilerin satır içinde döngüsel oynatması için
gifPlayback: true(CLI:--gif-playback) ile bir MP4 gönderilir. - MIME algılama öncelikle incelenen sihirli baytları, ardından dosya uzantısını ve son olarak yanıt üst bilgilerini kullanır; incelenen genel bir kapsayıcı (
application/octet-stream,zip) daha özel bir uzantı eşlemesini (örneğin XLSX ile ZIP) hiçbir zaman geçersiz kılmaz. - Açıklama
--messageveyareply.textdeğerinden gelir; boş açıklamaya izin verilir. - Günlük kaydı: ayrıntısız modda
↩️/✅gösterilir; ayrıntılı mod boyutu ve kaynak yolunu/URL'sini içerir.
Otomatik Yanıt İşlem Hattı
getReplyFromConfig, diğer alanların yanı sıratext?,mediaUrl?vemediaUrls?içeren bir yanıt yükü (veya yük dizisi) döndürür.- Medya mevcut olduğunda web göndericisi, yerel yolları veya URL'leri
openclaw message sendile aynı işlem hattını kullanarak çözümler. - Birden fazla medya girdisi sağlanırsa bunlar sırayla gönderilir.
Komutlara Gelen Medya
- Gelen web mesajları medya içerdiğinde OpenClaw, medyayı geçici bir dosyaya indirir ve şablon değişkenlerini kullanıma sunar:
{{AttachmentUrl}}— geçerli ekin özgün URL'si veya sağlayıcı referansı.{{AttachmentPath}}— komut çalıştırılmadan önce yazılan yerel geçici yol.{{AttachmentContentType}}— MIME içerik türü.{{AttachmentDir}}— yerel yolu içeren dizin.{{AttachmentIndex}}— sıfır tabanlı kaynak olgu dizini.
- Oturum başına Docker korumalı alanı etkinleştirildiğinde gelen medya korumalı alan çalışma alanına kopyalanır ve ek yolu/referansı
media/inbound/<filename>gibi korumalı alana göreli bir yol olarak yeniden yazılır. {{MediaPath}},{{MediaUrl}},{{MediaType}}ve{{MediaDir}}, plugin SDK geçiş dönemi boyunca kullanımdan kaldırılmış uyumluluk takma adları olarak kalır.- Medya anlama (
tools.media.*veya paylaşılantools.media.modelsüzerinden yapılandırılır), şablonlamadan önce çalışır veBodyiçine[Image],[Audio]ve[Video]blokları ekleyebilir.- Ses,
{{Transcript}}değerini ayarlar ve eğik çizgi komutlarının çalışmaya devam etmesi için komut ayrıştırmada transkripti kullanır. - Video ve görüntü açıklamaları, komut ayrıştırma için tüm açıklama metinlerini korur.
- Etkin birincil model görsel algılamayı zaten yerel olarak destekliyorsa OpenClaw,
[Image]özet bloğunu atlar ve bunun yerine özgün görüntüyü modele iletir.
- Ses,
- Varsayılan olarak yalnızca eşleşen ilk görüntü/ses/video eki işlenir; birden fazla ek seçmek için
tools.media.<capability>.attachmentskullanılır.
Sınırlar ve hatalar
Giden gönderim üst sınırları (WhatsApp web gönderimi)
- Görüntüler: optimizasyondan sonra
channels.whatsapp.mediaMaxMbdeğerine kadar (varsayılan 50MB). - Ses/video: 16MB üst sınırı (paylaşılan varsayılan; WhatsApp üzerinden gönderilirken
mediaMaxMbtarafından geçersiz kılınır). - Belgeler: 100MB üst sınırı (paylaşılan varsayılan; WhatsApp üzerinden gönderilirken
mediaMaxMbtarafından geçersiz kılınır). - Boyut sınırını aşan veya okunamayan medya, günlüklerde açık bir hata oluşturur ve yanıt atlanır.
Medya anlama üst sınırları (transkripsiyon/açıklama)
- Görüntü varsayılanı: 10MB (
tools.media.image.maxBytesile veya hertools.media.models[]girdisi içinmaxBytesile geçersiz kılınır). - Ses varsayılanı: 20MB (
tools.media.audio.maxBytesile veya her girdi için geçersiz kılınır). - Video varsayılanı: 50MB (
tools.media.video.maxBytesile veya her girdi için geçersiz kılınır). - Boyut sınırını aşan medyada anlama işlemi atlanır ancak yanıt özgün gövdeyle yine de iletilir.
Test Notları
- Görüntü/ses/belge durumları için gönderim ve yanıt akışlarını kapsayın.
- Görüntü optimizasyonundan sonra boyut sınırlarını ve ses için sesli mesaj bayrağını doğrulayın.
- Birden fazla medya içeren yanıtların ardışık gönderimler hâlinde dağıtıldığından emin olun.
İlgili
Was this useful?