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 requestsres = 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 requestsres = 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 requestsmessage_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 WeChatwx = 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":continueprint(chat_user, msg.content)# 回复消息# chat_win.SendMsg("回复的内容")time.sleep(5)

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

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

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

相关文章

使用 Docker-compose 部署 MySQL

使用 Docker Compose 部署 MySQL 本文将详细指导如何使用 docker-compose 部署 MySQL&#xff0c;包括基本配置、启动步骤、数据持久化以及一些高级选项。通过容器化部署 MySQL&#xff0c;你可以快速搭建一个隔离的数据库环境&#xff0c;适用于开发、测试或小型生产场景。 关…

HTML 中的 Canvas 样式设置全解

在 HTML5 中&#xff0c;<canvas> 元素提供了一个强大的绘图接口&#xff0c;允许开发者通过 JavaScript 实现各种图形和动画效果。为了充分利用 <canvas> 的功能&#xff0c;理解其样式设置是至关重要的。本文将详细介绍如何在 HTML 中设置 <canvas> 的各种…

【论文解析】Fast prediction mode selection and CU partition for HEVC intra coding

级别:IET Image Processing(2020)CCF CSCI 4区时间:2020年机构:苏州大学下载地址:Fast prediction mode selection and CU partition for HEVC intra coding摘要 HEVC确实是一个很大的进步,编码效率翻倍,但计算复杂度也增加了不少。为了解决这个问题,提出了两种算法:…

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

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

智慧校园系统在学生学习与生活中的应用

随着科技的快速发展&#xff0c;智慧校园系统逐渐成为现代教育不可或缺的一部分。它整合了先进的信息技术、物联网技术以及人工智能等&#xff0c;旨在构建一个全面、智能、个性化的学习与生活环境。对于学生而言&#xff0c;这一系统不仅能够极大地提高学习效率&#xff0c;还…

基于Flask的京东商品信息可视化分析系统的设计与实现

【Flask】基于Flask的京东商品信息可视化分析系统的设计与实现&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 系统能够灵活地执行SQL查询&#xff0c;提取出用于分析的关键数据指标。为了将这…

Electron通过ffi-napi调用dll导出接口

electron使用ffi-napi环境搭建 附打包好的ffi-napi可以直接放到项目目录下使用&#xff0c;避免以后麻烦 一、安装node.js Node.js官网&#xff1a;https://nodejs.org/zh-cn/download&#xff0c;选择LTS长期稳定版本即可 需要注意Node.js 区分32和64位&#xff0c;32位版…

25工程管理研究生复试面试问题汇总 工程管理专业知识问题很全! 工程管理复试全流程攻略 工程管理考研复试真题汇总

工程管理复试面试心里没底&#xff1f;别慌&#xff01;学姐手把手教你怎么应对复试&#xff01; 很多同学面对复试总担心踩坑&#xff0c;其实只要避开雷区掌握核心技巧&#xff0c;逆袭上岸完全有可能&#xff01;这份保姆级指南帮你快速锁定重点&#xff0c;时间紧迫优先背…

深蓝学院自主泊车第3次作业-IPM

目录 1 题目介绍2 求解 1 题目介绍 已知鱼眼相机的参数&#xff0c; image_width&#xff0c;表示图像的宽度image_height&#xff0c;表示图像的高度 ξ \xi ξ&#xff0c;表示鱼眼相机参数 k 1 k_1 k1​、 k 2 k_2 k2​&#xff0c;表示径向相机参数 p 1 p_1 p1​、 p 2 p…

核货宝助力连锁门店订货数字化转型升级

在竞争激烈的连锁零售行业&#xff0c;传统订货模式弊端日益凸显&#xff0c;严重制约着企业的发展。核货宝订货系统以其卓越的数字化解决方案&#xff0c;为连锁门店订货带来了全方位的变革&#xff0c;助力企业实现数字化转型升级&#xff0c;在市场中抢占先机。 一、增强总部…

2.最多提取子串数目(100分)-附带Java逐行解析

题目 给定 [a-z]&#xff0c;26个英文字母小写字符串组成的字符串 A 和 B&#xff0c;其中 A 可能存在重复字母&#xff0c;B 不会存在重复字母&#xff0c;现从字符串 A 中按规则挑选一些字母&#xff0c;可以组成字符串B。 挑选规则如下&#xff1a; 同一个位置的字母只能挑…

AutoGen 技术博客系列 八:深入剖析 Swarm—— 智能体协作的新范式

本系列博文在掘金同步发布, 更多优质文章&#xff0c;请关注本人掘金账号&#xff1a; 人肉推土机的掘金账号 AutoGen系列一&#xff1a;基础介绍与入门教程 AutoGen系列二&#xff1a;深入自定义智能体 AutoGen系列三&#xff1a;内置智能体的应用与实战 AutoGen系列四&am…

力扣每日一题【算法学习day.132】

前言 ###我做这类文章一个重要的目的还是记录自己的学习过程&#xff0c;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非常非常高滴&#xff01;&#xff01;&#xff01; 习题 1.统计相似字符串对的数目 题目链…

C语言.h头文件的写法

头文件的内容 #ifndef __SEQUENCE_LIST_H // 定义以防止递归包含 #define __SEQUENCE_LIST_H // (1)、其它头文件 #include <stdio.h> #include <stdlib.h> #include <strings.h> #include <stdbool.h> // (2)、宏定义(函数、变量、常量) // (3)、…

Spring AI + Ollama 实现调用DeepSeek-R1模型API

一、前言 随着人工智能技术的飞速发展&#xff0c;大语言模型&#xff08;LLM&#xff09;在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型&#xff0c;凭借其强大的自然语言处理能力和丰富的知识储备&#xff0c;迅速成为业界关注的焦点。无论是文本生…

自学Java-AI结合GUI开发一个石头迷阵的游戏

自学Java-AI结合GUI开发一个石头迷阵的游戏 准备环节1、创建石头迷阵的界面2、打乱顺序3、控制上下左右移动4、判断是否通关5、统计移动步骤&#xff0c;重启游戏6、拓展问题 准备环节 技术&#xff1a; 1、GUI界面编程 2、二维数组 3、程序流程控制 4、面向对象编程 ∙ \bulle…

C语言的内存分配:malloc和free

使用库函数分配和管理内存。在运行时&#xff0c;分配更多的内存给程序使用&#xff0c;主要工具是malloc函数&#xff0c;这个函数接受一个参数&#xff1a;所需要要的内存字节数。malloc函数会找到合适的空闲内存块&#xff0c;这样的内存是匿名的&#xff0c;即malloc分配了…

本地安装 Grafana Loki

本地安装 Grafana Loki 一、 安装 Loki1. 下载 Loki2. 创建 Loki 配置文件3. 创建 Loki 服务 二、安装 Promtail1. 下载 Promtail2. 创建 Promtail 配置文件3. 创建 Promtail 服务 三、 安装 Grafana四、启动所有服务五、添加loki 数据源1. 添加仪表板2. 日志查询面板 json 参考…

趣味数学300题1981版-十五个正方形

分析&#xff1a;移动两根变成11个正方形很简单&#xff1a; 移动4根变成15个正方形&#xff0c;分析&#xff1a; 一个田字格包含5个正方形&#xff0c;若要15个正方形需要3个田字格&#xff0c;如果3个田字格完全不重合&#xff0c;需要6*318根火柴。如果合并正方形的边&…

IDEA——Mac版快捷键

目录 按键含义常用组合代码生成快捷键&#xff1a;代码追踪快捷键&#xff1a;高效编辑快捷键&#xff1a;代码重构快捷键&#xff1a;工具类快捷键&#xff1a;常规文件操作快捷键&#xff1a; 按键含义 ⌘ command Command键&#xff08;⌘&#xff09;相当于Windows中的Con…