-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Continuous Integration
committed
Sep 27, 2023
1 parent
dd6e2ef
commit 756b082
Showing
4 changed files
with
615 additions
and
278 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,99 +1,184 @@ | ||
# action-translate-readme | ||
[# ChatGPT Telegram Bot | ||
|
||
* [الإنجليزية](README.md) | ||
* [قراءة الإصدار التقليدي ل README.md](README.zh-TW.md) | ||
* [الصينية المبسطة](README.zh-CN.md) | ||
* [فرنسي](README.French.md) | ||
* [عربى](README.Arabic.md) | ||
انضم إلى [مجموعة التيليجرام](https://t.me/+_01cz9tAkUc1YzZl) للتحدث عن تجربتك الشخصية أو الإبلاغ عن الأخطاء. | ||
|
||
[English](./README.md) | [Simplified Chinese](./README.zh-CN.md) | [Traditional Chinese](./README.zh-TW.md) | ||
|
||
# المقدمة | ||
## ✨ المميزات | ||
|
||
* نعلم جميعًا أن كتابة مستند README تستغرق وقتًا طويلاً ، ولكن الآن هناك حل يمكن أن يوفر لك النصف من وقتك. هذا هو `action-translate-readme` الخاص بنا | ||
✅ يدعم ChatGPT و GPT4 API | ||
|
||
* ترجمة إصدارات README المختلفة بواسطة `gpt3.5` | ||
✅ يدعم البحث عبر الإنترنت باستخدام Duckduckgo و Google🔍. يتم توفير بحث DuckDuckGo بشكل افتراضي ، ويجب على المستخدم تطبيق API الرسمي لبحث Google. يمكن أن يوفر معلومات فورية لم يكن GPT قادرًا على الإجابة عليها من قبل ، مثل المشهد الساخن في Weibo اليوم ، والطقس في مكان معين اليوم ، وتقدم شخص معين أو أخبار. | ||
|
||
* عن طريق ** Github Actions (CI / CD) التحميل التلقائي للكتابة(commit، push)** للملفات المترجمة | ||
✅ يدعم سؤال وجواب الوثيقة بناءً على قاعدة بيانات المتجه المضمنة. في البحث ، يتم تنفيذ البحث الدلالي التلقائي للمستندات PDF التي تم البحث عنها ، ويتم استخراج المحتوى المتعلق ب PDF بناءً على قاعدة البيانات المتجهية. يدعم استخدام الأمر "qa" لتسجيل الموقع بالكامل باستخدام ملف "sitemap.xml" ، والإجابة على الأسئلة بناءً على قاعدة البيانات المتجهية ، وهو مناسب بشكل خاص لمواقع الوثائق ومواقع wiki لبعض المشاريع. | ||
|
||
* على سبيل المثال: ** كتابة **أو** تعديل **إصدار README الإنجليزي، توليد إصدار README الصيني التقليدي و الصيني المبسط و الفرنسي... إلخ | ||
✅ يدعم الانتقال بين نماذج GPT3.5 و GPT4 ونماذج أخرى من خلال أمر "info" في نافذة الدردشة | ||
|
||
ملاحظة: يتم تحقيق المترجم في الإصدار v1 عن طريق حزمة جانبية من `Linux` ؛ ويتم تحقيق الإصدار v2 عن طريق استخدام برنامج [`g4f`](https://github.com/xtekky/gpt4free) لاستخدام ترخيص openai بشكل مجاني. | ||
✅ يعالج الرسائل بشكل غير متزامن ، ويجيب على الأسئلة بأكثر من خط ، ويدعم الحوارات المعزولة ، ولكل مستخدم حوارات مختلفة | ||
|
||
✅ يدعم تقديم Markdown الدقيق للرسائل ، باستخدام [مشروع] آخر (https://github.com/yym68686/md2tgmd) من مشاريعي | ||
|
||
# كيفية الاستخدام؟ | ||
✅ يدعم الإخراج التدفقي ، ويحقق تأثير الآلة الكاتبة | ||
|
||
1. انقر فوق رمز النجمة لإضافة هذا المشروع إلى مستودع GitHub الخاص بك. | ||
✅ يدعم Whitelisting لمنع السوء المستخدم وتسريب المعلومات | ||
|
||
2. تعيين `Github Token` الخاص بك: | ||
✅ متعدد المنصات ، كسر حواجز المعرفة في أي وقت وفي أي مكان مع Telegram | ||
|
||
* [قم بإنشاء **`Github Secret Token`** جديد](https://github.com/settings/tokens/new) | ||
* إعداد | ||
* تمكين المطور | ||
* بيانات اعتماد الوصول الشخصية - `الرموز الكلاسيكية` | ||
* إنشاء رمز جديد | ||
* اختر النطاق: `repo` و `workflow` | ||
* **حافظ** على الرمز السري الخاص بك (لا تفقده ، ستحتاج إليه في المستقبل) | ||
|
||
<img src="https://github.com/Lin-jun-xiang/action-translate-readme/assets/63782903/b7487b49-817c-4925-b94a-bdb7b025a0c2" width=" 60%" /> | ||
✅ يدعم نقرة واحدة Zeabur ونشر Replit ويستند إلى التكلفة الصفرية الحقيقية ويدعم kuma anti-sleep. يدعم أيضًا Docker و Fly.io نشر | ||
|
||
* أنشئ مفتاح سرّي جديد للـ **`repository secret`** | ||
* في مستودعك - الإعدادات | ||
* `Securits and variables` | ||
* `Actions` | ||
* `New repository secret` | ||
* اضغط على `token` ثم قم بتسميته (مثل: `Action_Bot`) | ||
## متغيرات البيئة | ||
|
||
<img src="https://github.com/Lin-jun-xiang/action-translate-readme/assets/63782903/27dc7bcd-633f-431e-98e8-387b97ecd47c" width=" 60%" /> | ||
| اسم المتغير | التعليق | | ||
| ------ | ------ | | ||
| **BOT_TOKEN (مطلوب)** | رمز الروبوت Telegram. أنشئ الروبوت على [BotFather] (https://t.me/BotFather) للحصول على BOT_TOKEN. | | ||
| **WEB_HOOK (مطلوب)** | عندما يتلقى الروبوت التيليجرام رسالة من مستخدم ، سيتم تمرير الرسالة إلى WEB_HOOK ، حيث سيستمع الروبوت إليه ويعالج الرسائل التي تم استلامها في الوقت المناسب. | | ||
| **API (مطلوب)** | مفتاح OpenAI أو API من الجهات الخارجية. | | ||
| API_URL (اختياري) | إذا كنت تستخدم API الرسمي لـ OpenAI ، فلا حاجة لتعيين هذا الإعداد. إذا كنت تستخدم API من الطرف الثالث ، فيجب عليك ملء موقع الوكيل من الطرف الثالث. الافتراضي هو: https://api.openai.com/v1/chat/completions | | ||
| GPT_ENGINE (اختياري) | ضبط النموذج QA الافتراضي. الافتراضي هو: `gpt-3.5-turbo`. يتمكن المستخدم من تبديل هذا العنصر بحرية باستخدام أمر "info" الخاص بالروبوت ، ولا يحتاج إلى التعيين بشكل أساسي. | | ||
| NICK (اختياري) | الافتراضي فارغ ؛ NICK هو اسم الروبوت. سيستجيب الروبوت فقط عندما تبدأ الرسالة بـ NICK الذي يدخله المستخدم ، وإلا سيستجيب الروبوت لأي رسالة. وخاصةً في دردشات المجموعات ، إذا لم يكن لديك NICK ، فسيتم الرد على جميع الرسائل. | | ||
| PASS_HISTORY (اختياري) | الافتراضي هو صحيح. يتذكر الروبوت سجل المحادثة ويأخذ السياق بعين الاعتبار عند الرد في المرة القادمة. إذا تم تعيين false ، فسينسى الروبوت سجل المحادثة ويأخذ بعين الاعتبار فقط المحادثة الحالية. | | ||
| GOOGLE_API_KEY (اختياري) | إذا كنت بحاجة إلى استخدام بحث Google ، فيجب عليك تعيينه. إذا لم تقم بتعيين هذا المتغير البيئي ، فسيكون البحث الافتراضي للروبوت هو بحث Duckduckgo. أنشئ أوراق اعتماد في [APIs & Services] لـ Google Cloud (https://console.cloud.google.com/apis/api/customsearch.googleapis.com) وستكون مفتاح API GOOGLE_API_KEY في صفحة الأوراق الاعتمادية. يمكن الاستعلام عن بحث Google 100 مرة في اليوم ، مما يكفي تمامًا للاستخدام الخفيف. عندما يتم الوصول إلى حد الاستخدام ، سيتم إيقاف تشغيل بحث Google تلقائيًا بالنسبة للروبوت. | | ||
| GOOGLE_CSE_ID (اختياري) | إذا كنت بحاجة إلى استخدام بحث Google ، فيجب عليك تعيينه معا مع GOOGLE_API_KEY. أنشئ محرك بحث من خلال [Programmable Search Engine] (https://programmablesearchengine.google.com/) ، حيث يكون معرف محرك البحث قيمة GOOGLE_CSE_ID. | | ||
| القائمة البيضاء (اختياري) | حدد المستخدمين الذين يمكنهم الوصول إلى الروبوت ، واعرض معرفات المستخدمين المصرح لهم باستخدام الروبوت بـ ','. | ||
|
||
3. في الدليل `.github/workflows/your_action.yml`.، قم بإنشاء مثال عملك ، يمكنك نسخه مباشرة: | ||
## zeabur نشر عن بعد (موصى به) | ||
|
||
``` | ||
# .github/workflows/translate.yml | ||
name: Translate Readme | ||
نشر بنقرة واحدة: | ||
|
||
on: | ||
push: | ||
branches: ['**'] | ||
[![اِنصَبِرْ] على النشر](https://zeabur.com/templates/R5JY5O?referralCode=yym68686) | ||
|
||
jobs: | ||
translate: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 3 | ||
إذا كنت بحاجة إلى تحديثات وظيفة متابعة ، فإن طريقة النشر التالية موصى بها: | ||
|
||
- name: Auto Translate | ||
uses: Lin-jun-xiang/action-translate-readme@v2 # Based on the tag | ||
with: | ||
token: ${{ secrets.Action_Bot }} # Based on step2 name | ||
g4f_provider: g4f.Provider.DeepAi # You can change this provider | ||
langs: "en,zh-TW,zh-CN,French,Arabic" # You can define any langs | ||
``` | ||
شوكل هذا المستودع أولاً ، ثم سجّل في [Zeabur](https://zeabur.com) ، والحصة الحرة كافية للاستخدام الخفيف. قم بالاستيراد من مستودع Github الخاص بك واضبط اسم المجال (الذي يجب أن يتطابق مع WEB_HOOK) ومتغيرات البيئة ، وأعد نشره. إذا كنت بحاجة إلى تحديثات وظيفة في المتابعة ، فقط مزامنة هذا المستودع في المستودع الخاص بك وأعد النشر في Zeabur للحصول على أحدث الوظائف. | ||
|
||
هناك ثلاثة معلمات في `.yml` يجب مراعاتها بشكل خاص: | ||
## Replit نشر عن بعد | ||
|
||
* `token`: الرمز السري الذي تم إنشاؤه بموجب الخطوة 2 في المستودع | ||
* `g4f_provider`: مزود gpt ، يرجى الرجوع إلى [هذا الرابط](https://github.com/xtekky/gpt4free/tree/main#gpt-35--gpt-4) للحصول على مزيد من المعلومات | ||
* `langs`: أي لغات تريد إنشاء إصدارات لها ، يرجى تحديدها بفصلها بـ `,` ، مثلاً: | ||
* `"en"`: الإنجليزية فقط | ||
* `"en,zh-TW"`: الإنجليزية، الصينية التقليدية | ||
* `"French,Arabic"`: الفرنسية، العربية | ||
[![Run on Repl.it](https://replit.com/badge/github/yym68686/ChatGPT-Telegram-Bot)](https://replit.com/new/github/yym68686/ChatGPT-Telegram-Bot) | ||
|
||
4. يمكنك الآن تحديث `README.md` ، وسيتم إنشاء إصدار مترجم تلقائيًا! | ||
بعد استيراد مستودع Github ، قم بتعيين أمر التشغيل | ||
|
||
--- | ||
```bash | ||
pip install -r requirements.txt > /dev/null && python3 main.py | ||
``` | ||
|
||
# مثال توضيحي | ||
حدد Secrets في الشريط الجانبي Tools ، وأضف متغيرات البيئة المطلوبة من الروبوت ، حيث: | ||
|
||
![](./img/auto-translation.gif) | ||
- WEB_HOOK: Replit سيُسند لك اسم مجال تلقائيًا ، قم بتعبئة `https://appname.username.repl.co` فيه | ||
- تذكر فتح "Always On" | ||
|
||
--- | ||
انقر فوق زر التشغيل في أعلى الشاشة لتشغيل الروبوت. | ||
|
||
# نتائج الوثيقة الاختبارية | ||
## Fly.io نشر عن بعد | ||
|
||
* راجع [الوثيقة التجريبية](https://github.com/Lin-jun-xiang/vscode-extensions-best/tree/main) | ||
* استخدم أداتنا لتحديث الوثيقة الاختبارية | ||
التوثيق الرسمي: https://fly.io/docs/ | ||
|
||
<a href="#top">عودة إلى أعلى الصفحة</a> | ||
استخدم صورة Docker لنشر تطبيق fly.io | ||
|
||
```bash | ||
flyctl launch --image yym68686/chatgpt:1.0 | ||
``` | ||
|
||
أدخل اسم التطبيق عند المطالبة بذلك ، وحدد No للبدء في Postgresql أو Redis. | ||
|
||
اتبع التعليمات للنشر. يتم توفير اسم مجال ثانوي في لوحة التحكم الرسمية ، والذي يمكن استخدامه للوصول إلى الخدمة. | ||
|
||
تعيين متغيرات البيئة | ||
|
||
```bash | ||
flyctl secrets set WEB_HOOK=https://flyio-app-name.fly.dev/ | ||
flyctl secrets set BOT_TOKEN=bottoken | ||
flyctl secrets set API= | ||
# اختياري | ||
flyctl secrets set NICK=javis | ||
``` | ||
|
||
عرض جميع متغيرات البيئة | ||
|
||
```bash | ||
flyctl secrets list | ||
``` | ||
|
||
إزالة متغيرات البيئة | ||
|
||
```bash | ||
flyctl secrets unset MY_SECRET DATABASE_URL | ||
``` | ||
|
||
ssh إلى حاوية fly.io | ||
|
||
```bash | ||
flyctl ssh issue --agent | ||
# اتصال ssh | ||
flyctl ssh establish | ||
``` | ||
|
||
تحقق مما إذا كان عنوان URL للويب هو صحيحًا | ||
|
||
```bash | ||
https://api.telegram.org/bot<token>/getWebhookInfo | ||
``` | ||
|
||
## Docker Local Deployment | ||
|
||
بدء الحاوية | ||
|
||
```bash | ||
docker run -p 80:8080 -dit \ | ||
-e BOT_TOKEN="telegram bot token" \ | ||
-e WEB_HOOK="https://your_host.com/" \ | ||
-e API="" \ | ||
-e API_URL= \ | ||
yym68686/chatgpt:1.0 | ||
``` | ||
|
||
أو إذا كنت ترغب في استخدام Docker Compose ، فيما يلي مثالًا لـ docker-compose.yml: | ||
|
||
```yaml | ||
version: "3.5" | ||
services: | ||
chatgptbot: | ||
container_name: chatgptbot | ||
image: yym68686/chatgpt:1.0 | ||
environment: | ||
- BOT_TOKEN= | ||
- WEB_HOOK= | ||
- API= | ||
- API_URL= | ||
ports: | ||
- 80:8080 | ||
``` | ||
تشغيل حاوية Docker Compose في الخلفية | ||
```bash | ||
docker-compose up -d | ||
``` | ||
|
||
حزم صورة Docker في مستودع الواجهة الأمامية وقم بتحميله على Docker Hub | ||
|
||
```bash | ||
docker build --no-cache -t chatgpt:1.0 -f Dockerfile.build --platform linux/amd64 . | ||
docker tag chatgpt:1.0 yym68686/chatgpt:1.0 | ||
docker push yym68686/chatgpt:1.0 | ||
``` | ||
|
||
## مرجع | ||
|
||
مشاريع المرجع: | ||
|
||
https://core.telegram.org/bots/api | ||
|
||
https://github.com/acheong08/ChatGPT | ||
|
||
https://github.com/franalgaba/chatgpt-telegram-bot-serverless | ||
|
||
https://github.com/gpchelkin/scdlbot/blob/d64d14f6c6d357ba818e80b8a0a9291c2146d6fe/scdlbot/__main__.py#L8 | ||
|
||
التقديم على Markdown للرسالة هو [مشروع] آخر (https://github.com/yym68686/md2tgmd) من مشاريعي. | ||
|
||
## تاريخ النجمة | ||
|
||
<a href="https://github.com/yym68686/ChatGPT-Telegram-Bot/stargazers"> | ||
<img width="500" alt="Star History Chart" src="https://api.star-history.com/svg?repos=yym68686/ChatGPT-Telegram-Bot&type=Date"> | ||
</a> | ||
] |
Oops, something went wrong.