超详细教程:DeepSeek 接入个人微信,实现自动回复

鸿辰 工具杂汇 60

概述

本文章仅实现了借助第三方平台的API实现微信自动回复,供学习参考,如果你想打造私域运营,实现AI自动回复,你可能需要参考其他更多的资料。

一、准备

  • 获取第三方平台的API,这里推荐 deepseek官方火山方舟
  • 准备一台 windwos 电脑,安装好微信客户端并登录微信

二、安装环境

这里相对简单,只做文字步骤说明,必要时可以自行搜索相关教程。

2.1 安装Python

2.1.1 下载安装包

打开 Python windwos下载页面,根据 Windows 系统架构(32 位或 64 位)选择适合的 Python 安装包,通常建议下载最新的稳定版本。

2.1.2 安装

下载完成后,找到下载的 Python 安装包(通常为.exe 格式),双击打开,按照提示安装,注意勾选 “Add Python to PATH” 选项,以便系统自动将 Python 添加到环境变量中。

2.1.3 测试

按下 “Win+R” 键,输入 “cmd” 并回车,打开命令提示符窗口,在命令提示符中输入 “python –version” 或 “python -V”,按回车键。若安装成功,系统会显示 Python 的版本信息。

2.2 安装依赖库

安装依赖库时指定清华大学源可以加速安装

2.2.1 安装 wxauto

pip install wxauto -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后,使用python show wxauto 命令检验是否安装成功

超详细教程:DeepSeek 接入个人微信,实现自动回复-第1张图片-鸿辰个人分享站

2.2.2 安装 openai

pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后,使用python show wxauto 命令检验是否安装成功

超详细教程:DeepSeek 接入个人微信,实现自动回复-第2张图片-鸿辰个人分享站

三、编写代码

3.1 创建代码文件

创建一个.py格式的Python代码文件,如wechat_auto.py,复制下面的代码到文件中

import time
from wxauto import WeChat
from concurrent.futures import ThreadPoolExecutor
from openai import OpenAI
import os

# DeepSeek API 配置
client = OpenAI(
    api_key="xxxxxxxxx",  # 替换为你的 DeepSeek API 密钥
    base_url="https://api.deepseek.com/v1"  # DeepSeek 的 API 地址
)

# 预设角色信息
SYSTEM_PROMPT = "你是有情感,有温度的AI助手,请根据用户的消息,给出治愈的回复。"

# 全局对话历史记录
conversation_history = {}
wx = WeChat()  # 初始化微信自动化

# 需要对哪些人的消息进行监听
listen_list = ["用户1","用户2"]

# 创建线程池
executor = ThreadPoolExecutor(max_workers=10)

# 处理消息并根据发送者进行回复
def process_messages(messages):
    # 使用 items() 解包字典的键值对
    for sender, content_list in messages.items():
        # 判断发送者是否在监听列表中
        if sender not in listen_list:
            print(f"{sender} 不在监听列表中,跳过处理")
            continue
         # 确保消息内容有效
        if content_list and isinstance(content_list, list):
            # 遍历发送者的所有消息内容
            for content in content_list:
                # 检查消息内容是否包含 "SYS" 或 "Self",如果消息类型是 "SYS" 或 "Self",则跳过
                if content[0] == "SYS" or content[0] == "Self":
                    print(f"跳过 '{content[0]}' 消息")
                    continue
                # 处理非 "SYS" 和 非 "Self" 的消息
                message_content = content[1]  # 获取消息内容
                print(f"处理消息:'{message_content}',发送者:{sender}")

                # 调用线程池异步回复
                executor.submit(reply_message, sender, message_content)


# 调用 API 获取回复
def get_ai_reply(sender, message):
    # 储存对话历史记录
    global conversation_history

    # 初始化发送者的对话历史(如果不存在)
    if sender not in conversation_history:
        conversation_history[sender] = [
            {"role": "system", "content": SYSTEM_PROMPT}
        ]

    # 将用户消息添加到对话历史
    conversation_history[sender].append({"role": "user", "content": message})

    try:
        # 调用 API
        response = client.chat.completions.create(
            model="deepseek-reasoner",  # 使用的模型
            messages=conversation_history[sender]  # 使用发送者的完整对话历史
        )

        # 获取助手的回复
        assistant_reply = response.choices[0].message.content.strip()

        # 将助手的回复添加到对话历史
        conversation_history[sender].append({"role": "assistant", "content": assistant_reply})

        return assistant_reply
    except Exception as e:
        print(f"调用 API 出错:{e}")
        # return "抱歉,我暂时无法处理您的请求,请稍后再试。"
        return ""

# 根据消息内容生成回复并发送
def reply_message(sender, message_content):
    reply_content = get_ai_reply(sender, message_content)
    if reply_content:
        send_reply(sender, reply_content)

# 发送回复
def send_reply(sender, content):
    wx.SendMsg(content, sender)
    print(f"已发送消息:'{content}' 给 {sender}")

# 主程序入口
if __name__ == "__main__":
    #wx = WeChat()

    while True:
        msgs = wx.GetAllNewMessage()  # 获取所有新消息
        if msgs:
            print("收到的新消息:", msgs)
            process_messages(msgs)  # 调用函数处理消息
        time.sleep(2)  # 延时,减少系统负担

3.2 修改代码

3.2.1 DeepSeek API 配置

# DeepSeek API 配置
client = OpenAI(
    api_key="xxxxxxxxxx",  # 替换为你的 DeepSeek API 密钥
    base_url="https://api.deepseek.com/v1"  # DeepSeek 的 API 地址
)
  • api_key:第三方平台的api_key
  • base_url:第三方平台的接口地址
    • 如果你使用的是 DeepSeek 官方的,则地址为 https://api.deepseek.com/v1
    • 如果你使用的是 火山方舟的,则地址为 https://ark.cn-beijing.volces.com/api/v3
    • 如果你使用了其他平台,根据平台提供的地址设置即可

3.2.2 使用的模型

# 调用 API
        response = client.chat.completions.create(
            model="deepseek-reasoner",  # 使用的模型
            messages=conversation_history[sender]  # 使用发送者的完整对话历史
        )

更改 model的值为对应的模型名称,如果你使用的是火山方舟的,则对应创建的应用id

3.2.2 预设角色信息

# 预设角色信息
SYSTEM_PROMPT = "你是有情感,有温度的AI助手,请根据用户的消息,给出治愈的回复。"

根据自己的需求设置

3.2.3 需要对哪些人的消息进行监听

# 需要对哪些人的消息进行监听
listen_list = ["用户1","用户2"]

这里填写微信的用户备注,这样做是为了防止AI接管了其他人的消息。

四、运行测试

在命令中执行

python wechat_auto.py

接下来只需要监听的人发消息给当前登录的微信,AI即会自动回复消息。

需要注意的是,本程序只在windwos中测试通过,且程序会自动打开微信窗口,当收到新消息时,会控制鼠标操作微信回复消息,其他系统请自行测试。

标签: ai