AI大模型教程
一起来学习

Python实现基于文心一言的微信自动回复消息

一、前言

在快节奏的生活中,人们越来越依赖即时通讯工具进行沟通交流。然而,频繁的消息回复往往会占用大量时间和精力。为了解决这个问题,本文介绍了一个基于Python的自动化脚本,通过集成微信自动回复和文心一言功能,实现智能回复消息的目的。该脚本不仅提高了聊天效率,还增加了回复的趣味性和个性化。

二、整体架构流程

  1. 初始化模块

    from wxauto import WeChat
    from pynput import keyboard
    import threading
    import time
    import erniebot  # 导入文心一言库
    

    首先,导入所需的Python库,包括wxauto(用于控制微信客户端)、pynput(用于监听键盘事件)、threading(用于多线程操作)以及erniebot(用于文心一言API调用)。

  2. 全局变量定义

    exit_flag = False
    

    定义一个全局变量exit_flag,用于指示是否应该退出程序。

  3. 定义问答函数

    def ask_question(question):
        erniebot.api_type = 'aistudio'
        erniebot.access_token = 'faed7b01330ba36adf1c6b95e63d919c35ba8b24'
        response = erniebot.ChatCompletion.create(model='ernie-3.5', messages=[{'role': 'user', 'content': question}], system="你是一个阳光开朗的大学生,请以大学生的身份回复信息")
        return response.get_result()
    

    该函数使用文心一言API进行聊天补全,接收用户提问并返回智能回复。

  4. 定义键盘监听回调函数

    def on_press(key):
        try:
            if key == keyboard.Key.esc:
                global exit_flag
                exit_flag = True
                return False  # 停止监听
        except AttributeError:
            pass  # 忽略非按键事件
    

    该函数在键盘事件发生时被调用,当检测到Esc键被按下时,设置exit_flag为True,并停止监听。

  5. 启动键盘监听器

    listener = keyboard.Listener(on_press=on_press)
    listener_thread = threading.Thread(target=listener.start)
    listener_thread.start()
    

    创建并启动键盘监听器,确保其在单独的线程中运行。

  6. 微信客户端初始化与聊天对象选择

    wx = WeChat()
    wx.ChatWith("中央情报局")
    

    初始化微信客户端并选择一个聊天对象进行对话。

  7. 消息监听与回复

    try:
        while not exit_flag:
            new_message = wx.GetNextNewMessage()  # 假设这是获取新消息的正确方法
            if new_message:
                content = list(new_message.values())[0][0]
                print(content)
                wx.SendMsg(ask_question(str(content)))
            time.sleep(3)  # 如果需要,可以取消注释这行代码
    finally:
        listener.stop()
        listener_thread.join()  # 等待监听器线程结束
    

    在主循环中,持续监听新消息。当有新消息时,提取消息内容,通过文心一言生成回复,并发送回复消息。循环中添加了延时以避免过于紧密。

三、技术细节

  • wxauto库:用于控制微信客户端,实现消息接收与发送功能。需要注意的是,wxauto库可能需要特定的微信版本和操作系统环境。
  • pynput库:用于监听键盘事件,实现程序的优雅退出。通过监听Esc键,用户可以随时中断程序运行。
  • erniebot库百度文心一言的Python SDK,用于调用文心一言API进行智能回复。在使用前需要配置API类型和访问令牌。
  • 多线程操作:通过threading库实现键盘监听器与主循环的并行运行,确保程序在监听键盘事件的同时能够处理微信消息。

四、结论

本文介绍了一个基于Python的自动化脚本,通过集成微信自动回复和文心一言功能,实现了智能回复消息的目的。该脚本不仅提高了聊天效率,还增加了回复的趣味性和个性化。通过键盘监听功能,用户可以随时中断程序运行,确保程序的灵活性和可控性。该脚本在特定场景下具有广泛的应用价值,如自动回复工作消息、自动回复群聊消息等。然而,需要注意的是,该脚本依赖于第三方库和API,可能存在一定的兼容性和稳定性问题。在实际应用中,需要根据具体需求和环境进行适当的调整和优化。

五、完整代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2024-12-17 10:42
# @Author : Leuanghing Chen
# @Blog : https://blog.csdn.net/weixin_46153372?spm=1010.2135.3001.5421
# @File : 基于文心一言的微信自动回复消息.py
# @Software : PyCharm

from wxauto import WeChat
from pynput import keyboard
import threading
import time
import erniebot  # 导入文心一言库

# 全局标志,用于指示是否应该退出程序
exit_flag = False


def ask_question(question):
    # 设置文心一言的API类型和访问令牌
    erniebot.api_type = 'aistudio'
    erniebot.access_token = 'faed7b01330ba36adf1c6b95e63d919c35ba8b24'

    # 使用文心一言进行聊天补全
    response = erniebot.ChatCompletion.create(
        model='ernie-3.5',
        messages=[{'role': 'user', 'content': question}],
        system="你是一个阳光开朗的大学生,请以大学生的身份回复信息"
    )
    return response.get_result()


# 定义当键盘事件发生时调用的回调函数
def on_press(key):
    try:
        if key == keyboard.Key.esc:
            global exit_flag
            exit_flag = True
            return False  # 停止监听
    except AttributeError:
        pass  # 忽略非按键事件


# 创建键盘监听器
listener = keyboard.Listener(on_press=on_press)

# 在单独的线程中启动监听器
listener_thread = threading.Thread(target=listener.start)
listener_thread.start()

# 初始化微信客户端连接
wx = WeChat()

# 选择一个聊天对象
wx.ChatWith("中央情报局")

# 注意:这里我们没有使用 WeChatFiles 类,因为它可能不是用于控制微信主功能的
# 如果您确实需要使用 WeChatFiles 类,请确保您了解其用途并正确实例化它

try:
    # 持续监听新消息
    while not exit_flag:
        new_message = wx.GetNextNewMessage()  # 假设这是获取新消息的正确方法
        if new_message:
            content = list(new_message.values())[0][0]
            print(content)
            # 发送信息
            wx.SendMsg(ask_question(str(content)))
        # 可能需要在这里添加一些延迟,以避免循环过于紧密
        time.sleep(3)  # 如果需要,可以取消注释这行代码

finally:
    # 确保在退出前停止键盘监听器
    listener.stop()
    listener_thread.join()  # 等待监听器线程结束

文章来源于互联网:Python实现基于文心一言的微信自动回复消息

相关推荐: 树莓派5+文心一言 -> 智能音箱

一、简介 效果:运行起来后,可以连续对话 硬件:树莓派5、麦克风、音箱,成本500-1000 软件:snowboy作为唤醒词、百度语音作为语音识别、brain作为指令匹配、百度文心一言作为对话模块、微软的edge-tts语音合成… 二、开发流程 连接到树莓…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » Python实现基于文心一言的微信自动回复消息
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们