diff --git a/README.Arabic.md b/README.Arabic.md new file mode 100644 index 00000000..59d1d356 --- /dev/null +++ b/README.Arabic.md @@ -0,0 +1,47 @@ +# بوت تلغرام ChatGPT +انضم إلى مجموعة Telegram لمشاركة تجربتك كمستخدم أو الإبلاغ عن الأخطاء. +[https://t.me/+_01cz9tAkUc1YzZl](https://t.me/+_01cz9tAkUc1YzZl) + +## Features ✨ + +- يدعم ChatGPT وGTP4 API +- دعم البحث عبر الإنترنت مثل duckduckgo و Google، باستخدام البحث الافتراضي duckduckgo ، يتطلب Google API رسميًا. يمكنه الإجابة على المعلومات الحية التي لم يتمكن ChatGPT من الإجابة عليها مثل معلومات البحث الساخنة لهذا اليوم على Weibo، حالة الطقس في بعض الأماكن اليوم، تطورات الأشخاص أو الأخبار، وغيرها الكثير. +- يدعم استخراج الأسئلة والأجوبة المستندة إلى قاعدة بيانات متجهه، وتلقائيا استخراج المحتوى المتعلق بمستندات بتنسيق PDF الموجودة في البحث، ويتيح ايضاً ملفات XML المستخدمة في تحليل ومعالجة البيانات. مثالي لموقع المشاريع الوثائقية، موقع الويكي +- Support changing GPT models with the `info` command. +- يتم تجهيز الرسائل الواردة بطريقة دقيقة وفقًا لـ Markdown. تم استخدام مشروعي الآخر (MD2TGMD) +- يدعم إخراجًا تدفقيًا يدعم تحقيق تأثير الكاتب الآلي. +- يدعم القوائم البيضاء لمنع الإساءة وتسريب المعلومات. +- منصة متعددة، باستخدام Telegram ، يمكنك دائمًا كسر الجدار الجديد للمعرفة. +- الدعم الأزرق الخفيف الأوتوماتيكي ، دعم Fly.io ، وهو توفير البرامج الثابتة والمستخدمة في Docker + +## متغيرات البيئة +| اسم المتغير | ملاحظات | +| -------------- | ------------------------------------------- | +| ** BOT_TOKEN ** (مطلوب) | رمز الروبوت في تيليجرام. يمكنك إنشاء bot للحصول على BOT_TOKEN من [BotFather] (https://t.me/BotFather). | +| ** WEB_HOOK ** (مطلوب) | يتلقى الروبورت بشكل تلقائي أي رسالة أرسلها المستخدم ؛ و سيقوم الربوت بالاستماع إليها ومعالجتها على هذا العنوان. | +| ** API ** (مطلوب) | على غرار OpenAI api ، يجب تشغيل هذه الوظيفة. | +| API_URL (اختياري) | إذا كنت تستخدم OpenAI API الرسمي ، فلا داعي لتعديل هذا المتغير. إذا كنت تستخدم API بديل ، يجب عليك تأكيد URL الخاص به. القيمة الافتراضية هي: `https://api.openai.com/v1/chat/completions` | +| ** GPT_ENGINE ** (اختياري) | إعداد نموذج الإجابة الافتراضي ، القيمة الافتراضية هي : `gpt-3.5-turbo` ، يمكنك استخدام الأوامر info في الروبوت لتبديله. +| ** NICK ** (اختياري) | يمثل اسم الروبورت؛ يظهر فقط عندما يبدأ المستخدم في طلب المساعدة من الروبورت. يتم استخدام هذه العناوين في دردشات المجموعة ، وإذا لم يتم تعيين أي قيمة ، يعمل الروبورت على الإجابة على جميع الرسائل. +| ** GOOGLE_API_KEY ** | يستخدم للبحث عن الروابط إذا قمت بتعيينها. يحتاج Google Bot الى API key، أنشئ مفتاح API من [Google Cloud API Console] (https://console.cloud.google.com/apis/api/customsearch.googleapis.com) ، API Key هو القيمة التي لابد أن تقوم بتعيينها هنا. +| ** GOOGLE_CSE_ID ** | يستخدم للبحث عبر الإنترنت ، عند استخدامك API بديل ، يجب عليك استئجار القيمة المتعلقة ب CVE ID الخاص بك من نظام البحث القابل للتغيير ، [programmable search engine] (https://programmablesearchengine.google.com/). +| قائمة البيضاء (اختياري) | تحديد المستخدمين الذين يمكنهم استخدام هذا البرنامج الثابت ، ويستخدم فصل ID المستخدم المصرح به بـ "," لكتابة هذا البرنامج الثابت. القيمة الافتراضية هي: `None` ، والتي يمكن فتحها لجميع المستخدمين. | + +## تنفيذ النشر +قم بتخزين هذا المشروع والاشتراك في [Zeabur] (https://zeabur.com) ، فهو يوفر رصيد مجاني يمكنك من استخدامه ، يمكنك من استيراد نموذج Github الخاص بك ، ثم ضبط الاسم المستضاف في النطاق المرغوب والبيئة المحيطة بفروع المشروع. بعد ذلك ، انتقل إلى botfather ، وقبول الروبوت وتعيين Token و Webhook ، وضع عنوان URL ل Webhook ووضع عنوان URL المستضاف يجب أن يكون URLs متطابقان. تكمل طريقة النشر هذه الخطوات بعد إعداد Zeabur. + +أو ، قم بمضاعفة هذا المشروع وتسجيل Zeabur. باستخدام github repo & url، يمكنك تحديد url الخاص بك (ضع الخيارات المناسبة) و كفيلد توجيه. + +## إنشاء بوت جديد في telegram +يُنصح بتغيير اسمتستمد التسمية العامة للروبوت من أجل الاحتفاظ بالرسائل بدون أي تغيير عند تغيير المستخدمين للروبوت. + +### تفاصيل API +[تفاصيل Telegram API](https://core.telegram.org/bots/api) + +### التاريخ +يظهر من وقت لآخر البعض الاهتمام بهذا المشروع. فضلاً عن الإكمال ، تمت إضافة الكثير من المزايا. + +## تاريخ النجوم +[a href="https://github.com/yym68686/ChatGPT-Telegram-Bot/stargazers] + Star History Chart +[/a] diff --git a/README.French.md b/README.French.md new file mode 100644 index 00000000..cc302cf2 --- /dev/null +++ b/README.French.md @@ -0,0 +1,172 @@ +# ChatGPT Telegram Bot + +Rejoignez le chat du [groupe Telegram](https://t.me/+_01cz9tAkUc1YzZl) pour partager votre expérience utilisateur ou signaler des bugs. + +## ✨ Fonctionnalités + +✅ Support de l'API ChatGPT et GPT4 + +✅ Prise en charge de la recherche en ligne sur duckduckgo et Google 🔍 . La recherche duckduckgo est fournie par défaut, la recherche Google nécessite une demande API officielle. Il peut répondre aux informations en temps réel que gpt ne pouvait pas répondre auparavant, telles que les tendances populaires sur Weibo aujourd'hui, la météo de certaines zones aujourd'hui, les mises à jour de certaines personnes ou de certaines nouvelles. + +✅ Prise en charge des questions-réponses de documents basées sur des bases de données de vecteurs incorporées. Dans la recherche, pour les fichiers PDF trouvés, une recherche sémantique par vecteurs peut être effectuée automatiquement sur le document PDF, et le contenu associé à PDF peut être extrait en fonction de la base de données de vecteurs. Prend en charge l'utilisation de la commande "qa" pour la vectorisation globale d'un site Web contenant un fichier sitemap.xml, et peut répondre aux questions en fonction de la base de données de vecteurs. Convient particulièrement aux sites Web de documentation de projets, aux sites Web de wiki. + +✅ Prise en charge de la commutation libre des modèles gpt3.5, gpt4, etc. en utilisant la commande "info" dans la fenêtre de chat + +✅ Traitement asynchrone des messages, réponse à plusieurs fils, prise en charge de l'isolation de la conversation, conversation différente pour différents utilisateurs + +✅ Prise en charge d'un rendu Markdown de message précis, utilisant mon autre [projet](https://github.com/yym68686/md2tgmd) + +✅ Prise en charge de la sortie en continu pour une simulation d'effet de machine à écrire + +✅ Prise en charge d'une liste blanche pour éviter les abus et les fuites de renseignements personnels + +✅ Plateforme complète, disponible à tout moment et en tout lieu, à tout moment, n'importe où, avec Telegram qui peut briser les barrières de la connaissance + +✅ Prise en charge de Zeabur à un bouton, déploiement Replit, coûte zéro, déploiement idiot, support Kuma pour empêcher les interruptions de sommeil. Prend également en charge le déploiement de docker et fly.io + +## Variables d'environnement + +| Nom de la variable | Remarque | +| ---------------------- | ------------------------------------------------------------ | +| **BOT_TOKEN (obligatoire)** | Token pour le robot Telegram. Créez un robot sur [BotFather](https://t.me/BotFather) pour obtenir le BOT_TOKEN. | +| **WEB_HOOK (obligatoire)** | Lorsque le robot Telegram reçoit un message d'un utilisateur, ce message est transmis à WEB_HOOK. Le robot écoutera le WEB_HOOK pour traiter les messages de Telegram reçus dans la boîte. | +| **API (obligatoire)** | Clé API OpenAI ou tierce partie. | +| API_URL (optionnel) | Non requis lorsque l'API officielle est utilisée. Si vous utilisez une API tierce, vous devez remplir l'URL du site proxy tiers. La valeur par défaut est : https://api.openai.com/v1/chat/completions | +| GPT_ENGINE (optionnel) | Modèle de question-réponse par défaut. Défaut : "gpt-3.5-turbo". Cette option peut être librement commutée à l'aide de la commande d'information du robot, et il n'est pas nécessaire de la définir. | +| NICK (optionnel) | Par défaut vide. Le NICK est le nom du robot. Le robot répond uniquement si un utilisateur commence son message par NICK, sinon il répond à tous les messages. Surtout dans les groupes sans NICK, le robot répondra à tous les messages. | +| PASS_HISTORY (optionnel) | Par défaut, vrai indique que le robot se souviendra de l'historique de la conversation et tiendra compte du contexte lors de la réponse la prochaine fois. Si pass_history est faux, le robot oublie l'historique de la conversation et ne tient compte que de la conversation actuelle. | +| GOOGLE_API_KEY (optionnel) | Requis pour la recherche sur Google. Si cette variable d'environnement n'est pas définie, la recherche par défaut est fournie par duckduckgo. Créez un identifiant API dans [API et services](https://console.cloud.google.com/apis/api/customsearch.googleapis.com) de Google Cloud. La clé d'API est GOOGLE_API_KEY sur la page de credential. Google permet à une journée de consulter 100 fois, suffisant pour une utilisation légère. Si le quota est atteint, la recherche Google sera automatiquement fermée. | +| GOOGLE_CSE_ID (optionnel) | Requis pour la recherche sur Google en conjonction avec GOOGLE_API_KEY. Créez un moteur de recherche dans [Programmable Search Engine](https://programmablesearchengine.google.com/). La valeur GOOGLE_CSE_ID est l'identifiant de ce moteur de recherche. | +| whitelist (optionnel) | Connectez les ID utilisateur autorisés à utiliser le robot. La valeur par défaut est None, c'est-à-dire que le robot est ouvert à tous. | + +## Déploiement distant Zeabur (recommandé) + +Déploiement en un clic : + +[![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/R5JY5O?referralCode=yym68686) + +Pour les mises à jour futures, le déploiement suivant est recommandé : + +Commencez par fork le présent dépôt, puis inscrivez-vous sur [Zeabur](https://zeabur.com), l'enveloppe dont la capacité gratuite est suffisante pour une utilisation légère. Importez à partir de votre propre dépôt GitHub et configurez le nom de domaine (qui doit correspondre à WEB_HOOK) et les variables d'environnement, et effectuez un redéploiement. Les mises à jour fonctionnelles ultérieures peuvent être synchronisées avec ce dépôt et redéployées sur Zeabur pour obtenir les dernières fonctionnalités. + +## Déploiement à distance Replit + +[![Run on Repl.it](https://replit.com/badge/github/yym68686/ChatGPT-Telegram-Bot)](https://replit.com/new/github/yym68686/ChatGPT-Telegram-Bot) + +Après avoir importé le dépôt de Github, configurez la commande d'exécution dans "pip install -r requirements.txt > /dev/null && python3 main.py". Dans la colonne de gauche "Tools", sélectionnez "Secrets" et ajoutez les variables d'environnement requises pour le robot. N'oubliez pas d'allumer Always On. + +## Déploiement à distance fly.io + +Documentation officielle: https://fly.io/docs/ + +Déployer l'application sur fly.io à l'aide de l'image Docker + +```bash +flyctl launch --image yym68686/chatgpt:1.0 +``` + +Saisissez le nom de l'application. Si l'initialisation de Postgresql ou Redis est proposée, refusez. + +Déployez selon les instructions. Un nom de domaine de second niveau sera fourni sur le panneau de contrôle du site Web officiel, et le service peut être accédé à l'aide de ce nom de domaine. + +Configurer les variables d'environnement + +```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 COOKIES= +# Facultatif +flyctl secrets set NICK=javis +``` + +Voir toutes les variables d'environnement + +```bash +flyctl secrets list +``` + +Supprimer une variable d'environnement + +```bash +flyctl secrets unset MY_SECRET DATABASE_URL +``` + +Connexion SSH à un conteneur fly.io + +```bash +# Générer une clé +flyctl ssh issue --agent +# Connexion SSH +flyctl ssh establish +``` + +Vérifiez que l'URL de webhook est correcte + +``` +https://api.telegram.org/bot/getWebhookInfo +``` + +## Déploiement Docker + +Lancement de conteneur : + +```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 +``` + +Si vous préférez Docker Compose, voici un exemple de fichier 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 +``` + +Lancement du conteneur Docker Compose en arrière-plan + +```bash +docker-compose up -d +``` + +Packager l'image Docker et la pousser sur 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 +``` + +## Référence + +Les projets de référence sont les suivants : + +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 + +Le rendu markdown des messages utilise mon autre projet : https://github.com/yym68686/md2tgmd + +## Historique des Étoiles + + + Star History Chart + \ No newline at end of file diff --git a/README.md b/README.md index 6c79ff47..ad4bd00a 100644 --- a/README.md +++ b/README.md @@ -4,122 +4,122 @@ Join the [Telegram Group](https://t.me/+_01cz9tAkUc1YzZl) chat to share your use ## ✨ Features -✅ 支持 ChatGPT 和 GPT4 API +✅ Supports ChatGPT and GPT4 API -✅ 支持 duckduckgo,Google 联网搜索🔍。默认提供 duckduckgo 搜索,google 搜索需要自行申请官方 API。可以回答之前 gpt 回答不了的实时信息,比如今天的微博热搜,今天某地的天气,某某人或新闻的进展 +✅ Supports duckduckgo, Google network search🔍. The default search is duckduckgo. Google search requires application of the official API separately. It can answer real-time information that gpt couldn't answer before, such as today's hot Weibo, the weather in a certain place today, the progress of a certain person or news. -✅ 支持基于嵌入向量数据库的文档问答。在搜索中,对于搜索到的 pdf,可以自动对 PDF 文档进行向量化语义搜索,并基于向量数据库提取 pdf 相关的内容。支持使用 qa 命令对含有 sitemap.xml 文件的网站整体向量化,并基于向量数据库回答问题,特别适合一些项目的文档网站,wiki 网站 +✅ Supports document question answering based on embedding vector database. In searching, for the searched PDF, it can automatically perform vector semantic search on the PDF document, and extract the relevant content of PDF based on the vector database. It supports using the qa command to vectorize the entire website with the sitemap.xml file and answer questions based on the vector database. It is especially suitable for some project document websites, wiki websites. -✅ 支持在聊天框内使用 info 命令通过点击按钮自由切换 gpt3.5,gpt4 等模型 +✅ Supports switching freely between models such as gpt3.5, gpt4, etc. using the info command in the chat box by clicking the button. -✅ 异步处理消息,多线程回答问题,支持对话隔离,不同用户不同对话 +✅ Asynchronous processing of messages, answering questions in multiple threads, supporting conversation isolation, different users have different conversations -✅ 支持精准的消息 Markdown 渲染,用的是我的另一个[项目](https://github.com/yym68686/md2tgmd) +✅ Supports accurate message Markdown rendering, using my another [project](https://github.com/yym68686/md2tgmd) -✅ 支持流式输出,实现打字机效果 +✅ Supports streaming output, achieving typewriter effect -✅ 支持白名单,防止滥用与信息泄漏 +✅ Supports whitelist to prevent abuse and information leakage -✅ 全平台,随时随地,只要有 telegram 就可以打破知识壁垒 +✅ Cross-platform, breaking knowledge barriers anytime, anywhere with Telegram -✅ 支持一键 Zeabur,Replit 部署,真正的零成本,傻瓜式部署,支持 kuma 防睡眠。同时支持 docker,fly.io 部署 +✅ Supports one-click Zeabur, Replit deployment, zero cost, fool-style deployment, and kuma anti-sleepy. Supports Docker, fly.io deployment -## 环境变量 +## Environmental Variables -| 变量名称 | 备注 | -| ---------------------- | ------------------------------------------------------------ | -| **BOT_TOKEN(必填)** | telegram 机器人令牌,在 [BotFather](https://t.me/BotFather) 创建一个 bot 以获取 BOT_TOKEN。 | -| **WEB_HOOK(必填)** | telegram bot 每次收到用户消息,都会把消息传给 WEB_HOOK,机器人会在此监听,及时处理 telegram 里面收到的消息。 | -| **API(必填)** | OpenAI 或者第三方的 api key。 | -| API_URL(可选) | 如果使用 OpenAI 官方 API,不需要设置此项。如果使用第三方API,需要填写第三方代理网址,默认值为:https://api.openai.com/v1/chat/completions | -| GPT_ENGINE(可选) | 设置默认的问答模型,默认为:`gpt-3.5-turbo`,该项可以使用机器人 info 命令自由切换,原则上不需要设置。 | -| NICK(可选) | 默认为空,NICK 是机器人的名字。当用户输入消息以 NICK 开头,机器人才会回答,否则机器人会回答任何消息。尤其在群聊里,没有 NICK,机器人会对所有消息进行回复。 | -| PASS_HISTORY(可选) | 默认为真,表示机器人会记住对话历史,下次回复时会考虑上下文。如果设置为假,机器人会忘记对话历史,只考虑当前对话。 | -| GOOGLE_API_KEY(可选) | 如果需要谷歌搜索,则需要设置。如果不设置此环境变量,机器人默认提供 duckduckgo 搜索。在 Google cloud 的 [API 与服务](https://console.cloud.google.com/apis/api/customsearch.googleapis.com) 中创建凭据,在凭据页面 API Key 就是 GOOGLE_API_KEY。Google 搜索一天可以查询 100 次,轻度使用完全足够,达到限额,机器人会自动关闭 Google 搜索。 | -| GOOGLE_CSE_ID(可选) | 如果需要谷歌搜索,则需要与 GOOGLE_API_KEY 一起设置。在[可编程搜索引擎](https://programmablesearchengine.google.com/) 中新建搜索引擎,其中 搜索引擎 ID 就是 GOOGLE_CSE_ID 的值。 | -| whitelist(可选) | 设置哪些用户可以访问机器人,将授权使用机器人的用户 ID 用`,`连接起来。默认值为`None`,即对所有人开放机器人。 | +| Variable Name | Remarks | +| ----------------------| --------------------------------------------------------------------------------------------------------------------------| +| **BOT_TOKEN(required)**| Telegram bot token, create a bot at [BotFather](https://t.me/BotFather) to obtain the bot token | +| **WEB_HOOK(required)** | Telegram bot forwards the message received from the user to WEB_HOOK, and the bot listens here and processes the message | +| **API(required)** | OpenAI or third-party API key | +| API_URL(optional) | If you use OpenAI official API, you do not need to set this item. If you use third-party API, you need to fill in the third-party proxy website. The default value is: https://api.openai.com/v1/chat/completions | +| GPT_ENGINE(optional) | Sets the default question-answering model. The default is:`gpt-3.5-turbo`, this item can be freely switched using the robot info command, and does not need to be set in principle. | +| NICK(optional) | The default is empty. NICK is the name of the bot. When the user enters the message starting with NICK, the bot will answer. Otherwise, the bot will answer any message. Especially in group chats, if there is no NICK, the bot will reply to all messages. | +| PASS_HISTORY(optional) | The default is true, which means that the bot will remember the conversation history and consider the context when replying next time. If set to false, the bot will forget the conversation history and only consider the current conversation. | +| GOOGLE_API_KEY(optional)| If you need Google search, you need to set it. If this environment variable is not set, the bot will default to providing duckduckgo search. Create credentials in the [API and Services](https://console.cloud.google.com/apis/api/customsearch.googleapis.com) of Google Cloud, and the API Key on the credentials page is GOOGLE_API_KEY. Google search can query 100 times a day, which is completely sufficient for light use. If the limit is reached, the bot will automatically close the Google search. | +| GOOGLE_CSE_ID(optional)| If you need Google search, you need to set it together with GOOGLE_API_KEY. Create a search engine in the [Programmable Search Engine](https://programmablesearchengine.google.com/), where the search engine ID is the value of GOOGLE_CSE_ID. | +| whitelist(optional) | Set which users can access the bot. Connect the user ID authorized to use the bot with `,`. The default value is `None`, which means that the bot is open to everyone. | -## Zeabur 远程部署 (推荐) +## Zeabur Remote Deployment (Recommended) -一键部署: +One-click deployment: [![Deploy on Zeabur](https://zeabur.com/button.svg)](https://zeabur.com/templates/R5JY5O?referralCode=yym68686) -如果需要后续功能更新,则推荐以下部署方式: +If subsequent functional updates are required, the following deployment method is recommended: -先 fork 本仓库,再注册 [Zeabur](https://zeabur.com),免费额度足够轻度使用,从自己的 Github 仓库导入,设置好域名(必须与 WEB_HOOK 一致)和环境变量后,重新部署即可。后续需要功能更新只需要在自己的仓库里同步本仓库并在 Zeabur 重新部署即可获得最新功能。 +First fork this repository, then register [Zeabur](https://zeabur.com), the free quota is sufficient for light use. Import from your own Github repository, set the domain name (must be consistent with WEB_HOOK) and environment variables, and then redeploy. The latest functions can be obtained by synchronizing this repository in your own repository and redeploying on Zeabur. -## Replit 远程部署 +## Replit Remote Deployment [![Run on Repl.it](https://replit.com/badge/github/yym68686/ChatGPT-Telegram-Bot)](https://replit.com/new/github/yym68686/ChatGPT-Telegram-Bot) -导入 Github 仓库后,设置运行命令 +After importing the Github repository, set the running command ```bash pip install -r requirements.txt > /dev/null && python3 main.py ``` -在左边栏 Tools 里面选择 Secrets,添加机器人需要的环境变量,其中: +Select Secrets in the Tools in the left sidebar and add the environment variables required by the bot, among which: -- WEB_HOOK: 在 Replit 会自动分配一个域名给你,填入 `https://appname.username.repl.co` +- WEB_HOOK: Replit will automatically assign a domain name to you, fill in `https://appname.username.repl.co` -点击屏幕上方的 run,即可运行机器人。记得打开 Always On。 +Click run above the screen to start the bot. Remember to turn on Always On. -## fly.io 远程部署 +## fly.io Remote Deployment -官方文档:https://fly.io/docs/ +Official documentation: https://fly.io/docs/ -使用 Docker 镜像部署 fly.io 应用 +Deploy fly.io application using Docker image ```bash flyctl launch --image yym68686/chatgpt:1.0 ``` -输入应用的名字,若提示初始化 Postgresql 或 Redis,一律选择否。 +Enter the name of the application. If prompted to initialize Postgresql or Redis, choose No. -按照提示部署。在官网控制面板会提供一个二级域名,可以使用这个二级域名访问到服务。 +Deploy according to the prompts. A secondary domain name will be provided in the official website control panel, which can be used to access the service using this secondary domain name. -设置环境变量 +Set environment variables ```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 COOKIES= -# 可选 +# Optional flyctl secrets set NICK=javis ``` -查看所有环境变量 +View all environment variables ```bash flyctl secrets list ``` -移除环境变量 +Remove environment variables ```bash flyctl secrets unset MY_SECRET DATABASE_URL ``` -ssh 连接 fly.io 容器 +SSH to fly.io container ```bash -# 生成密钥 +# Generate keys flyctl ssh issue --agent -# ssh 连接 +# ssh connection flyctl ssh establish ``` -查看 webhook url 是否正确 +Check if the webhook url is correct ``` https://api.telegram.org/bot/getWebhookInfo ``` -## Docker 本地部署 +## Docker Local Deployment -启动容器 +Start the container ```bash docker run -p 80:8080 -dit \ @@ -130,7 +130,7 @@ docker run -p 80:8080 -dit \ yym68686/chatgpt:1.0 ``` -或者你想使用 Docker Compose,下面是 docker-compose.yml 示例: +Or if you want to use Docker Compose, here is an example docker-compose.yml: ```yaml version: "3.5" @@ -147,13 +147,13 @@ services: - 80:8080 ``` -后台运行 Docker Compose 容器 +Run Docker Compose container in the background ```bash docker-compose up -d ``` -仓库打包 Docker 镜像,推送到 Docker Hub +Repository package Docker image and push it to Docker Hub ```bash docker build --no-cache -t chatgpt:1.0 -f Dockerfile.build --platform linux/amd64 . @@ -163,7 +163,7 @@ docker push yym68686/chatgpt:1.0 ## Reference -参考项目: +Reference projects: https://core.telegram.org/bots/api @@ -173,7 +173,7 @@ 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 +The markdown rendering of messages uses my another project: https://github.com/yym68686/md2tgmd ## Star History diff --git a/README.zh-TW.md b/README.zh-TW.md new file mode 100644 index 00000000..05f98274 --- /dev/null +++ b/README.zh-TW.md @@ -0,0 +1,2 @@ + +已完成翻譯。 \ No newline at end of file