Nodes and media

चित्र और मीडिया समर्थन

WhatsApp चैनल Baileys Web पर चलता है। यह पृष्ठ भेजने, Gateway और एजेंट के उत्तरों के लिए मीडिया प्रबंधन नियमों को कवर करता है।

लक्ष्य

  • वैकल्पिक कैप्शन के साथ openclaw message send --media के माध्यम से मीडिया भेजें।
  • वेब इनबॉक्स से स्वचालित उत्तरों में टेक्स्ट के साथ मीडिया शामिल करने की अनुमति दें।
  • प्रति-प्रकार सीमाओं को उचित और पूर्वानुमेय बनाए रखें।

CLI सतह

openclaw message send --target <dest> --media <path-or-url> [--message <caption>]

  • --media <path-or-url> — मीडिया (चित्र/ऑडियो/वीडियो/दस्तावेज़) संलग्न करें; स्थानीय पथ या URL स्वीकार करता है। वैकल्पिक; केवल मीडिया भेजने के लिए कैप्शन खाली हो सकता है।
  • --gif-playback — वीडियो मीडिया को GIF प्लेबैक के रूप में मानें (केवल WhatsApp)।
  • --force-document — चैनल संपीड़न से बचने के लिए मीडिया को दस्तावेज़ के रूप में भेजें (Telegram, WhatsApp); यह चित्रों, GIF और वीडियो पर लागू होता है।
  • --reply-to <id>, --thread-id <id>, --pin, --silent — केवल टेक्स्ट वाले प्रेषणों के साथ साझा किए जाने वाले डिलीवरी/थ्रेडिंग विकल्प।
  • --dry-run — निर्धारित पेलोड प्रिंट करें और भेजना छोड़ दें।
  • --json — परिणाम को JSON के रूप में प्रिंट करें: { action, channel, dryRun, handledBy, messageId?, payload } (payload में किसी भी मीडिया संदर्भ सहित चैनल-विशिष्ट प्रेषण परिणाम होता है)।

WhatsApp Web चैनल का व्यवहार

  • इनपुट: स्थानीय फ़ाइल पथ या HTTP(S) URL।
  • प्रवाह: बफ़र में लोड करें, मीडिया का प्रकार पहचानें, फिर प्रकार के अनुसार आउटबाउंड पेलोड बनाएँ:
    • चित्र: channels.whatsapp.mediaMaxMb (डिफ़ॉल्ट 50MB) के अंतर्गत रखने के लिए अनुकूलित किए जाते हैं। अपारदर्शी चित्रों को JPEG में पुनः संपीड़ित किया जाता है (डिफ़ॉल्ट आयाम क्रम 2048px से शुरू होता है और आकार सीमा बार-बार पार होने पर घटता है); पारदर्शिता वाले चित्र PNG के रूप में रखे जाते हैं। यदि स्रोत पहले से आकार और आयाम सीमा के भीतर स्वीकार्य JPEG/PNG/WebP है, तो पुनः संपीड़ित करने के बजाय मूल बाइट्स को अपरिवर्तित रखा जाता है। एनिमेटेड GIF को कभी पुनः एन्कोड नहीं किया जाता, केवल उनके आकार की जाँच की जाती है।
    • ऑडियो/वॉइस: यदि ऑडियो पहले से मूल वॉइस ऑडियो (.ogg/.opus, या audio/ogg/audio/opus) नहीं है, तो उसे वॉइस नोट (ptt: true) के रूप में भेजने से पहले ffmpeg के माध्यम से Opus/OGG (48kHz मोनो, 64kbps, अधिकतम 20 मिनट) में ट्रांसकोड किया जाता है।
    • वीडियो: 16MB तक बिना बदलाव के भेजा जाता है।
    • दस्तावेज़: अन्य सभी सामग्री, 100MB तक; उपलब्ध होने पर फ़ाइल नाम संरक्षित रहता है।
  • WhatsApp में GIF-जैसा प्लेबैक: मोबाइल क्लाइंट में इनलाइन लूप कराने के लिए gifPlayback: true (CLI: --gif-playback) के साथ MP4 भेजें।
  • MIME पहचान में पहले मैजिक बाइट्स की जाँच, फिर फ़ाइल एक्सटेंशन और उसके बाद प्रतिक्रिया हेडर को प्राथमिकता दी जाती है; सामान्य रूप से पहचाना गया कंटेनर (application/octet-stream, zip) कभी भी अधिक विशिष्ट एक्सटेंशन मैपिंग (उदाहरण के लिए XLSX बनाम ZIP) को अधिलेखित नहीं करता।
  • कैप्शन --message या reply.text से आता है; खाली कैप्शन की अनुमति है।
  • लॉगिंग: गैर-वर्बोज़ मोड में ↩️/ दिखते हैं; वर्बोज़ मोड में आकार और स्रोत पथ/URL भी शामिल होते हैं।

स्वचालित उत्तर पाइपलाइन

  • getReplyFromConfig अन्य फ़ील्ड के साथ text?, mediaUrl? और mediaUrls? वाला उत्तर पेलोड (या पेलोड की सरणी) लौटाता है।
  • मीडिया मौजूद होने पर, वेब प्रेषक openclaw message send वाली उसी पाइपलाइन का उपयोग करके स्थानीय पथ या URL निर्धारित करता है।
  • यदि कई मीडिया प्रविष्टियाँ दी गई हों, तो उन्हें क्रमिक रूप से भेजा जाता है।

कमांड के लिए इनबाउंड मीडिया

  • जब इनबाउंड वेब संदेशों में मीडिया शामिल होता है, तो OpenClaw उसे एक अस्थायी फ़ाइल में डाउनलोड करता है और ये टेम्पलेटिंग वेरिएबल उपलब्ध कराता है:
    • {{MediaUrl}} — इनबाउंड मीडिया के लिए छद्म-URL।
    • {{MediaPath}} — कमांड चलाने से पहले लिखा गया स्थानीय अस्थायी पथ।
  • जब प्रति-सत्र Docker सैंडबॉक्स सक्षम होता है, तो इनबाउंड मीडिया को सैंडबॉक्स कार्यक्षेत्र में कॉपी किया जाता है और MediaPath/MediaUrl को media/inbound/<filename> जैसे सैंडबॉक्स-सापेक्ष पथ में पुनर्लिखित किया जाता है।
  • मीडिया समझ (tools.media.* या साझा tools.media.models के माध्यम से कॉन्फ़िगर की गई) टेम्पलेटिंग से पहले चलती है और Body में [Image], [Audio] और [Video] ब्लॉक सम्मिलित कर सकती है।
    • ऑडियो {{Transcript}} निर्धारित करता है और कमांड पार्सिंग के लिए ट्रांसक्रिप्ट का उपयोग करता है, ताकि स्लैश कमांड काम करते रहें।
    • वीडियो और चित्र विवरण कमांड पार्सिंग के लिए किसी भी कैप्शन टेक्स्ट को संरक्षित रखते हैं।
    • यदि सक्रिय प्राथमिक मॉडल पहले से मूल रूप से विज़न का समर्थन करता है, तो OpenClaw [Image] सारांश ब्लॉक को छोड़ देता है और इसके बजाय मूल चित्र को मॉडल तक पहुँचाता है।
  • डिफ़ॉल्ट रूप से केवल पहले मेल खाने वाले चित्र/ऑडियो/वीडियो संलग्नक को संसाधित किया जाता है; कई संलग्नकों को संसाधित करने के लिए tools.media.<capability>.attachments निर्धारित करें।

सीमाएँ और त्रुटियाँ

आउटबाउंड प्रेषण सीमाएँ (WhatsApp वेब प्रेषण)

  • चित्र: अनुकूलन के बाद channels.whatsapp.mediaMaxMb (डिफ़ॉल्ट 50MB) तक।
  • ऑडियो/वीडियो: 16MB सीमा (साझा डिफ़ॉल्ट; WhatsApp के माध्यम से भेजते समय mediaMaxMb द्वारा अधिलेखित)।
  • दस्तावेज़: 100MB सीमा (साझा डिफ़ॉल्ट; WhatsApp के माध्यम से भेजते समय mediaMaxMb द्वारा अधिलेखित)।
  • अधिक आकार वाला या अपठनीय मीडिया लॉग में स्पष्ट त्रुटि उत्पन्न करता है और उत्तर छोड़ दिया जाता है।

मीडिया समझ सीमाएँ (ट्रांसक्रिप्शन/विवरण)

  • चित्र डिफ़ॉल्ट: 10MB (tools.media.image.maxBytes)।
  • ऑडियो डिफ़ॉल्ट: 20MB (tools.media.audio.maxBytes)।
  • वीडियो डिफ़ॉल्ट: 50MB (tools.media.video.maxBytes)।
  • अधिक आकार वाले मीडिया की समझ प्रक्रिया छोड़ दी जाती है, लेकिन उत्तर फिर भी मूल मुख्य सामग्री के साथ भेजा जाता है।

परीक्षणों के लिए टिप्पणियाँ

  • चित्र/ऑडियो/दस्तावेज़ मामलों के लिए प्रेषण और उत्तर प्रवाहों को कवर करें।
  • चित्र अनुकूलन के बाद आकार सीमाओं और ऑडियो के लिए वॉइस-नोट फ़्लैग को सत्यापित करें।
  • सुनिश्चित करें कि बहु-मीडिया उत्तर अलग-अलग क्रमिक प्रेषणों में विस्तृत हों।

संबंधित

Was this useful?
On this page

On this page