AI客服-接入deepseek大模型到微信(本地部署deepseek集成微信自动收发消息)

1.本地部署

1.1 ollama

Ollama软件通过其高度优化的推理引擎和先进的内存管理机制,显著提升了大型语言模型在本地设备上的运行效率。其核心采用了量化技术(Quantization)以降低模型的计算复杂度和存储需求,同时结合 张量并行计算(Tensor Parallelism)混合精度计算(Mixed Precision Computing) ,在FP16、INT8等低精度格式下实现高效的数值运算,从而大幅减少显存占用并加速推理过程。此外,Ollama支持动态批处理(Dynamic Batching)分布式推理(Distributed Inference) ,能够根据输入请求动态调整资源分配,并通过多GPU或节点间的高效通信协议(如NCCL)实现弹性扩展,突破单机硬件限制。为确保兼容性,Ollama内置了对主流框架(如PyTorch、TensorFlow)的支持,并通过ONNX RuntimeTensorRT进一步优化模型性能,同时提供灵活的API接口和模块化设计,允许用户进行自定义微调(Fine-tuning)和Prompt工程,满足多样化应用场景需求。

1.1.1 下载安装

https://ollama.com/download
双击打开安装,ollama默认只能安装在C盘,占用:4.6G 空间。

C:\用户\用户名称\AppData\Local\Programs\Ollama

我的电脑中安装目录:C:\Users\Administrator\AppData\Local\Programs\Ollama

1.1.2 环境变量

默认ollama去下载部署deepseek模型时,会放在C盘 C:\Users\Administrator\.ollama\models文件夹中。修改环境变量,可以让后续模型下载到其他盘符。

OLLAMA_MODELS D:\ollama\models

配置好之后,ollama重启重启电脑 让环境变量生效。

1.2 deepseek部署

https://ollama.com/library/deepseek-r1

根据自己电脑配置部署模型规模

模型规模 硬盘 显存需求 内存 显卡要求
1.5B 1.1 GB ~2-3 GB ~4-6 GB 单卡(RTX 3060/3090/4090)
7B 4.7 GB ~8-12 GB ~16-24 GB 单卡(RTX 3090/4090/A100)
8B 4.9 GB ~9-13 GB ~18-26 GB 单卡(RTX 3090/4090/A100)
14B 9.0 GB ~16-20 GB ~32-40 GB 单卡(A100 40GB)
32B 20 GB ~35-45 GB ~70-90 GB 单卡(A100 80GB)或多卡并行
70B 43 GB ~75-90 GB ~150-180 GB 多卡(A100/H100 + NVLink)
671B 404 GB ~700-900 GB ~1.4-1.8 TB 多卡集群(A100/H100 + NVLink)

执行命令本地部署:

python 复制代码
ollama run deepseek-r1:1.5b




2.deepseek调用

ollama中的服务可以用两种方式启动,默认监听本机localhost 和 端口11434

  • 在终端执行命令: ollama serve
  • 找到ollama图标,点击运行

2.1 终端调用

python 复制代码
C:\Users\Administrator>ollama list
NAME                ID              SIZE      MODIFIED       
deepseek-r1:1.5b    a42b25d8c10a    1.1 GB    4 hours ago
C:\Users\Administrator>ollama run deepseek-r1:1.5b
>>> 
>>> 学习python的路径?
<think>
好吧,我现在要学习Python了。我对它还不是很了解,所以得一步一步来。首先,我应该确定我的学习目标是什么。可能是从基础开始,比如语     
法和基本概念,然后逐步深入到更高级的内容。
...
>>> /bye

2.2 API调用

对话相关的API有两个:

  • /api/generate,用于一次性生成特定文本的场景。
  • /api/chat,针对多轮对话上下文生成的回复消息。

接下来,结合案例来使用API来调用,需要安装Python环境 和 requests 模块。

示例:/api/generate

复制代码
该 API 主要用于基于给定的提示信息生成文本内容。它适用于一次性生成特定文本的场景,不涉及对话上下文的维护.

请求参数
	model:要使用的模型名称,例如 `deepseek-r1:1.5b`。
    prompt:提示信息,即向模型提供的输入文本,模型会根据该提示生成相应的内容。
	可选参数:还可以包含其他参数来控制生成的行为,
    	如 `temperature`(控制生成文本的随机性,值越大越随机)、`max_tokens`(限制生成文本的最大令牌数)等。

示例请求体
    {
        "model": "llama2",
        "prompt": "写一首关于春天的诗",
        "temperature": 0.7,
        "max_tokens": 200
    }
python 复制代码
import requests

res = requests.post(
    url="http://localhost:11434/api/generate",
    json={
        "model": "deepseek-r1:1.5b",
        "prompt": "写一首关于春天的诗",
        "stream": False
    }
)

data_dict = res.json()
print(data_dict)


示例:/api/chat

bash 复制代码
用于模拟对话交互,它会维护对话的上下文,使得模型能够根据之前的对话内容生成合适的回复,实现更自然、连贯的对话效果。

请求参数
    model:要使用的模型名称。
    messages:一个包含对话消息的列表,每个消息对象包含 role(角色,如 user 表示用户消息,assistant 表示模型回复)和 content(消息内容)。
    同样可以包含可选参数来控制生成行为。

示例请求体
	{
        "model": "deepseek-r1:1.5b",
        "messages": [
            {"role": "user","content": "你好"}
        ],
        "temperature": 0.8
    }
python 复制代码
import requests

res = requests.post(
    url="http://localhost:11434/api/chat",
    json={
        "model": "deepseek-r1:1.5b",
        "messages": [
            {"role": "user", "content": "你好"}
        ],
        "stream": False
    }
)
data_dict = res.json()
print(data_dict)

可以将对话保存下来,生成对话:

python 复制代码
import requests

message_list = []

while True:
    text = input("请输入:")

    user_dict = {"role": "user", "content": text}
    message_list.append(user_dict)

    res = requests.post(
        url="http://localhost:11434/api/chat",
        json={
            "model": "deepseek-r1:1.5b",
            "messages": message_list,
            "stream": False
        }
    )
    data_dict = res.json()
    res_msg_dict = data_dict['message']
    print(res_msg_dict)

    message_list.append(res_msg_dict)

2.3 网页交互

搭建一个网站,在内部进行访问使用。

第1步:电脑安装nodejs

https://nodejs.org/zh-cn/download

第2步:下载网站源码

https://github.com/ollama-webui/ollama-webui-lite

下载并解压至任意目录。例如:F:\ollama-webui-lite-main 【不要有中文路径】

第3步:安装依赖并启动网站

打开CMD终端进入项目目录并执行相关命令。

python 复制代码
C:\Users\Administrator>F:
F:\>cd F:\ollama-webui-lite-main
F:\ollama-webui-lite-main>
F:\ollama-webui-lite-main>npm ci
F:\ollama-webui-lite-main>npm run dev --  --port=9001

访问网站:http://localhost:9001/

3.微信收发信息

wxauto 是一个基于UIAutomation开发的用于实现微信自动化得库。

消息发送:支持发送文字、图片、文件、@群好友、引用消息等功能

聊天记录:可获取好友的聊天记录内容

监听消息:实时获取指定监听好友(群)的新消息

所用开发环境:Python 3.12.6 + PC微信 3.9.12(目前最新)

实现原理:在电脑安装PC微信,基于wxauto自动控制微信界面来实现收发消息等功能。

安装wxauto

python 复制代码
pip install wxauto==3.9.11.17.5

发消息

python 复制代码
from wxauto import WeChat
wx = WeChat()
wx.SendMsg(msg="你好呀", who="xxx_888")  # 指定人/群发消息

# wx.SendMsg(msg="你好呀", who="群名", at=["张三","张开"])   # 群消息+@指定人
# wx.SendMsg(filepath="F:\xxx.png", who="用户或群") 
# wx.SendMsg(filepath=["文件A","文件B","F:\xxx.png"], who="用户或群") 

收消息(所有)

python 复制代码
from wxauto import WeChat

wx = WeChat()

while True:
    # 等待接受收到的最新消息
    
    # {"用户昵称A":[消息对象1,消息对象2,消息对象3], "用户昵称B":[消息对象1,消息对象2,消息对象3], }
    msg_dict = wx.GetNextNewMessage()

    for username, msg_list in msg_dict.items():
        print("昵称:", username)

        # [消息对象1, 消息对象2, 消息对象3]
        for msg in msg_list:
            print("\t消息", msg.type, msg.content)

收消息(指定用户)

python 复制代码
from wxauto import WeChat
wx = WeChat()

wx.AddListenChat(who="运营")
wx.AddListenChat(who="xxx_888")

while True:
    # { "用户A聊天窗口":[消息对象1,消息对象2,消息对象3],  "用户B聊天窗口":[消息对象1,消息对象2,消息对象3]}
    listen_dict = wx.GetListenMessage()
    for chat_win,message_list in listen_dict.items():
        
        # 用户或群名
        chat_user = chat_win.who
        
        # [消息对象1,消息对象2,消息对象3]
        for msg in message_list:
			if msg.type != "friend":
				continue
            print(chat_user, msg.content)
        
        # 回复消息
        # chat_win.SendMsg("回复的内容")
        
    time.sleep(5)

👏欢迎贡献代码和改进项目!

相关推荐
belingud1 天前
不同模型回答差异的简单探讨
chatgpt·claude·deepseek
冲!!1 天前
使用nvm查看/安装node版本
前端·node.js·node·nvm
AI大模型2 天前
基于 Ollama 本地 LLM 大语言模型实现 ChatGPT AI 聊天系统
程序员·llm·ollama
云道轩2 天前
DeepSeek补全IBM MQ 9.4 REST API 执行命令的PPT
deepseek·ibm mq
算家计算3 天前
DeepSeek R2因芯片问题再次延迟发布!千亿级大模型训练的算力之困
人工智能·芯片·deepseek
JohnYan3 天前
工作笔记 - 一次微信认证集成迁移
后端·安全·微信
AI大模型4 天前
手把手教你本地部署DeepSeek:解锁私有化AI的无限可能
程序员·llm·deepseek
量子位4 天前
被曝蒸馏DeepSeek还造假!欧版OpenAI塌房了
openai·deepseek
摸着石头过河的石头4 天前
微信h5页面开发遇到的坑
前端·微信
李大腾腾4 天前
3、JSON处理( n8n 节点用于交换信息的语言)
openai·workflow·ollama