WeChatFerry : un cadre entièrement fonctionnel pour le développement de robots WeChat

Introduction générale

WeChatFerry est un cadre sous-jacent de robot WeChat open source, créé et maintenu par le développeur lich0821 sur GitHub . Le projet à travers la technologie WeChat Hook , fournit un ensemble de SDK puissant , permettant aux développeurs de WeChat fonction avec une variété de grand modèle de langue ( comme ChatGPT , Gemini , DeepSeek , ChatGLM , Xunfei Starfire , Tigerbot , etc.) intégration , les tâches d'automatisation et de dialogue intelligent . Le module principal est écrit en C++, prend en charge de nombreux langages clients (par exemple Python, Rust, Go, Java, Node.js, C#, etc.) et est adapté aux versions spécifiques de WeChat (actuellement 3.9.11.25). Avec sa flexibilité et ses riches fonctionnalités, WeChatFerry a attiré 5,5k étoiles et 1,1k forks, ce qui en fait un outil populaire pour le développement de robots WeChat.

WeChatFerry:功能全面的微信机器人开发框架

 

Liste des fonctions

  • MessagesLe service de messagerie électronique est un outil de communication qui permet d'envoyer du texte (avec @), des images, des fichiers et des GIF, et d'écouter et de recevoir des messages.
  • Intégration de grands modèles linguistiquesAccès à des modèles tels que ChatGPT, Gemini, DeepSeek, ChatGLM, Xunfei Starfire, etc. pour une réponse intelligente ou le traitement des tâches.
  • Gestion des discussions de groupeLe groupe de travail : Il prend en charge des opérations telles que l'invitation de membres d'un groupe et l'obtention d'informations sur le groupe.
  • traitement multimédiaLes services de téléchargement d'images et de fichiers, de décryptage d'images et de conversion de fichiers vocaux (Silk) en MP3 sont pris en charge.
  • accès à la base de donnéesLes données telles que les contacts WeChat, les enregistrements de messages, etc. peuvent être interrogées.
  • Gestion de l'état de connexionLe système d'information sur les comptes : il fournit des fonctions permettant d'obtenir le code QR de connexion, de vérifier l'état de la connexion, d'obtenir des informations sur le compte (wxid, surnom, numéro de téléphone mobile, etc.).
  • Client multilingueLes services de développement côté client en Python, Rust, Go, Java, Node.js, C# et d'autres langages sont pris en charge.
  • Tâches automatiséesLes services d'assistance à la clientèle, d'éducation et autres : ils prennent en charge le transfert de messages, les tâches programmées, etc.

 

Utiliser l'aide

Processus d'installation

L'utilisation de WeChatFerry se divise en deux parties : la compilation du module de base (pour les développeurs) et l'installation côté client (pour les utilisateurs normaux). Voici les étapes détaillées :

1. installation du client (en Python, par exemple)

  • Installation de l'environnement PythonPython 3.10 est recommandé, téléchargez-le et installez-le à partir de python.org, et assurez-vous que la version de Python 3.10 est disponible. pip Disponible.
  • Installer le paquet wcferryPour cela, ouvrez la ligne de commande et lancez l'application :
    pip install --upgrade wcferry
  • Vérifier l'installationExécution en Python import wcferrySi aucune erreur n'est signalée, l'opération est réussie.

2. compilation du module de base (facultatif pour les développeurs)

  • Préparation de l'environnement: :
    • Installez Visual Studio 2019 (Community Edition), qui comprend des composants de développement C++.
    • Installer Git pour cloner les dépôts.
  • entrepôt de clones: :
    git clone https://github.com/lich0821/WeChatFerry.git  
    cd WeChatFerry
    
  • Compilation des projets: :
    • Ouvrir avec VS2019 WeChatFerry\WeChatFerry\WeChatFerry.sln.
    • Cliquez sur "Generate" > "Generate Solution", après avoir compilé la solution, vous pouvez la trouver dans la section WeChatFerry\WeChatFerry\Out pour générer le fichier sdk.dll.
    • prendre noteSi vous rencontrez protoc Erreur 9009, vérifier l'environnement ou la configuration de Python protoc (nécessite l'installation de protobuf).

3. lancer WeChat et injecter

  • Préparer microsoftInstaller une version supportée de WeChat (par exemple 3.9.10.27 ou 3.9.11.25, voir Releases).
  • exemple de fonctionnementLe code officiel pour le chargement : se référer au code officiel pour le chargement sdk.dll et initialisé :
    import ctypes  
    sdk = ctypes.cdll.LoadLibrary("C:/path/to/WeChatFerry/WeChatFerry/Out/sdk.dll")  
    sdk.WxInitSDK(False, 10086)  # 初始化,默认端口 10086
    
  • Quitter le SDKLe programme d'entretien de l'ordinateur : Exécutez-le lorsque vous avez fini de l'utiliser. sdk.WxDestroySDK()Le processus Python sera arrêté lorsque vous aurez terminé le processus et que le processus Python sera fermé.

Principales fonctions

Messages

  • Envoyer un message texte: :
    from wcferry import Wcf  
    wcf = Wcf()  
    wcf.send_text("你好", "wxid_xxxx")  # wxid_xxxx 为目标微信 ID
    
    • Soutenir @ quelqu'un :wcf.send_text("你好 @Tom", "roomid_xxxx").
  • recevoir un message: :
    wcf.enable_receiving_msgs()  # 开启接收  
    while True:  
    msg = wcf.get_msg()  
    if msg:  
    print(f"收到: {msg.content}")  
    wcf.disable_receiving_msgs()  # 停止接收
    

Intégration de grands modèles linguistiques

  • Accès à ChatGPT Exemple(Vous devez configurer la clé API vous-même) :
    from wcferry import Wcf  
    import openai  
    wcf = Wcf()  
    openai.api_key = "your_api_key"  
    def chatgpt_reply(msg):  
    response = openai.ChatCompletion.create(  
    model="gpt-3.5-turbo",  
    messages=[{"role": "user", "content": msg.content}]  
    )  
    wcf.send_text(response.choices[0].message.content, msg.sender)  
    wcf.enable_receiving_msgs()  
    while True:  
    msg = wcf.get_msg()  
    if msg:  
    chatgpt_reply(msg)
    

traitement multimédia

  • Envoyer une photo: :
    wcf.send_image("C:/Pictures/test.jpg", "wxid_xxxx")
    
  • Voix en MP3: Utilisation smc (compilation requise), définir le module .silk Documentation convertie en .mp3: :
    from wcferry import smc  
    smc.silk_to_mp3("input.silk", "output.mp3")
    

Gestion des discussions de groupe

  • Membres invités: :
    wcf.invite_room_members("roomid_xxxx", ["wxid_user1", "wxid_user2"])
    
  • Obtenir des informations sur le groupe: :
    room_info = wcf.get_chatroom_info("roomid_xxxx")  
    print(room_info)
    

Exemple de déroulement des opérations

  1. Cadre de lancementCompilation : Compilation sdk.dllSi vous souhaitez utiliser un script Python, exécutez le script Python pour le charger et l'initialiser.
  2. Se connecter à WeChat: Mise en œuvre wcf.get_login_qrcode() Obtenez le code QR et scannez-le pour vous connecter.
  3. Caractéristiques de la configurationLes services d'écoute de messages, de réponse automatique ou de gestion de groupes : Rédiger des scripts pour l'écoute de messages, la réponse automatique ou la gestion de groupes.
  4. test opérationnelLe script est exécuté en ligne de commande pour vérifier que le comportement de microsoft est conforme aux attentes.
  5. Débogage OptimisationSi quelque chose ne va pas, vous pouvez ajouter un journal de débogage dans VS2019 (par ex. DbgMsg("Test")), les questions de positionnement.

Prise en charge des clients multilingues

mise en garde

  • La version actuelle de WeChat est 3.9.11.25, ce qui peut entraîner un échec de l'injection.
  • Le projet est destiné à des fins d'étude et de recherche uniquement et respecte la licence MIT.
  • La multi-ouverture n'est pas prise en charge pour le moment et nécessite une seule instance pour fonctionner.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...