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

news2025/2/26 5:01:52

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.5B1.1 GB~2-3 GB~4-6 GB单卡(RTX 3060/3090/4090)
7B4.7 GB~8-12 GB~16-24 GB单卡(RTX 3090/4090/A100)
8B4.9 GB~9-13 GB~18-26 GB单卡(RTX 3090/4090/A100)
14B9.0 GB~16-20 GB~32-40 GB单卡(A100 40GB)
32B20 GB~35-45 GB~70-90 GB单卡(A100 80GB)或多卡并行
70B43 GB~75-90 GB~150-180 GB多卡(A100/H100 + NVLink)
671B404 GB~700-900 GB~1.4-1.8 TB多卡集群(A100/H100 + NVLink)

执行命令本地部署:

ollama run deepseek-r1:1.5b

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.deepseek调用

在这里插入图片描述
ollama中的服务可以用两种方式启动,默认监听本机localhost 和 端口11434

  • 在终端执行命令: ollama serve
    在这里插入图片描述
  • 找到ollama图标,点击运行
    在这里插入图片描述

2.1 终端调用

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
    }
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

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

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

示例请求体
	{
        "model": "deepseek-r1:1.5b",
        "messages": [
            {"role": "user","content": "你好"}
        ],
        "temperature": 0.8
    }
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)

在这里插入图片描述
可以将对话保存下来,生成对话:

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终端进入项目目录并执行相关命令。

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

pip install wxauto==3.9.11.17.5

发消息

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="用户或群") 

收消息(所有)

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)

收消息(指定用户)

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)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2306160.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为2025年技术发布会:智能汽车核心技术大爆发

近日&#xff0c;华为在鸿蒙智行尊界技术发布会上发布了多项智能汽车核心技术&#xff0c;涵盖智能驾驶、安全防护、通信系统、座舱交互及电池技术等领域&#xff0c;标志着其从“被动智能”向“自主智能”的战略升级。 以下是核心技术的综合梳理&#xff1a; 六大核心创新 途…

SeaCMS V9海洋影视管理系统报错注入

漏洞背景 SQL 注入攻击是当前网络安全中最常见的一种攻击方式&#xff0c;攻击者可以利用该漏洞访问或操作数据库&#xff0c;造成数据泄露或破坏。通常发生在开发人员未能正确处理用户输入时。 在 SeaCMS V9 中&#xff0c;用户输入&#xff08;如登录、评论、分页、ID 等&a…

vue3父子组件props传值,defineprops怎么用?(组合式)

目录 1.基础用法 2.使用解构赋值的方式定义props 3.使用toRefs的方式解构props (1).通过ref响应式变量&#xff0c;修改对象本身不会触发响应式 1.基础用法 父组件通过在子组件上绑定子组件中定义的props&#xff08;:props“”&#xff09;传递数据给子组件 <!-- 父组件…

Django-Vue 学习-VUE

主组件中有多个Vue组件 是指在Vue.js框架中&#xff0c;主组件是一个父组件&#xff0c;它包含了多个子组件&#xff08;Vue组件&#xff09;。这种组件嵌套的方式可以用于构建复杂的前端应用程序&#xff0c;通过拆分功能和视图&#xff0c;使代码更加模块化、可复用和易于维…

Ollama部署本地大模型DeepSeek-R1-Distill-Llama-70B

文章目录 一、下模二、转模1. 下载转换工具2. 安装环境依赖3. llama.cpp1. 转换脚本依赖2. llama.cpp安装依赖包3. llama.cpp编译安装4. 格式转换 三、Ollama部署1. 安装启动Ollama2. 添加模型3. 测试运行 一、下模 #模型下载 from modelscope import snapshot_download model…

Zabbix问题记录2--踩坑HttpRequest,header添加无效

背景 在试图尝试通过Zabbix接入DeepSeek API的时候&#xff0c;由于使用了HTTP的方式&#xff0c;所以需要使用Zabbix 自带的HttpRequest库进行请求&#xff0c;产生了下面的问题 问题 curl curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completio…

Redis 集群的三种模式:一主一从、一主多从和多主多从

本文记述了博主在学习 Redis 在大型项目下的使用方式&#xff0c;包括如何设置Redis主从节点&#xff0c;应对突发状况如何处理。在了解了Redis的集群搭建和相关的主从复制以及哨兵模式的知识以后&#xff0c;进而想要了解 Redis 集群如何使用&#xff0c;如何正确使用&#xf…

网络工程知识笔记

1. 什么是网络&#xff1f; 网络是由多个节点&#xff08;如计算机、打印机、路由器等&#xff09;通过物理或逻辑连接组成的系统&#xff0c;用于数据的传输和共享。这些节点可以通过有线&#xff08;如以太网&#xff09;或无线&#xff08;如 Wi-Fi&#xff09;方式进行连接…

初识.git文件泄露

.git 文件泄露 当在一个空目录执行 git init 时&#xff0c;Git 会创建一个 .git 目录。 这个目录包含所有的 Git 存储和操作的对象。 如果想备份或复制一个版本库&#xff0c;只需把这个目录拷贝至另一处就可以了 这是一种常见的安全漏洞&#xff0c;指的是网站的 .git 目录…

政安晨【零基础玩转各类开源AI项目】DeepSeek 多模态大模型Janus-Pro-7B,本地部署!支持图像识别和图像生成

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 目录 下载项目 创建虚拟环境 安装项目依赖 安装 Gradio&#xff08;UI&#xff09; 运…

(六)趣学设计模式 之 代理模式!

目录 一、啥是代理模式&#xff1f;二、为什么要用代理模式&#xff1f;三、代理模式的实现方式1. 静态代理2. JDK动态代理3. CGLIB动态代理 四、三种代理的对比五、代理模式的优缺点六、代理模式的应用场景七、总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&a…

力扣LeetCode:1656 设计有序流

题目&#xff1a; 有 n 个 (id, value) 对&#xff0c;其中 id 是 1 到 n 之间的一个整数&#xff0c;value 是一个字符串。不存在 id 相同的两个 (id, value) 对。 设计一个流&#xff0c;以 任意 顺序获取 n 个 (id, value) 对&#xff0c;并在多次调用时 按 id 递增的顺序…

鸿蒙开发深入浅出03(封装通用LazyForEach实现懒加载)

鸿蒙开发深入浅出03&#xff08;封装通用LazyForEach实现懒加载&#xff09; 1、效果展示2、ets/models/BasicDataSource.ets3、ets/models/HomeData.ets4、ets/api/home.ets5、ets/pages/Home.ets6、ets/views/Home/SwiperLayout.ets7、后端代码 1、效果展示 2、ets/models/Ba…

DSP芯片C6678的SRIO及其中断跳转的配置

C6678SRIO读写测试门铃中断跳转测试 SRIO简述代码前言SRIO配置原始代码1.使能电源2.初始化SRIO回环修改 3.SRIO测试 Doorbell门铃中断1.初始化中断函数2.中断向量表建立3.中断向量表的链接 本博客基于创龙“678ZH产品线”的SRIO代码&#xff0c;部分参考于网友们的博客&#xf…

2025asp.net全栈技术开发学习路线图

2025年技术亮点‌&#xff1a; Blazor已全面支持WebAssembly 2.0标准 .NET 8版本原生集成AI模型部署能力 Azure Kubernetes服务实现智能自动扩缩容 EF Core新增向量数据库支持特性 ‌ASP.NET 全栈开发关键技术说明&#xff08;2025年视角&#xff09;‌ 以下技术分类基于现…

01 冲突域和广播域的划分

目录 1、冲突域和广播域的划分 1.1、冲突域 1.2、广播域 1.3、对比总结 1.4、冲突域与广播域个数计算例题 2、交换机和路由器的结构 2.1、交换机的结构 2.2、路由器的结构 1、冲突域和广播域的划分 1.1、冲突域 冲突域是指网络中可能发生数据帧冲突的物理范围。当多…

nodejs npm install、npm run dev运行的坎坷之路

1、前面的种种都不说了&#xff0c;好不容易运行起来oap-portal项目&#xff0c;运行idm-ui项目死活运行不起来&#xff0c;各种报错&#xff0c;各种安装&#xff0c;各种卸载nodejs&#xff0c;卸载nvm&#xff0c;重装&#xff0c;都不好使。 2、甚至后来运行npm install会…

大型装备故障诊断解决方案

大型装备故障诊断解决方案 方案背景 在全球航空工业迅猛发展的背景下&#xff0c;我国在军用和民用飞机自主研发制造领域取得了显著成就。尤其是在国家大力支持下&#xff0c;国内飞机制造企业攻克了诸多关键技术难题&#xff0c;实现了从设计研发到生产制造再到售后保障的完整…

反向代理模块kfj

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当于…

Python Seaborn库使用指南:从入门到精通

1. 引言 Seaborn 是基于 Matplotlib 的高级数据可视化库,专为统计图表设计。它提供了更简洁的 API 和更美观的默认样式,能够轻松生成复杂的统计图表。Seaborn 在数据分析、机器学习和科学计算领域中被广泛使用。 本文将详细介绍 Seaborn 的基本概念、常用功能以及高级用法,…