小爱打工,你躺平!让「微信AI小助理」接管你的文件处理,一个字:爽!
前两天,搞了个微信 AI 小助理-小爱(AI)
,爸妈玩的不亦乐乎。
- 零风险!零费用!我把AI接入微信群,爸妈玩嗨了,附教程(下)
最近一直在迭代中,挖掘小爱
的无限潜力:
- 链接丢给它,精华吐出来!微信AI小助理太强了,附完整提示词
- 拥有一个能倾听你心声的「微信AI小助理」,是一种什么体验?
有朋友问小爱
:能接收word、excel、pdf
等各种文件吗?要是能帮我处理各种文件,岂不是很爽?
小爱
:今天就安排!
今日分享,将继续基于wechatbot-wehook
框架,带大家实操:如何接收微信文件,并进行处理,让小爱
接管你的文件处理工作,助力你上班摸鱼
!
1. 接收微信文件
微信消息中所有文件,在 FastAPI 中都可以用 UploadFile 类处理。
此外,UploadFile 是设计为异步的,故支持大文件的高效上传和处理。
其中,content_type 代表文件的 MIME 类型(媒体类型),主要分为以下几类:
- 文本类型
- 文本文件:如 text/plain
- HTML 文件:如 text/html
- CSS 文件:如 text/css
- 图像类型
- JPEG 图像:如 image/jpeg
- PNG 图像:如 image/png
- GIF 图像:如 image/gif
- 音频类型
- MP3 音频:如 audio/mpeg3 或 audio/mp3
- WAV 音频:如 audio/x-wav
- 视频类型
- MP4 视频:如 video/mp4
- MPEG 视频:如 video/mpeg
- 应用程序类型
- JSON 文件:如 application/json
- PDF 文件:如 application/pdf
- ZIP 文件:如 application/zip
- Microsoft Word 文档:如 application/vnd.openxmlformats-officedocument.wordprocessingml.document
下面是接收文件并下载的示例代码:
@app.post("/receive")
async def receive_message(request: Request):data = await request.form()message_type = data.get("type")content = data.get("content")# 下载文件if message_type == 'file':with open(f"./output/{content.filename}", "wb") as buffer:bin = await content.read()buffer.write(bin)
上一篇,我们主要介绍了如何处理音频文件。
本篇将以最常见的 pdf
为例,介绍如何处理 pdf
并返回。
2. 文本提取
当你给小爱
发送一份 pdf 文件
,后台接收到的文件如下:
UploadFile(filename='学会写作.pdf', size=1381979, headers=Headers({'content-disposition': 'form-data; name="content"; filename="å\xad¦ä¼\x9aå\x86\x99ä½\x9c.pdf"', 'content-type': 'application/pdf'}))
文件类型为application/pdf
。
关于如何处理pdf 文件
,可以参看猴哥之前的【Python实战】教程:
- 【Python实战】自动化处理 PDF 文档,完美实现 WPS 会员功能
- 【Python实战】如何优雅地实现文字 & 二维码检测?
- 【Python实战】一键生成 PDF 报告,图文并茂
这里我们以提取 pdf 文本为例进行演示:
from PyPDF2 import PdfReader
def pypdf_to_txt(input_pdf):pdf_reader = PdfReader(input_pdf)texts = []for page_num in range(len(pdf_reader.pages)):page = pdf_reader.pages[page_num]text = page.extract_text()texts.append(text)return '\n'.join(texts)
3. 文本摘要
得到文本后,就可以交给 LLM 帮我们提炼总结一下内容要点。有了文本摘要,我就无需再去翻阅长文,省时提效利器,有没有?
这个任务非常简单,甚至无需编写角色提示词:
unillm = UniLLM()
messages = [{'role': 'user', 'content': f'帮我提炼这篇文章的主要观点:{text}'}]
res = unillm(['glm4-9b'], messages=messages)
我把《学会写作》这本书发给了它,可以看到提炼的还是很精准的:
有需要这本书的公众号后台自取。
4. 更多玩法
不管是 word
还是 pdf
,只要拿到源文件,你想实现任何功能,还不简单?底层逻辑都是一样的:把流程标准化,然后让程序自动执行,最终让小爱
交给你~
比如,我可以让它帮我把 pdf
去水印/加水印,然后返回给我。
写在最后
本文给大家展示了一个处理pdf
文件的简单案例,懒人
必备神器!
大家有更好的想法,欢迎评论区交流。
如果本文对你有帮助,不妨点个免费的赞和收藏备用。
为了方便大家交流,新建了一个 AI 交流群
,欢迎感兴趣的小伙伴加入。
小爱
也在群里,想进群体验的朋友,公众号后台「联系我」即可,拉你进群。
相关文章:

小爱打工,你躺平!让「微信AI小助理」接管你的文件处理,一个字:爽!
前两天,搞了个微信 AI 小助理-小爱(AI),爸妈玩的不亦乐乎。 零风险!零费用!我把AI接入微信群,爸妈玩嗨了,附教程(下) 最近一直在迭代中,挖掘小爱的无限潜力: 链接丢给…...

管理学习(一)马云《赢在中国》创业演讲整理
目录 一、小公司也需要制度二、不要害怕冒险三、创业者要的不是技术,而是胆识四、不要惧怕和大企业竞争五、理念不一样,老板永远是对的六、要真实地为客户创造价值七、跟风险投资谈判,说到要做到八、风险投资,只能帮你不能救你九、…...

Opencv中的直方图(2)计算图像的直方图函数calcHist()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算一组数组的直方图。 函数 cv::calcHist 计算一个或多个数组的直方图。用于递增直方图bin的元组的元素是从相同位置的相应输入数组中获取的。…...

Buzzer:一款针对eBPF的安全检测与模糊测试工具
关于Buzzer Buzzer是一款功能强大的模糊测试工具链,该工具基于Go语言开发,可以帮助广大研究人员简单高效地开发针对eBPF的模糊测试策略。 功能介绍 下面给出的是当前版本的Buzzer整体架构: 元素解析: 1、ControlUnit:…...

若依框架登录鉴权详解(动态路由)
若依框架登录鉴权:1.获取token(过期在响应拦截器中实现),2.基于RBAC模型获取用户、角色和权限信息(在路由前置守卫),3.根据用户权限动态生成(从字符串->组件,根据permission添加动…...
孤儿进程、僵尸进程、守护进程(精灵进程)
目录 一、孤儿进程 二、僵尸进程 三、守护进程(精灵进程) 一、孤儿进程 定义:孤儿进程是指那些其父进程已经结束,但它们依然在运行的进程 创建一个孤儿进程: #include <stdio.h> #include <stdlib.h> #in…...
Centos9 网卡配置文件
1、Centos stream 9 网络介结 Centos以前版本,NetworkManage以ifcfg格式存储网络配置文件在/etc/sysconfig/networkscripts/目录中。但是,Centos steam 9现已弃用ifcfg格式,默认情况下,NetworkManage不再创建此格式的新配置文件。…...

ios免签H5
1、windows下载mobileconfig文件制作工具,可在csdn搜索iPhone_Mobileconfig_Tool下载安装;IOS 从APP Store 下载Apple Configurator 2 2、用申请的域名SSL证书给mobieconfig文件签名,最好下载Apache证书,里面包含 AE86211.crt…...
RedHat9.x-基本操作
本例以RedHat9.3为例 安装ifconfig命令 # dnf -y install net-tools 安装图形化 # dnf -y groupinstall "Server with GUI" 安装tmux # dnf -y install tmux -- screen已弃用 network-scripts 已弃用...

华为 HCIP-Datacom H12-821 题库 (5)
有需要题库的可以看主页置顶 需要题库的加Q裙 V群仅进行学习交流 1.以下关于堆叠 MAD 检测说法错误的是? A、堆系统互为代理进行 MAD 检测时,两个堆系统可以使用相同的D omain ID B、MAD 检测的方式分为直连检测、代理检测 C、MAD 代理检测要求所有堆叠…...
vue中oninput和@input区别
使用oninput绑定,此方法会导致中文输入法情况下,v-model和value不一致,原因是在中文输入法情况下vue中的v-model会自动return,v-mode绑定的值不变,value绑定的值可变。 :οninput"valuevalue.replace(/\D/g,)&qu…...
分布式锁(Redis的setnx、Redisson)
一、使用Redis的setnx实现分布式锁 1、使用Redis的setnx实现分布式锁出现的问题 (1) 宕机时的锁释放问题 在分布式系统中,如果一个节点获取了锁,但在执行任务过程中发生故障,没有释放锁,其他节点可能会一…...

从0开始深度学习(4)——线性回归概念
1 线性回归 回归(regression)指能为一个或多个自变量与因变量之间的关系进行建模。 1.1 线性模型 线性假设是指目标可以表示为特征的加权和,以房价和面积、房龄为例,可以有下面的式子: w称为权重(weigh…...

C语言中的预处理指令中的其中一对——#ifdef和#ifndef
目录 开头1.什么是#ifdef和#ifndef?2.#ifdef和#ifndef的实际应用判断ABCD这个宏是否被定义过判断HELLO这个宏是否没被定义过防止头文件重复定义 下一篇博客要说的东西 开头 大家好,我叫这是我58。今天,我们要学一下关于C语言中的预处理指令中的其中一对…...

交换机自动化备份配置(H3C_无人值守)
介绍: 在日常运维过程中,需要定时备份设备的配置,在设备数量过于庞大的情况下,对我们的运维工作会造成极大地不便,通过python自动化能够完美解决人工手动保存设备配置的问题。而且自动化运维在未来也一定是大势所趋&a…...
缓存预热有哪些方案?
一道经典面试题:缓存预热有哪些方案? 在系统业务高峰期到来之前,我们提前将一些热点数据加载到缓存中,进而提高系统的响应速度,这就是所谓的缓存预热。 那么怎么实现缓存预热呢? 一般来说,我…...

「iOS学习」——Masonry学习
iOS学习 前言Masonry的属性Masonry的使用基础APIAuto Boxing修饰语倍数中心点设置边距优先级使用 总结 前言 暑假我们学习了使用CocoaPods引入第三方库,实现使用SVG图片。而Masonry作为一个轻量级的布局架构,在使用中可以节省很多时间。故进行简单学习。…...

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署GitLab服务器
828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署Gitlab服务器 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、GitLab介绍2.1 GitLab简介2.2 GitLab主要特点 三、本次…...

51单片机的无线病床呼叫系统【proteus仿真+程序+报告+原理图+演示视频】
1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温湿度传感器模块矩阵按键时钟模块等模块构成。适用于病床呼叫系统、16床位呼叫等相似项目。 可实现基本功能: 1、LCD1602实时显示北京时间、温湿度信息、呼叫床位等信息; 2、DHT11采集病房温湿度信息&…...

计算机毕业设计 | SpringBoot+vue 游戏商城 steam网站管理系统(附源码)
1,项目背景 国家大力推进信息化建设的大背景下,城市网络基础设施和信息化应用水平得到了极大的提高和提高。特别是在经济发达的沿海地区,商业和服务业也比较发达,公众接受新事物的能力和消费水平也比较高。开展商贸流通产业的信息…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...