- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 python深度学习之爬虫篇
本文介绍了两种使用Python爬取图书网站数据的方法。第一种方法通过自动检测"下一页"按钮实现翻页,使用requests发送请求、BeautifulSoup解析HTML,提取图书标题、价格、评分等信息,并支持设置最大爬取页数限制。第二种方法先获取总页数再进行循环爬取,同样使用requests和BeautifulSoup,包含异常处理和随机延迟。两种方法都将结果保存为CSV文件。代码示例展示了完整的爬虫实现,包括URL拼接、分页处理和数据存储功能。
2025-10-20 11:15:56
280
原创 python之FastApi简单应用
本文介绍了如何使用FastAPI框架搭建Python Web服务。首先说明需要Python3.6+环境并通过清华源安装FastAPI。然后展示了一个基础应用示例,包含根路径、带路径参数和查询参数的GET请求处理。接着介绍了数据模型验证功能,使用Pydantic的BaseModel定义数据格式,并演示了POST和PUT请求的处理方法。文中还提供了运行方式(uvicorn启动服务)以及代码解析,包括异步函数定义、数据模型验证机制等关键点。最后展示了数据验证失败时的错误提示格式。
2025-10-08 17:24:47
156
原创 RabbitMQ概念 与 工作原理
RabbitMQ是一款基于AMQP协议的开源消息队列系统,采用Erlang语言开发,具有高性能、高并发(单机支持12000+并发)和良好的集群支持特性。它提供7种工作模式,包括Workqueues、Routing等常用模式,通过Exchange、Queue、Binding等核心组件实现消息路由。典型应用场景包括12306订票系统的订单处理、B站up主视频发布通知等,能有效实现削峰填谷、系统解耦和异步处理。虽然引入MQ会增加系统复杂度,但在应对流量高峰(如秒杀场景)时能显著提升系统稳定性。官网提供详细文档和各
2025-10-05 16:44:53
1166
原创 RAG知识增强系统3 -检索器上下文压缩和调优
LLMChainExtractor是LangChain框架中的关键组件,通过大语言模型智能提取文本核心内容,优化信息检索效率。在未优化场景中,检索结果可能包含无关信息;优化后能精准提取关键内容(如部署指南)。针对嵌入模型的"lost in middle"问题,可通过文档重排序将高相关片段置于首尾,提升回答质量。同时支持基于相似性分数的检索过滤,并可通过元数据记录匹配分数,实现更精准的信息提取。这些技术可应用于法律合同分析、知识问答等场景,显著提升大模型处理长文本的效率和准确性。
2025-10-05 00:13:39
264
原创 RAG知识增强系统2 - 检索器retriever
本文介绍了两种基于LangChain的检索方法实现。2.1节展示简单检索器实现:通过TextLoader加载文本,使用OpenAIEmbeddings生成嵌入向量,存入InMemoryVectorStore并创建检索器,最终匹配"deepseek是什么?"的问题。2.2节演示查询重写技术:利用FAISS向量数据库和MultiQueryRetriever,将用户原始问题"如何让用户查询更准确?"自动重写成3个语义相近的查询,从Web文档中检索出10个相关片段。两种方法分
2025-09-23 17:29:46
327
原创 注册大模型api和下载ollama
本文介绍了大模型注册与私有化部署流程。首先需要在DeepSeek或OpenAI官网注册获取API Key,建议小额充值。其次讲解了使用Ollama开源软件进行本地化部署的方法,包括下载安装Ollama和DeepSeek-R1模型,并提供了运行模型的基本命令(如ollama run启动模型、ollama list查看模型、/bye退出等)。部署过程需注意硬件配置对运行速度的影响。Ollama可视为类似Apache/Nginx的模型托管容器,支持从远程仓库直接拉取开源模型。
2025-09-02 14:20:39
308
原创 提示词工程(1)-什么是提示词 和 类型
提示词就是让 ,用户如何把问题问好。引导大模型输出更优质的内容LangChain中的提示词(Prompts)是用户与模型交互的方式,即模型的输入。通过提示词,用户可以引导模型返回期望的内容。
2025-09-02 14:05:39
632
原创 docker使用和部署深化学习
Docker是一种轻量级容器技术,通过镜像封装应用及其依赖,实现跨环境一致运行。本文介绍了Docker核心概念(容器/镜像)、基础操作(拉取/运行镜像)和容器化部署流程。重点讲解了如何编写Dockerfile构建Python应用镜像,并对比了容器化部署与传统部署的差异:前者具有环境一致性高、资源占用少、部署快速等优势,后者则存在环境差异大、部署复杂等问题。通过实例演示了从构建到运行容器的完整流程,展现了Docker在应用部署中的便捷性。
2025-08-21 17:11:18
932
原创 RAG知识库增强系统 -检索器上下文压缩和调优
本文介绍了LangChain框架中的文档检索优化技术。首先展示了LLMChainExtractor组件如何通过语义理解从文本中提取关键信息,如法律合同条款等,并对比了优化前后的检索效果差异。其次针对"lost-in-middle"问题,演示了LongContextReorder组件如何重新排序文档片段,将相关度高的内容置于首尾位置。最后介绍了基于相似度评分的检索方法,包括如何为文档片段添加相关性评分元数据。这些技术共同提升了文档检索的精确度和效率,为构建高质量AI问答系统提供了有效解决方
2025-07-25 16:05:58
398
原创 workman进阶应用 GatewayWorker 仿微信 做聊天室
GatewayWorker是基于Workerman开发的框架,专为快速开发TCP长连接应用设计,如即时通讯、物联网等。
2025-05-13 09:56:13
616
原创 vuex初识与使用,异步actions和getter
vuex是一个状态管理工具,所谓状态就是数据。vuex是一个插件,帮我们解决多组件共享数据的问题(例如:购物车,个人信息)
2025-05-06 16:41:08
224
原创 服务端字符过滤 与 SQL PDO防注入
关键点是这2个SQL的区别.其中第二步由于前台传入特殊字符单引号(')及#,在数据库中#为语句注释部分,则后续SQL语句不会被执行,可直接跳过我们的密码验证逻辑。username还可以是跳过验证。
2025-04-30 12:08:55
365
原创 使用vue3 脚手架创建项目
node_modules : 项目依赖包,其中包括很多基础依赖,自己也可以根据需要安装其他依赖assets文件夹:存放项目中用到的静态资源文件。例如:css样式表,图片资源等等。components文件夹:程序员封装的一些,可复用的组件,都要封装到components目录下。main.js文件: 项目的入口文件,整个项目的运行,要先执行main.js。App.vue文件:是项目的根组件。我们浏览器上看到的页面结构就是App.vue里面所呈现出来的。
2025-04-28 22:39:07
856
原创 零基础 学习Linux shell编程语法
Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换使用。找出距此时2天之内创建的文件,同时基于find的结果,应用-exec之后的命令,即ls -l,从而可以直接显示出find找到文件的明显列表。
2025-04-27 14:42:18
863
原创 php一些命名规范 和 css命名规范
头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar。登录条:loginbar 标志:logo 广告:banner 页面主体:main 热点:hot。子菜单:submenu 搜索:search 友情链接:friendlink 页脚:footer。版权:copyright 滚动:scroll 内容:content 标签页:tab。新闻:news 下载:download 子导航:subnav 菜单:menu。
2025-04-26 14:43:19
424
原创 python中如何使用模块
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。使用模块有什么好处?最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。
2025-04-24 23:26:12
811
原创 浅析Mysql外键
此处创建2个表 分别是 `super_order` 和 `super_member` , 可以看到 mid 是 super_menber的外键。由于mid建立了外键约束 ,所以super_order 在插入数据的时候 , mid 必须是主表(super_member)中存在ID , 否则就会报错。外键是两表或多表之间建立一个关系,我们将这种关系叫做外键关系。表与表之间是存在关系的,这种我们叫做表关系,一般使用外键去维护。前者是 隐式内连接查询 , 后者是 显示内连接查询。
2025-04-23 09:12:54
345
原创 定义python中的函数和类
需要注意的是,在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__、__score__这样的变量名。如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问,所以,我们把Student类改一改:。在函数内部,可以调用其他函数。
2025-04-22 11:27:48
783
原创 Mysql 读写分离(3)之 schema.xml基本配置
当前配置只考虑 转发规则,不考虑分库和分表那些规则方案1 :该方案是balance是1的情况 readHost 负责全部读取 , writehost 负责写入方案2:如果dataHost节点的balance属性 改为2 ,则所有读操作都随机的在 writeHost、 readhost 上分发。方案3:在方案1的基础上,修改一下,万一主服务器挂了,从服务器继续负责读和写mycat管理端,可以看到 3台主机。
2025-04-22 11:01:47
993
原创 redis队列 和 秒杀应用
redis队列一般用于缓解数据库压力 ,诸如秒杀,邮件群发,消息推送等等redis的加入能很好的 帮助系统中 各个模块解耦。而Redis不仅可作为缓存服务器,还可用作消息队列。它的列表类型天生支持用作消息队列。如下图所示:对于服务器减少io 压力 有一定的帮助。
2025-04-21 16:53:48
360
原创 tp6 使用 第三方类 和创建自定义类
根目录下的 extend 是官方为我们创建的 扩展类库目录。自定义的类一般都放在这里。2.1 在 index.php 定义 extend//2.2 比如我现在定义一个验证码的类我在extend里 创建文件夹和文件 lib/Captchas.php那么Captchas.php的命名空间就是lib...由于tp的自动加载机制。那么我们在项目里可以直接使用。
2025-04-20 09:50:16
365
原创 几个常用的快速处理服务器命令和故障排查
Table_locks_immediate 表示立即释放表锁数,Table_locks_waited表示需要等待的表锁数,如果 Table_locks_immediate / Table_locks_waited > 5000,最好采用InnoDB引擎,因为InnoDB是行锁而MyISAM是表锁,对于高并发写入的应用InnoDB效果会好些.-sh /home/* | sort -nr //找出指定目录的文件 并由大到小 排序。-s ./* | sort -nr | head //显示前10个。
2025-04-18 15:46:37
919
原创 Python入门安装和语法基础
如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,可以在Python的交互式命令行用print()打印字符串看看。因为tuple不可变,所以代码更安全。
2025-04-17 14:57:18
918
原创 Mysql读写分离(2)-中间件mycat和实践方案
配置好第一篇的主从复制后, 还没有做到真正的读和写分离我们还需要一个中间件,把mysql的写操作和读操作分开。事实上 读写分离的类型有两种,一种是 基于程序代码内部实现,另一种是 基于中间代理层实现基于程序代码内部实现在代码中根据select,insert进行路由分类,这类方法也是目前生产环境应用最广泛的,优点是性能好,因为在程序代码中已经将读写的数据源拆分至两个,所以不需要额外的MySQL proxy解析SQL报文,在进行路由至不同数据库节点。缺点是通常该架构较复杂,运维成本相对较高。
2025-04-16 22:33:35
1098
原创 Mysql读写分离后的事务处理
这里记录下mycat触发行锁时 的日志额外的一点知识通过这个语句可以看到系统里的锁总结一下。单单读写分离配置后 事务安全需要借助mycat。
2025-04-16 22:20:38
281
原创 Mysql读写分离(1)-服务器的设置(主从复制)
1.简介1.简介随着网站访问和请求量的增加,单台数据库服务器的连接已耗尽,会出现连接请求还在等待,或是数据库服务器崩溃等现象,这时候我们考虑如何减少数据库的连接,可以通过优化代码、使用缓存、数据库读写分离等方式解决此问题。什么是读写分离:将数据库的读、写操作分别作用到不同的数据库(不同物理机)上。适用场景:读操作远大于写操作,包含大量复杂统计、离线计算等任务(比如定时按各维度对数据进行统计分析,或者结算佣金等)系统环境: linux centos 5.6 两台mysql版本: 5.6。
2025-04-15 10:07:06
634
原创 微信小程序-下拉滚动加载数据
view class="beauty">订单金额:{{item.price}}元</view>所谓工欲善其事,必先利其器,做程序之前咱们把思路整理一下 ,画流程图是比较好的方式。视图绑定 scrollToLower 方法 ,当离底部还有100时候触发;text: '到底啦!text: '加载更多'title: '加载中...',数据返回时 使用 concat 拼接。这里使用tp5.1 来做接口通讯。
2025-04-14 09:28:57
559
原创 单双线程的理解 和 lua基础语法
多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。1.2 像 redis ,lua这类软件就是单进程的 ,无论再多的操作请求 ,cpu只会生成一个进程来处理事情。
2025-04-13 23:28:37
615
原创 Redis 哨兵模式 搭建
假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover(故障切换)过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。
2025-04-12 13:00:48
1034
原创 PHP 用 workman 即时通讯,做个简版QQ
workerman的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHP socket以及PHP多进程细节。workerman是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用,例如Rpc服务、聊天室服务器、手机游戏服务器等。WorkerMan提供了HTTP协议、WebSocket协议以及非常简单的Text文本协议、可用于二进制传输的frame协议。
2025-04-11 10:28:35
623
原创 PHP 由0开始学习 正则表达式
以这个表达式为例:a.*b,它将会匹配最长的以a开始,以b结束的字符串。注意使用”[]”与”()”的区别,在于”[]”只能匹配单个字符,而”()”可以匹配任意长度的字符串。因为使用了^和$,所以输入的整个字符串都要用来和\d{5,12}来匹配,也就是说整个输入必须是5到12个数字,因此如果输入的QQ号能匹配这个正则表达式的话,那就符合要求了。这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配只能不多不少重复2次,{5,12}则是重复的次数不能少于5次,不能多于12次,否则都不匹配。
2025-04-10 11:05:15
753
原创 PHP 阿里云oss 使用指南
再程序里调用 ,比如上传文章图片场景 ,上传好后把 $result['oss-request-url'] oss的访问路径 ,保存到数据库中。'KeySecret' => 'KaqD1uAxxxxxxxxxxxxx', //您的Access Key Secret。'KeyId' => 'LTAI5tAhDgMxxxxxxx', //您的Access Key ID。要使用阿里云 oss sdk ,请先到阿里云下载 或用 copmposer 安装。2. php sdk使用。
2025-04-09 09:41:38
465
原创 Php laravel 留言板 curd 实战
首先我们用composer创建项目 , composer会根据当前的php版本 帮我们选择支持的最高版本laravel新版本比较激进 ,需要最低 php7 支持项目配置主要在根目录下的 .env 文件中主要是数据库配置 和 redis的配置注意 config / app.php 文件 ,改时区,一般默认是PRC。
2025-04-09 09:32:38
998
原创 微信小程序之微信授权登录
unionId : 如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。解密SDK下载地址 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html。//取出json里对应的值。//请求服务器,解密获取openId和unionId。
2025-04-08 14:08:08
295
原创 nginx实现负载均衡与例子详解
随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。这样就能保护 47.106.98.99 的真实ip 不暴露 , 真正暴露的是这个堡垒机的ip。在我们10次的刷新访问中,有3次是跳转到90这个服务器中,基本符合权重的算法。2. 这里用了权重的算法。
2025-04-08 11:07:29
1144
原创 Linux下创建svn库 和 svn安装与操作
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。-rwxr-xr-x 1 root root 2243 Feb 12 2014 svnserve ,已经安装到系统服务了,安装成功。svn://192.168.133.130/www/svndata/website svn的地址。3.3 查看日志 显示这个文件的所有修改记录,及其版本号的变化。#修改的文件前面不能有空格,否则启动svn server出错。
2025-04-07 22:26:39
561
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅