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.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)

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于COSTAR模型的内容创作:如何用框架提升写作质量

目录 前言1. Context&#xff08;上下文&#xff09;&#xff1a;理解背景&#xff0c;奠定写作基础1.1 何为上下文1.2 上下文的作用1.3 案例解析 2. Objective&#xff08;目标&#xff09;&#xff1a;明确写作方向&#xff0c;避免跑题2.1 确立目标2.2 如何设定目标2.3 案例…

kafka-集群缩容

一. 简述&#xff1a; 当业务增加时&#xff0c;服务瓶颈&#xff0c;我们需要进行扩容。当业务量下降时&#xff0c;为成本考虑。自然也会涉及到缩容。假设集群有 15 台机器&#xff0c;预计缩到 10 台机器&#xff0c;那么需要做 5 次缩容操作&#xff0c;每次将一个节点下线…

DeepSeek 提示词:定义、作用、分类与设计原则

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

基于vue和微信小程序的校园自助打印系统(springboot论文源码调试讲解)

第3章 系统设计 3.1系统功能结构设计 本系统的结构分为管理员和用户、店长。本系统的功能结构图如下图3.1所示&#xff1a; 图3.1系统功能结构图 3.2数据库设计 本系统为小程序类的预约平台&#xff0c;所以对信息的安全和稳定要求非常高。为了解决本问题&#xff0c;采用前端…

大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(3)

Paimon的下载及安装&#xff0c;并且了解了主键表的引擎以及changelog-producer的含义参考&#xff1a; 大数据组件(四)快速入门实时数据湖存储系统Apache Paimon(1) 利用Paimon表做lookup join&#xff0c;集成mysql cdc等参考&#xff1a; 大数据组件(四)快速入门实时数据…

blender笔记2

一、物体贴地 物体->变换->对齐物体 ->对齐弹窗(对齐模式&#xff1a;反方&#xff0c;相对于&#xff1a;场景原点&#xff0c;对齐&#xff1a;z)。 之后可以设置原点->原点--3d游标 二、面上有阴影 在编辑模式下操作过后&#xff0c;物体面有阴影。 数据-&g…

MinkowskiEngine安装(CUDA11.8+torch2.0.1+RTX4070TI)

1、背景 1&#xff09;因为项目要用这个库&#xff1a;MinkowskiEngine&#xff0c;Minkowski Engine — MinkowskiEngine 0.5.3 documentation 然后就用了之前安装好 MinkowskiEngine 的torch1.8.1,cuda11.1的环境。 2&#xff09;自己的代码出现cuda不支持torch用gpu进行矩…

【Blender】二、建模篇--05,阵列修改器与晶格形变

阵列修改器是bender里面一个比较常用的修改器,所以我们单独开口来讲,我们会先从几片树叶出发,然后我们用阵列修改器把这几片树叶变成这样的造型和这样的造型。这两个造型分别就代表着阵列修改器最常用的两种偏移方法,我们现在就开始我们先来做几个树叶。 1.树叶建模 首先…

华为昇腾服务器(固件版本查询、驱动版本查询、CANN版本查询)

文章目录 1. **查看固件和驱动版本**2. **查看CANN版本**3. **其他辅助方法**注意事项 在华为昇腾服务器上查看固件、驱动和CANN版本的常用方法如下&#xff1a; 1. 查看固件和驱动版本 通过命令行工具 npu-smi 执行以下命令查看当前设备的固件&#xff08;Firmware&#xff0…

2024电子取证“獬豸杯”WP

简介&#xff1a; 竞赛为个人赛&#xff0c;工具自备&#xff0c;只发证书&#xff08;还没用&#xff0c;公告这么写的哈&#xff09;竞赛选手们将对模拟的案件进行电子数据调查取证&#xff0c;全面检验参赛选手电子数据取证的综合素质和能力。 检材链接&#xff1a; 百度网盘…

GESP2024年3月认证C++七级( 第三部分编程题(1)交流问题)

参考程序&#xff1a; #include <iostream> #include <vector> #include <unordered_map> using namespace std;// 深度优先搜索&#xff0c;给每个节点染色&#xff0c;交替染色以模拟两校同学的划分 void dfs(vector<vector<int>>& graph…

Spring Boot框架总结(超级详细)

前言 本篇文章包含Springboot配置文件解释、热部署、自动装配原理源码级剖析、内嵌tomcat源码级剖析、缓存深入、多环境部署等等&#xff0c;如果能耐心看完&#xff0c;想必会有不少收获。 一、Spring Boot基础应用 Spring Boot特征 概念&#xff1a; 约定优于配置&#…

Blaze RangePartitioning 算子Native实现全解析

引言&#xff1a;本文将全面且深入地解析Blaze RangePartitioning算子的Native实现过程。相较于原生Spark&#xff0c;RangePartitioning的Native实现在执行时间上达到了30%的显著下降&#xff0c;同时在资源开销方面节省了高达76%。这一改进大幅降低了运行成本&#xff0c;展现…

|网络安全|网络安全学习方法

1、先网络后安全 很多初学者还没搞定网络看懂网络拓扑&#xff0c;就急着研究防火墙或VPN&#xff0c;其实这样就不清楚整个网络架构是如何安全演进的。正确的流程是&#xff1a;先通过网络协议和拓扑设计的学习&#xff0c;能独立搭建一个企业网/校园网&#xff0c;再引入局域…

关于酒店旅游信息的数据采集API接口返回||包含参数说明

相关网站站点 xiecheng API 接入说明 携程获取酒店详情原数据 API返回值说明 item_get_app-获取酒店详情原数据 xiecheng.item_get_app 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameStrin…

【.NET全栈】.NET包含的所有技术

文章目录 前言一、基础框架与语言1、.NET Framework2、编程语言 二、Web开发技术1、ASP.NET2、Blazor3、SignalR 三、桌面与移动开发技术1、Windows Forms&#xff08;WinForms&#xff09;2、Windows Presentation Foundation&#xff08;WPF&#xff09;3、Xamarin4、.NET MA…

深度理解多态的底层实现

前言 首先先回顾一下上次的知识 一、多态的概念 多态(polymorphism)的概念&#xff1a;通俗来说&#xff0c;就是多种形态。多态分为编译时多态(静态多态)和运⾏时多态(动态多态)&#xff0c;这⾥我们重点讲运⾏时多态&#xff0c;编译时多态(静态多态)和运⾏时多态(动态多态…

python中的异常-模块-包

文章目录 异常异常的定义异常捕获语法捕获常规异常捕获指定异常捕获多个异常捕获所有异常异常else异常finally 异常传递总结 模块概念导入自定义模块及导入main方法all变量 总结 包自定义包定义pycharm中建包的基本步骤导入方式 第三方包 异常 异常的定义 当检测到一个错误时…

亲测Windows部署Ollama+WebUI可视化

一. Ollama下载 登录Ollama官网(Ollama)点击Download进行下载 如果下载很慢可用以下地址下载&#xff1a; https://github.com/ollama/ollama/releases/download/v0.5.7/OllamaSetup.exe 在DeepSeek官网上&#xff0c;你可以直接点击【model】 到达这个界面之后&#xff0c;…

ios UICollectionView使用自定义UICollectionViewCell

和UITableView用法类似&#xff0c;UITableView主要是显示按行排列的数据&#xff0c;UICollectionView则用在显示多行多列的数据&#xff0c;今天我们继续来实现app下载页面的效果。 1.先自定义UICollectionViewCell&#xff0c;一个cell就相当于列表中的一项了。 记得勾上&a…