پل و یکپارچه‌سازی

Bale Bridge

پل بله و تلگرام

دو پیام‌رسان جدا را به هم وصل می‌کند، با یک دستیار هوشمند

یک پل که پیام‌ها را بین یک پیام‌رسان داخلی و تلگرام جابه‌جا می‌کند. فایل‌های حجیم را هم با روش جایگزین رد می‌کند و یک دستیار هوش مصنوعی روی همان خط پاسخ می‌دهد.

وضعیت
بتا
پلتفرم
لینوکس (سرور)
فناوری
Python 3
زبان
Python 3
FIG. 01 جریان واقعی کار
  1. 01 پیام در پیام‌رسان اول متن یا فایل
  2. 02 تشخیص نوع پیام پارس محتوا
  3. 03 مسیر مستقیم اگر فایل سبک باشد
  4. 04 مسیر جایگزین برای فایل‌های حجیم
  5. 05 ارسال به پیام‌رسان دوم
  6. 06 دستیار هوشمند پاسخ روی همان خط
01

چرا ساخته شده

مشکلی که حل می‌کند

وقتی بخشی از گفت‌وگوها در یک پیام‌رسان است و بخشی در پیام‌رسان دیگر، جابه‌جایی دستی فایل‌ها و پیام‌ها وقت‌گیر و پرخطاست.

برای چه کسی

کسی که مجبور است همزمان با دو پیام‌رسان کار کند و می‌خواهد یک خط واحد داشته باشد.

02

قابلیت‌ها

6 قابلیت، هر کدام با توضیح کوتاه و مشخص.

  1. 01

    انتقال دوطرفهٔ پیام

    پیام‌های متنی بین دو سرویس رد و بدل می‌شوند.

  2. 02

    جایگزین برای فایل‌ها

    برای فایل‌هایی که از مسیر مستقیم رد نمی‌شوند، مسیر جایگزین انتخاب می‌شود.

  3. 03

    دستیار هوش مصنوعی

    روی همان خط، یک دستیار به پرسش‌ها پاسخ می‌دهد.

  4. 04

    پارس محتوای درسی

    ساختار جلسه‌های درسی از متن پیام‌ها استخراج و نرمال می‌شود.

  5. 05

    خروجی گفت‌وگو

    امکان گرفتن خروجی اچ‌تی‌ام‌ال از یک گفت‌وگو.

  6. 06

    نگهبان خودکار

    یک نگهبان جدا وضعیت پل را می‌پاید و در صورت قطع شدن دوباره بالا می‌آورد.

03

چطور کار می‌کند

رابط این ابزار قابل تصویربرداری نیست، پس به‌جای تصویر ساختگی، جریان واقعی کارش بر اساس مستندات خود پروژه رسم شده است.

نمودار جریان کار — بر اساس مستندات خود پروژه، نه تصویر ماکت
  1. پیام در پیام‌رسان اول متن یا فایل
  2. تشخیص نوع پیام پارس محتوا
  3. مسیر مستقیم اگر فایل سبک باشد
  4. مسیر جایگزین برای فایل‌های حجیم
  5. ارسال به پیام‌رسان دوم
  6. دستیار هوشمند پاسخ روی همان خط
04

راه‌اندازی

دستورها همان‌هایی هستند که در خود پروژه اجرا می‌شوند. هر بلوک یک دکمهٔ کپی دارد.

پیش‌نیازها

  • Python 3 با محیط مجازی
  • یک نشست معتبر برای هر دو پیام‌رسان
  • کلید API برای دستیار هوشمند (اختیاری)

پیش‌نیاز این روش: Python 3 · نشست احراز هویت‌شدهٔ هر دو پیام‌رسان

  1. محیط مجازی بساز

    bash
    cd /home/ubuntu/bale-telegram-bridge
    python3 -m venv venv
    ./venv/bin/pip install aiobale hydrogram
  2. نشست‌ها را احراز هویت کن

    برای هر دو سرویس یک نشست بساز. این فایل‌ها معادل رمز عبور حساب هستند و نباید جایی منتشر شوند.

  3. سرویس را نصب کن

    bash
    sudo tee /etc/systemd/system/bale-bridge.service >/dev/null <<'UNIT'
    [Unit]
    Description=Bale-Telegram Bridge
    After=network.target
    
    [Service]
    Type=simple
    User=ubuntu
    WorkingDirectory=/home/ubuntu/bale-telegram-bridge
    ExecStart=/home/ubuntu/bale-telegram-bridge/venv/bin/python \
      /home/ubuntu/bale-telegram-bridge/bridge.py
    Restart=always
    RestartSec=5
    MemoryMax=400M
    
    [Install]
    WantedBy=multi-user.target
    UNIT
    
    sudo systemctl daemon-reload
    sudo systemctl enable --now bale-bridge

نشانهٔ موفقیت: با journalctl -u bale-bridge -f باید پیام‌های اتصال هر دو سرویس را ببینی.

05

در عمل

وضعیت پل

bash
journalctl -u bale-bridge -n 40 --no-pager

نگهبان

نگهبان در فواصل منظم وضعیت را بررسی می‌کند و در صورت نیاز سرویس را دوباره بالا می‌آورد.

06

محدودیت‌ها و عیب‌یابی

این بخش عمداً صریح است؛ محدودیت‌ها پنهان نشده‌اند.

  • هر نشست فقط روی یک سرور می‌تواند فعال باشد؛ اجرای همزمان روی دو سرور باعث قطعی احراز هویت می‌شود.
  • سرویس پل به فایل تنظیمات دو پروژهٔ دیگر وابسته است، پس جابه‌جایی آن‌ها پل را می‌شکند.
  • مخزن عمومی ندارد.

مشکل‌های واقعی و راه‌حلشان

نشست با خطای تکراری قطع می‌شود

علت همان نشست روی دو سرور همزمان باز شده است.

راه‌حل نسخهٔ اضافه را روی سرور دیگر غیرفعال و غیرقابل‌اجرا کن.

دستیار پاسخ نمی‌دهد

علت کلید هوش مصنوعی از فایل تنظیمات پروژهٔ دیگر خوانده می‌شود و ممکن است در دسترس نباشد.

راه‌حل مسیر و محتوای فایل تنظیمات را بررسی کن.

07

ارتباط با ابزارهای دیگر

فقط ارتباط‌هایی که در خود پروژه‌ها قابل اثبات‌اند.

منابع این اطلاعات

  • سورس bridge.py و ماژول‌های همراه
  • unit سرویس systemd
  • فایل‌های وضعیت و لاگ سرویس

این پروژه مخزن عمومی ندارد، پس هیچ لینک مخزن یا دانلودی برای آن ساخته نشده است.