Un robot WeChat basé sur wechatbot-webhook, prenant en charge les questions et réponses GPT, la recherche rapide, les prévisions météorologiques, le transfert de messages, les mini-jeux, le rappel Webhook et d'autres fonctions.
WeChatter prend en charge le déploiement Docker Compose, le déploiement Docker et le déploiement local.
Conseil
Il est recommandé d'utiliser Docker-compose pour le déploiement.
mkdir WeChatter && cd WeChatter
wget -O config_cps.yaml https://cdn.jsdelivr.net/gh/cassius0924/wechatter@master/config_cps.yaml.example
config_cps.yaml
vim config_cps.yaml
wget https://cdn.jsdelivr.net/gh/cassius0924/wechatter@master/docker-compose.yml
docker-compose -f docker-compose.yml up
Utilisez WeChat pour scanner le code QR généré par le terminal afin de vous connecter à WeChat.
Utilisez un autre compte WeChat pour essayer de tapoter le robot ou d'envoyer la commande /help
au robot.
Conseil
Pour obtenir de l'aide sur les commandes, veuillez utiliser la commande /help
pour interroger ou afficher l'affichage de la fonction de commande.
Rappel hors ligne : lorsque le robot se déconnecte, un message de rappel sera envoyé via Bark.
Les messages peuvent être cités et répondus : les utilisateurs peuvent en outre obtenir le contenu des messages en citant et en répondant aux messages de commande. Les messages de robot avec (可引用:***)
sont des messages citables avec lesquels il est possible d'interagir davantage.
Transfert de messages : transférez les messages d'un utilisateur ou d'un groupe vers d'autres utilisateurs ou groupes, et prenez en charge les messages de transfert de réponse aux devis. Une configuration est requise.
Rappel du compte public : Lorsque le compte public désigné publie un nouvel article, le robot enverra un rappel à l'utilisateur ou au groupe désigné. Une configuration est requise.
Tâches planifiées : La plupart des commandes prennent en charge les tâches planifiées. Une configuration est requise.
Transfert de messages Discord : basé sur Discord Webhook, transférez les messages WeChat vers les canaux Discord. Une configuration est requise.
Conseil
Pour obtenir de l'aide sur les commandes liées au jeu, veuillez utiliser Afficher les commandes de jeu de base.
config.yaml.example
dans le répertoire racine du projet est le modèle de fichier de configuration Avant de démarrer le projet pour la première fois, vous devez copier un fichier de configuration et le nommer config.yaml
. Modifiez config.yaml
.
Le tableau suivant explique les éléments de configuration :
Éléments de configuration | expliquer | Remarque |
---|---|---|
wechatter_port | Le port du serveur WeChatter, le port de réception des messages | La valeur par défaut est 4000 , ce qui doit être cohérent avec le port du paramètre RECV_MSG_API de wxbotwebhook Docker |
Éléments de configuration | expliquer | Remarque |
---|---|---|
wx_webhook_base_api | BaseAPI pour l'envoi de messages | La valeur par défaut est http://localhost:3001 , qui est l'adresse de wxBotWebhook Docker. La valeur par défaut pour le déploiement de Docker Compose est http://wxbotwebhook:3001 |
wx_webhook_recv_api_path | Chemin d'interface pour recevoir des messages | La valeur par défaut est /receive_msg , ce chemin est le chemin du paramètre Docker RECVD_MSG_API |
wx_webhook_token | Jeton de wxBotWebhook | Docker Compose utilise par défaut wechatter lors du déploiement |
Éléments de configuration | expliquer | Remarque |
---|---|---|
admin_list | Configurer un administrateur pour recevoir des notifications de changement d'état du robot | Remplissez le nom WeChat de l'administrateur (pas de remarques) |
admin_group_list | Semblable à admin_list , recevez des notifications de changement de statut du robot | Remplissez le nom du groupe (pas les remarques du groupe) |
bark_url | URL d'écorce pour recevoir les notifications de changement d'état du robot | Bark n'est disponible que sur iOS et iPadOS |
Éléments de configuration | expliquer | Remarque |
---|---|---|
bot_name | Nom du robot WeChat | Nom WeChat, pas identifiant WeChat |
Éléments de configuration | expliquer | Remarque |
---|---|---|
command_prefix | Préfixe de commande du robot | La valeur par défaut est / , qui peut être définie sur n'importe quel caractère tel que >> , ! etc., et peut être vide. Lorsque cet élément est vide, le préfixe de commande n'est pas requis pour déclencher la commande. |
need_mentioned | Les commandes de discussion de groupe nécessitent-elles @bot ? | La valeur par défaut est False |
ban_person_list | Liste des utilisateurs de la liste noire | Les robots ne répondront pas aux messages des utilisateurs sur liste noire |
ban_group_list | Liste des groupes sur liste noire | Les robots ne répondront pas aux messages des groupes sur liste noire |
Éléments de configuration | expliquer | Remarque |
---|---|---|
openai_base_api | BaseAPI du service OpenAI | La valeur par défaut est https://api.openai.com |
openai_token | Jeton OpenAI (Clé) | Clé de chaîne commençant par sk_ |
Méthode d'accès : iFlytek Spark Model - AI Large Language Model - Spark Model - iFlytek
Éléments de configuration | expliquer | Remarque |
---|---|---|
spark_api | API de base du service Spark Big Model | La valeur par défaut est https://spark-api-open.xf-yun.com/v1/chat/completions |
spark_model | Spécifiez la version du modèle à laquelle accéder | lite pointe vers la version Lite ; 4.0Ultra pointe vers la version 4.0 Ultra ; |
spark_token | Jeton d'Étincelle Grand Modèle | clé de chaîne |
Méthode d'accès : https://console.x.ai/
Éléments de configuration | expliquer | Remarque |
---|---|---|
grok_api | BaseAPI pour le service Grok | La valeur par défaut est https://api.x.ai/v1/chat/completions |
grok_model | Spécifiez la version du modèle à laquelle accéder | La valeur par défaut est grok-beta |
grok_token | Jeton de Grok | clé de chaîne |
Éléments de configuration | expliquer | Remarque |
---|---|---|
github_webhook_enabled | Commutateur de fonction, s'il faut accepter GitHub Webhook | La valeur par défaut est False |
github_webhook_api_path | Recevoir le chemin de l'interface du GitHub Webhook | La valeur par défaut est /webhook/github |
github_webhook_receiver_list | Utilisateurs de WeChat qui reçoivent le Webhook GitHub | |
github_webhook_receive_group_list | Recevoir le groupe WeChat GitHub Webhook |
Éléments de configuration | enfant | expliquer | Remarque |
---|---|---|---|
message_forwarding_enabled | Commutateur de fonction, s'il faut activer le transfert de messages | La valeur par défaut est False | |
message_forwarding_rule_list | Liste des règles de message, chaque règle contient quatre champs : from_list , from_list_exclude , to_person_list et to_group_list | ||
from_list | Liste des sources de transfert de messages, c'est-à-dire l'expéditeur du message | Vous pouvez saisir plusieurs noms d'utilisateur ou noms de groupe. Si vous souhaitez transférer tous les messages, utilisez ["%ALL"] | |
from_list_exclude | Liste d'exclusion des sources de transfert de messages, les utilisateurs et les groupes de cette liste ne seront pas transférés | Cela ne prend effet que lorsque from_list est ["%ALL"] | |
to_person_list | Liste des utilisateurs cibles de transfert de messages, c'est-à-dire des utilisateurs destinataires de messages | Vous pouvez remplir plusieurs noms d'utilisateur ou une liste vide | |
to_group_list | Liste des groupes cibles de transfert de messages, c'est-à-dire le groupe de réception de messages | Vous pouvez remplir plusieurs noms de groupes ou une liste vide |
Éléments de configuration | enfant | expliquer | Remarque |
---|---|---|---|
official_account_reminder_enabled | Commutateur de fonction, s'il faut activer le transfert de messages | La valeur par défaut est True | |
official_account_reminder_rule_list | Liste des règles de message, chaque règle contient trois champs : oa_name_list , to_person_list et to_group_list | ||
oa_name_list | Liste des noms de comptes officiels | Vous pouvez remplir plusieurs noms de comptes officiels | |
to_person_list | Liste des utilisateurs cibles de transfert de messages, c'est-à-dire des utilisateurs destinataires de messages | Vous pouvez remplir plusieurs noms d'utilisateur ou une liste vide | |
to_group_list | Liste des groupes cibles de transfert de messages, c'est-à-dire le groupe de réception de messages | Vous pouvez remplir plusieurs noms de groupes ou une liste vide |
Éléments de configuration | expliquer | Remarque |
---|---|---|
all_task_cron_enabled | Interrupteur principal pour toutes les tâches planifiées | La valeur par défaut est True |
task_cron_list | Liste des tâches planifiées, chaque tâche contient quatre champs : task , enabled , cron et commands |
Pour plus de détails sur la configuration des tâches planifiées, veuillez vous référer aux détails de configuration des tâches planifiées.
Éléments de configuration | expliquer | Remarque |
---|---|---|
custom_command_key_dict | Dictionnaire de mots-clés de commande personnalisé, le format est command: [key1, key2, ...] , où command est le nom de la commande, key1 et key2 sont des mots-clés de commande personnalisés |
Pour les valeurs facultatives du nom de la commande, veuillez vous référer aux détails de configuration du mot clé de commande personnalisé.
Éléments de configuration | enfant | expliquer | Remarque |
---|---|---|---|
discord_message_forwarding_enabled | Commutateur de fonction, s'il faut activer le transfert de messages Discord | La valeur par défaut est False | |
discord_message_forwarding_rule_list | Liste des règles de message, chaque règle contient trois champs : from_list , to_discord_webhook_url et to_discord_webhook_name | ||
from_list | Liste des sources de transfert de messages, c'est-à-dire l'expéditeur du message | Vous pouvez saisir plusieurs noms d'utilisateur ou noms de groupe. Si vous souhaitez transférer tous les messages, utilisez ["%ALL"] | |
from_list_exclude | Liste d'exclusion des sources de transfert de messages, les utilisateurs et les groupes de cette liste ne seront pas transférés | Cela ne prend effet que lorsque from_list est ["%ALL"] | |
discord_webhook_url | Cible de transfert de message URL du webhook Discord |
Éléments de configuration | expliquer | Remarque |
---|---|---|
gpt_mode_person_list | Liste d'utilisateurs par défaut pour le mode Q&A GPT | Autrement dit, les messages contenant des mots-clés de commande déclencheront normalement les commandes correspondantes et les autres messages seront considérés comme des commandes GPT. |
gpt_model | Modèle de questions et réponses GPT par défaut | Les valeurs facultatives sont gpt35 , gpt4 |
Les fichiers journaux sont stockés dans le dossier logs/
du répertoire racine du projet.
Le niveau de journalisation par défaut est INFO
et les valeurs de niveau de journalisation facultatives sont DEBUG
, INFO
, WARNING
, ERROR
et CRITICAL
.
Si vous devez ajuster le niveau de journalisation, veuillez modifier la variable d'environnement WECHATTER_LOG_LEVEL
dans le fichier docker-compose.yml
.
Veuillez modifier la variable d'environnement WECHATTER_LOG_LEVEL
dans la commande docker run
.
Veuillez modifier la variable d'environnement système WECHATTER_LOG_LEVEL
.
export WECHATTER_LOG_LEVEL=DEBUG
Merci aux personnes suivantes qui ont contribué à ce projet :
Note
En cours de développement...
Avertissement
Ce projet est encore en développement et les suggestions et commentaires sont les bienvenus.