मुख्य सामग्री पर जाएं
WhatsApp चैनल Baileys Web के माध्यम से चलता है। यह दस्तावेज़ भेजने, Gateway और एजेंट उत्तरों के लिए मौजूदा मीडिया हैंडलिंग नियम दर्ज करता है।

लक्ष्य

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

CLI सतह

  • openclaw message send --media <path-or-url> [--message <caption>]
    • --media वैकल्पिक है; केवल-मीडिया भेजने के लिए कैप्शन खाली हो सकता है।
    • --dry-run हल किया गया पेलोड प्रिंट करता है; --json { channel, to, messageId, mediaUrl, caption } उत्सर्जित करता है।

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

  • इनपुट: स्थानीय फ़ाइल पथ या HTTP(S) URL।
  • प्रवाह: Buffer में लोड करें, मीडिया प्रकार पहचानें, और सही पेलोड बनाएं:
    • छवियां: channels.whatsapp.mediaMaxMb (डिफ़ॉल्ट: 50 MB) को लक्ष्य करते हुए JPEG में रीसाइज़ और रीकंप्रेस करें (अधिकतम साइड 2048px)।
    • ऑडियो/वॉइस/वीडियो: 16 MB तक पास-थ्रू; ऑडियो वॉइस नोट (ptt: true) के रूप में भेजा जाता है।
    • दस्तावेज़: बाकी सब कुछ, 100 MB तक, उपलब्ध होने पर फ़ाइल नाम सुरक्षित रखते हुए।
  • WhatsApp GIF-शैली प्लेबैक: MP4 को gifPlayback: true (CLI: --gif-playback) के साथ भेजें ताकि मोबाइल क्लाइंट इनलाइन लूप करें।
  • MIME पहचान पहले मैजिक बाइट्स, फिर हेडर, फिर फ़ाइल एक्सटेंशन को प्राथमिकता देती है।
  • कैप्शन --message या reply.text से आता है; खाली कैप्शन की अनुमति है।
  • लॉगिंग: गैर-वर्बोज़ ↩️/ दिखाता है; वर्बोज़ में आकार और स्रोत पथ/URL शामिल होते हैं।

ऑटो-रिप्लाई पाइपलाइन

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

इनबाउंड मीडिया से कमांड तक

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

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

आउटबाउंड भेजने की कैप्स (WhatsApp web send)
  • छवियां: रीकंप्रेशन के बाद channels.whatsapp.mediaMaxMb (डिफ़ॉल्ट: 50 MB) तक।
  • ऑडियो/वॉइस/वीडियो: 16 MB कैप; दस्तावेज़: 100 MB कैप।
  • बहुत बड़ा या अपठनीय मीडिया → लॉग में स्पष्ट त्रुटि और उत्तर छोड़ दिया जाता है।
मीडिया समझ कैप्स (ट्रांसक्रिप्शन/विवरण)
  • छवि डिफ़ॉल्ट: 10 MB (tools.media.image.maxBytes)।
  • ऑडियो डिफ़ॉल्ट: 20 MB (tools.media.audio.maxBytes)।
  • वीडियो डिफ़ॉल्ट: 50 MB (tools.media.video.maxBytes)।
  • बहुत बड़ा मीडिया समझ को छोड़ देता है, लेकिन उत्तर मूल बॉडी के साथ फिर भी आगे बढ़ते हैं।

परीक्षणों के लिए नोट्स

  • छवि/ऑडियो/दस्तावेज़ मामलों के लिए भेजने + उत्तर प्रवाह कवर करें।
  • छवियों के लिए रीकंप्रेशन (आकार सीमा) और ऑडियो के लिए वॉइस-नोट फ़्लैग सत्यापित करें।
  • सुनिश्चित करें कि मल्टी-मीडिया उत्तर क्रमिक भेजावों के रूप में फैलते हैं।

संबंधित