holidays
في بايثون@BotFather
على Telegram لإعداد الروبوت الخاص بك واحصل على رمز Telegram Bot API المميز له3.10.12
إلى 3.12.2
pip install -r requirements.txt
(تم اختباره والعمل مع الإصدارات المدرجة في require.txt)pydub
عادةً تثبيت ffmpeg
بشكل منفصل. لاحظ أنه لا يلزم عمليا pydub
أو ffmpeg
إذا كنت لا تستخدم وظيفة الرسائل الصوتية/WhisperAPI، ولكن إذا كنت تستخدمها، فاقترح التثبيت (Debian/Ubuntu Linux): sudo apt-get install ffmpeg
lynx
على نظامك؛ يجب تشغيله كعملية فرعية. (قم بالتثبيت على Debian/Ubuntu Linux باستخدام: sudo apt-get install lynx
)git clone https://github.com/FlyingFathead/TelegramBot-OpenAI-API/ &&
cd TelegramBot-OpenAI-API/
pip install -r requirements.txt
sudo apt-get install -y ffmpeg lynx
TELEGRAM_BOT_TOKEN
، أو وضعه في ملف نصي يسمى bot_token.txt
داخل الدليل config/
(= config/bot_token.txt
)OPENAI_API_KEY
أو وضعه في ملف نصي يسمى api_token.txt
داخل دليل البرنامج الرئيسيOPENWEATHERMAP_API_KEY
و MAPTILER_API_KEY
وفقًا لذلك. يمكنك الحصول على مفاتيح API من OpenWeather وMapTilerWEATHERAPI_KEY
لاستخدامها.OPENROUTESERVICE_API_KEY
من OpenrouteservicePERPLEXITY_API_KEY
config/config.ini
حسب رغبتكpython src/main.py
يجب تثبيت Docker على جهازك.
مفتاح Telegram Bot API ومفتاح OpenAI API :
أولاً، قم باستنساخ المستودع من GitHub:
git clone https://github.com/FlyingFathead/TelegramBot-OpenAI-API.git
cd TelegramBot-OpenAI-API
يتضمن هذا المشروع برنامجًا نصيًا للإعداد يرشدك خلال إدخال مفاتيح واجهة برمجة التطبيقات (API) الخاصة بك وإنشاء ملف .env
.
قم بتشغيل البرنامج النصي:
./docker_setup.sh
اتبع الإرشادات التي يقدمها البرنامج النصي. سيطلب منك مفتاح OpenAI API ومفتاح Telegram Bot API، والتحقق من صحتهما، وإنشاء ملف .env
باستخدام بيانات الاعتماد الخاصة بك.
بمجرد إنشاء ملف .env
، ستحتاج إلى إنشاء صورة Docker.
يمكنك تشغيل docker_deploy.sh
المميز لإنشاء صورة Docker:
sudo ./docker_deploy.sh
أو يمكنك إنشائه يدويًا:
sudo docker build -t telegrambot-openai-api .
سيؤدي هذا إلى إنشاء الصورة محليًا بناءً على Dockerfile
الموجود في المستودع.
بعد إنشاء الصورة بنجاح، يمكنك تشغيل الروبوت في حاوية Docker.
قم بتشغيل الحاوية باستخدام الأمر التالي:
sudo docker run --env-file .env --name telegrambot-openai-api -d telegrambot-openai-api
-d
بتشغيل الحاوية في الوضع المنفصل (في الخلفية).--env-file .env
بإدخال مفاتيح API الخاصة بك في الحاوية.يمكنك التحقق مما إذا كانت الحاوية قيد التشغيل باستخدام:
sudo docker ps
سيؤدي هذا إلى سرد كافة الحاويات قيد التشغيل. إذا كان الروبوت الخاص بك يعمل بشكل صحيح، فيجب أن يظهر في القائمة.
إذا كنت بحاجة إلى إيقاف الروبوت، يمكنك القيام بذلك عن طريق تشغيل:
sudo docker stop < container_id >
استبدل <container_id>
بمعرف الحاوية الفعلي، والذي يمكنك الحصول عليه من مخرج docker ps
.
السجلات : إذا كنت بحاجة إلى عرض سجلات الروبوت لاستكشاف أية مشكلات وإصلاحها، فيمكنك استخدام:
sudo docker logs < container_id >
إعادة تشغيل الحاوية : إذا أوقفت الحاوية وأردت تشغيلها مرة أخرى، فيمكنك إما تشغيل أمر docker run
مرة أخرى أو إعادة تشغيل الحاوية الحالية باستخدام:
sudo docker start < container_id >
إذا كان المستودع يتلقى تحديثات وتريد تطبيقها، فاتبع الخطوات التالية:
سحب أحدث التغييرات من GitHub:
git pull origin main
إعادة بناء صورة Docker:
sudo docker build -t telegrambot-openai-api .
أوقف الحاوية قيد التشغيل حاليًا:
sudo docker stop < container_id >
ابدأ حاوية جديدة باستخدام الصورة المحدثة:
sudo docker run --env-file .env --name telegrambot-openai-api -d telegrambot-openai-api
يوجد أيضًا برنامج نصي docker_deploy.sh
مضمن يهدف إلى جعل عملية إعادة البناء والنشر أقل صعوبة.
يجب أن يكون لديك الآن TelegramBot-OpenAI-API قيد التشغيل في حاوية Docker، ومتصلة بالكامل بكل من Telegram وOpenAI. استمتع بالبوت الخاص بك!
إذا واجهت أية مشكلات، فارجع إلى السجلات أو تواصل مع صفحة المشكلات الخاصة بالمستودع.
config.ini
الخاص بك استخدم configmerger.py
لتحديث ملفات التكوين القديمة إلى إصدار أحدث config.ini
. يمكنك القيام بذلك عن طريق حفظ نسخة من التكوين الحالي الخاص بك في ملف يسمى myconfig.txt
وإدراج الأسطر التي تريد الاحتفاظ بها للإصدار الأحدث فيه.
بعد ذلك، ما عليك سوى تشغيل python src/configmerger.py myconfig.txt
وسيتم ترحيل جميع خطوط التكوين الموجودة لديك إلى الخط الجديد. يعمل في معظم الحالات، ولكن تذكر أن تكون حذرًا وتتحقق مرة أخرى من أي مشكلات تتعلق بالترحيل باستخدام ie diff
!
(مثال) كيفية دمج وتحديث التكوين الحالي الخاص بك:
python3 src/configmerger.py myconfig.txt
calc_module.py
config.ini
ضمن قسم NWS
config.ini
لتكوين تنبيهات وتنبيهات الطقس NWSconfig.ini
، حتى إذا كان لديك طرق جلب أخرى ممكّنة (مثل OpenWeatherMap)، بدلاً من أن تكون آمنًا وليس آسفًاdocker_setup.sh
لتسهيل النشر المستند إلى DockerDockerfile
واكتشاف الأخطاء بشكل أفضل عند تلقي 401 Unauthorized
python src/main.py
لبدء تشغيل الروبوت من الآن فصاعدًاconfig.ini
source
لها عند الاتصال بها عبر استدعاءات الوظائف، بحيث يتم الآن تسجيل أي عمليات سحب بيانات خارجية بشكل أكثر وضوحًاconfig/
افتراضيًاconfig/
whisper-transcriber-telegram-bot
الخاص بيbot_token.py
وتحديثه وفقًا لذلكconfig_paths.py
الآن على التكوين على مستوى المشروع لمسارات ملفات التكوين ( config.ini
، وما إلى ذلك...)bot_token.txt
موجود (إذا تم استخدامه) إلى config/
configmerger.py
للتحديث بالتكوينات المخصصة الخاصة بكllama-3.1-sonar-small-128k-online
) بسبب عمليات الإيقاف والتحديثات في نماذجهمconfig.ini
عبر EnableAgenticBrowsing = True
api_get_duckduckgo_search.py
؛ رابط الوكيل الذي يتبع WIPmarkdown_to_html
في modules.py
)calc_module.py
لضمان الدقة في طلبات الحساب.rss_parser.py
)perplexity_handler.py
)yfinance
pip)gpt-4o-mini
في التكوينات الافتراضية بدلاً من gpt-3.5-turbo
(أحدث وأرخص وأفضل)langdetect
عند استخدام ie Perplexity API للاستعلامات عن المعلوماتdetect_language
في api_perplexity_search.py
)langdetect
ويمكن الاستفادة منها بشكل أكبر من خلال اختيار النموذجapi_key.py
config.ini
holidays
Python (يمكن تمديدها)yt-dlp
ElasticsearchEnabled
في config.ini
الجديد (اضبط على True
أو False
للتمكين أو التعطيل)langdetect
والتعامل معهlangdetect
بشأن التقييم التلقائي لمتطلبات الترجمة/usagechart
لمخططات الاستخدام (يتطلب matplotlib
)/setsystemmessage <message>
(صالح حتى إعادة تشغيل الروبوت) و /resetsystemmessage
(إعادة التعيين من config.ini
)/reset
لإعادة ضبط الروبوت. قم بتعيين علامتي ResetCommandEnabled
و AdminOnlyReset
في config.ini
وفقًا لذلك.text_message_handler.py
ومعالجة الرسائل الصوتية إلى voice_message_handler.py
config.ini
=> SessionTimeoutMinutes
, MaxRetainedMessages
)log_message
نمطية rotate_log_file
(معالجة ملف السجل) => modules.py
check_global_rate_limit
المعيارية => modules.py
modules.py
token_usage.json
الموجود لديك، وقد تغيرت بنية الملف عن الإصدار السابق)bot_commands.py
، إصدار configmerger.py
الثابتconfigmerger.py
لتسهيل تحديث الروبوت (دمج علامات التكوين القديمة مع الإصدارات الجديدة)config.ini
لتشغيل الخيار أو إيقاف تشغيله/start
الترحيب في config.ini
/usage
لتتبع استخدام الرمز المميز (لمالك الروبوت فقط، 0 للتعطيل في config.ini
)config.ini
)config.ini
utils.py
config.ini
escape_markdown
إلى ملف .py
منفصل، ولم يتم استخدامه على أي حالapi_key.py
, bot_token.py
)Timeout
إلى config.ini
config.ini
/help
و /about