- 博客(76)
- 收藏
- 关注
原创 FastAPI日志管理:优雅记录每一行代码
在FastAPI应用开发中,良好的日志管理是保证系统可观测性和可维护性的关键。本文将介绍如何在FastAPI中实现优雅的日志记录方案,包括中间件日志、装饰器日志以及异常捕获日志,让你的应用能够"呼吸"自如,记录每一个重要时刻。
2025-03-27 23:44:29
129
原创 从零开始手撕线性回归:代码实战带你深入理解机器学习基础
线性回归是机器学习中最基础且重要的算法之一,广泛应用于预测分析和数据建模。本文将带领读者从零开始理解线性回归的核心原理,并通过Python代码实战一步步实现一个简单的线性回归模型。无论你是机器学习初学者还是希望巩固基础的开发者,本文都将为你提供清晰的学习路径。线性回归是一种监督学习算法,用于建立输入变量(特征)与输出变量(目标)之间的线性关系。其核心思想是找到一条最佳拟合直线,使得预测值与真实值之间的误差最小。假设我们有一组数据点 ,线性回归试图找到参数 和 ,使得以下公式成立:y=wx+by = w
2025-03-15 15:31:34
815
原创 YOLOv11实战指南:从入门到精通,轻松掌握目标检测新利器
YOLO(You Only Look Once)系列一直是目标检测领域的标杆算法,而最新版本YOLOv11带来了更高效的性能和更精准的检测能力。本文将从零开始,带您全面了解YOLOv11的核心原理、安装配置方法、训练技巧以及实际应用案例,助您轻松掌握这一目标检测新利器!
2025-03-15 13:35:01
553
原创 OpenCV实战:轻松实现图片拼接,打造全景图像!
本文将带你深入了解如何使用OpenCV库实现图片拼接技术,打造令人惊叹的全景图像。通过清晰的步骤讲解和代码示例,你将学会如何利用特征点检测、匹配算法以及图像变换技术完成高质量的图片拼接。无论你是计算机视觉的初学者还是有一定经验的开发者,这篇文章都将为你提供实用的知识和技巧。
2025-03-10 00:15:00
960
原创 OpenCV实战:答题卡自动识别与打分系统,轻松搞定考试评分!
在现代教育中,自动化评分系统正变得越来越重要。本文将带您使用OpenCV实现一个答题卡自动识别与打分系统。从图像预处理到答案区域检测,再到最终得分计算,我们将一步步讲解整个流程,并附上完整的代码示例。无论您是初学者还是有一定经验的开发者,都能从中受益!题卡识别的应用场景,例如标准化考试、在线测评等。如何通过图像识别技术提取答题卡中的答案信息?需要解决的关键问题:图像倾斜校正、答案区域定位、选项识别等。使用OpenCV进行图像处理。可结合简单的机器学习算法(如KNN)进行分类。
2025-03-10 00:15:00
446
原创 从零开始:手把手教你实现高效OCR文档识别系统
经过上面图片的的预处将不规则带有噪点的图片优化,能有效的提高下一步的orc识别准确率。使用OpenCV读取图像文件。去除多余空格、标点符号错误等。灰度化、二值化、去噪等操作。
2025-03-09 17:11:40
1158
原创 OpenCV实战:手把手教你用Python识别银行卡号
在本文中,我们将通过一个实际案例,学习如何使用OpenCV和Tesseract OCR技术实现银行卡号的自动识别。文章将从环境搭建、图像预处理、数字区域提取到最终的OCR识别逐步展开,并提供完整的代码示例与详细注释。无论你是初学者还是有一定经验的开发者,都能从中掌握图像处理与OCR技术的核心技能。
2025-03-09 14:39:20
463
原创 大模型function calling:让AI函数调用更智能、更高效
Function Calling 是一种机制,允许大语言模型动态调用外部函数或API,以完成特定任务。例如,当用户提问“今天的天气如何?”时,模型可以通过调用天气API获取实时数据并返回结果。这种方式不仅提升了模型的实用性,还使其能够处理复杂的多步骤任务。
2025-03-02 22:26:26
427
原创 Python异步编程优雅实践
同步 vs 异步# 同步代码示例# 同步代码示例 import time def task(name) : print(f"Task {name } started.") time . sleep(2) # 模拟耗时操作 print(f"Task {started.")time.sleep(2) # 模拟耗时操作# 同步代码示例 import time def task(name) : print(f"Task {
2025-02-17 23:23:15
201
原创 深入探索 AI 提示词工程:让 AI 更懂你
提示词工程是一门利用精准输入来引导 AI 生成理想输出的技术。AI 语言模型并非真正 “理解” 你的问题,而是基于统计模式预测最合适的答案。因此,如何设计提示词,决定了 AI 输出的质量。
2025-02-16 13:34:58
868
原创 深入浅出 Python Logging:从基础到进阶日志管理
字段作用日志级别(如 DEBUG、INFO、WARNING、ERROR、CRITICAL),用于标识日志的严重程度。日志的时间戳,默认格式为 YYYY-MM-DD HH:MM:SS,mmm(可自定义 datefmt)。进程 ID,表示当前日志属于哪个进程(适用于多进程应用)。记录日志的 Python 文件名(不包含路径)。%(name)s记录日志的 Logger 名称,通常是 logging.getLogger(name) 设定的名称。%(lineno)d。
2025-02-14 23:36:39
1214
1
原创 如何实现对 ELK 各组件的监控?试试 Metricbea
上一章使用Filebeat收集文件中的日志,而Metricbeat则是收集服务器存活性监测和系统指标的指标。
2025-02-14 21:43:55
475
原创 服务器防护(ubuntu)
最近发现服务器一直在被暴力破解,具体情况看我上一章节,所以在网上整理下检测服务是否已经被别人破解成功和如何防护的方法。
2025-02-14 10:46:31
651
原创 服务器被暴力破解的一次小记录
家里三台主机,其他一台macmini 启用ollama运行大模型的服务,主机1用来部署一些常用的服务如:mysql, photoprism等,服务器作为网关部署docker, 并且和腾讯云做了内网穿透。服务器部署了1panel用来管理服务并且监控,网关的流量。
2025-02-14 00:03:07
334
原创 基于 Filebeat 的日志收集
Filebeat 是 Elastic 公司推出的一款轻量级日志采集工具,专门设计用于从本地文件中读取日志数据,并将日志数据转发到下游的 Logstash 或 Elasticsearch 中。它的优势在于:轻量级:资源占用低,适合在大量服务器上部署。可靠性:内置断点续传功能,避免数据丢失。灵活性:支持多种数据输入格式和高级功能,如多行日志解析、事件去重等。
2025-02-13 23:01:03
1141
原创 探索ELK 的魅力
ELK 堆栈是一个集数据采集、传输、存储和可视化于一体的解决方案:Elasticsearch:一个基于 Apache Lucene 构建的分布式搜索和分析引擎,用于实时存储和检索数据。Logstash:一个强大的数据收集和传输管道,可将多种格式的数据进行解析、过滤和转发。Beats:轻量级的数据采集器,负责从不同来源采集数据并将其发送到 Logstash 或 Elasticsearch。Kibana:一个数据可视化工具,为存储在 Elasticsearch 中的数据提供交互式仪表盘和图形展示。
2025-02-13 22:14:10
955
原创 Django中的事务
在Django中,是一个数据库设置选项,它会在每个HTTP请求开始时自动开启一个数据库事务,并在请求结束时提交或回滚该事务。这提供了一种方便的方式来确保数据库操作的原子性,即要么全部成功,要么全部失败。在这个例子中,我们为默认的数据库连接设置了。这意味着每当Django处理一个HTTP请求时,它都会自动开启一个数据库事务。如果请求成功完成并且没有发生任何异常,那么事务会在请求结束时自动提交。如果请求期间发生了异常,那么事务会被回滚,从而撤销该请求所做的所有数据库更改。
2024-04-24 00:10:27
1368
1
原创 python中ctypes使用
前段时间接到了一个需求是给一个蓝牙的SDK测试接口的稳定性,将SDK的接口文档给你了,需要每个接口都写一个对应的测试用例,SDK 是用c写的,而我python用的比较熟练些,所有记录下在ctypes库的使用方法。
2024-04-22 23:20:48
715
原创 成为程序员后你都明白了什么?
在面对复杂的项目需求、紧张的开发周期以及不断变化的技术环境时,我也曾经感到过迷茫和困惑。在这个行业里,我遇到了很多热爱编程、追求卓越的人。这些经历不仅让我感受到了团队合作的力量,也让我更加坚定了在这个行业里继续前行的决心。我相信,只要我们保持学习的热情、不断提升自己的技能、积极面对挑战,就一定能够在这个行业中取得更好的成绩。在未来的日子里,我将继续努力学习、不断进步,为成为一个更加优秀的程序员而努力奋斗。在这个数字化快速发展的时代,程序员的角色越来越重要,而我也在这个过程中收获了许多宝贵的经验和体会。
2024-04-21 00:10:56
315
原创 Jenkins和gitlab实现CICD
想起公司的代码发布流程,只要个人分支的代码测试通过之后,合并到master分支的时候会自动构建和发布还是挺方便的,想着是不是能借鉴下,自己弄一个只要代码提交到gitlab的时候Jenkins自动构建自动发布自动生成测试报告呢。但是有个问题docker是在宿主机中的,Jenkins是安装docker容器中的,咱们的TracerBackend服务也是用容器部署的,那安装在Jenkins的容器怎么调用到宿主机的docker呢。使用清华的镜像源,找到最新的版本的源更新到Jenkins插件中更新站点中。
2024-04-20 23:56:25
1457
原创 Djanog的中间件
1 request中被中断, 当中间件中的request中返回了一个httpresponse时,中间件将被中断,不会执行继续执行中间件,直接跳转到对应中间的process_response中执行。中间件2中process_request直接返回HttpResponce时,跳过下面中间件和视图函数直接执行中间件2的process_response。中间件2的process_view返回了HttpResponce时,跳过下面中间和视图函数直接执行中间件3的process_responce。
2024-04-18 07:00:00
1695
原创 TypeError: ‘ForwardManyToOneDescriptor‘ object is not callable
这里少写了一个objects,因为Issues有一个字段creator,所有IDE快速生成了creator,而creator是一个外键字段关联到用户表,所有报这样的错误。的错误,这通常意味着你尝试像调用函数一样去调用一个 Django 模型中的外键(ForeignKey)或一对一关系(OneToOneField)字段,但实际上你应该使用它来访问相关的对象。要解决这个问题,请检查你的代码,找出你尝试调用外键或一对一关系字段的地方,并将其更正为直接访问该字段。例如,假设你有两个模型,一个是。
2024-04-18 01:18:21
305
原创 生成逼真假数据的强大工具: Faker
Python Faker 是一个强大的库,用于生成逼真的假数据。它支持生成多种类型的数据,并允许你自定义数据生成规则。通过使用 Python Faker,你可以轻松地为你的项目生成所需的数据,无论是用于测试、训练模型还是其他用途。希望这篇博客能帮助你更好地了解和使用 Python Faker。
2024-04-17 16:17:34
1408
原创 Python中的Logging模块
在Python编程中,日志记录(Logging)是一项至关重要的任务,它帮助我们跟踪代码的运行状态、识别错误以及优化程序性能。Python标准库中的logging模块为我们提供了强大而灵活的日志记录功能。本文将介绍如何使用logging模块,并探讨其在Python开发中的实际应用。
2024-04-15 23:24:50
803
1
转载 Markdown中的Mermaid语法
Mermaid 是一个用于画流程图、状态图、时序图、甘特图的库,使用 JS 进行本地渲染,广泛集成于许多 Markdown 编辑器中
2024-04-15 23:04:00
266
原创 为什么选择成为一名程序员
在当今社会,信息技术行业迅速发展,程序员作为这一行业的重要组成部分,其职业前景广阔。成为一名程序员,不仅可以获得稳定的收入,还有机会在工作中不断提升自己的技能和知识,实现个人价值的提升。综上所述,选择成为一名程序员,既有兴趣驱动的内在动力,也有职业发展带来的外在诱因。对于那些既对编程充满热情,又希望在未来职业生涯中有所作为的人来说,成为一名程序员无疑是一个理想的选择。选择成为一名程序员,其背后的原因往往既包含兴趣,也包含职业发展的考量。对于我来说,这两者并不是孤立的,而是相互交织,共同推动步入这一行业。
2024-04-11 10:49:50
270
原创 最大公约数算法详解
本文介绍了三种常见的求解最大公约数的算法:辗转相除法、更相减损术和二进制算法。每种算法都有其独特的优点和适用场景。在实际应用中,我们可以根据具体需求选择合适的算法来求解最大公约数。同时,我们也可以通过优化算法来提高求解效率,满足更高性能的需求。
2024-04-10 22:38:31
1019
原创 Django实现的登录注册功能
该项目是使用django+bootstrp开发的项目,包含以下功能注册: 手机获取验证码、ModelForm数据验证、验证码redis超时处理,登录:手机验证码登录、账号密码登录、生成随机图片验证码、用户信息seesion处理项目示例1 账号密码登录2 短信验证码登录3 用户的注册4 用户退出。
2024-04-09 23:16:35
4784
2
原创 生成随机图片验证码
生成指定长度的随机验证码all_chars = string.ascii_letters + string.digits # 包含大小写字母和数字通过string生成随机大小字母数组长度为4的字符串本文介绍了如何使用Python生成随机图片验证码的过程。通过生成随机字符串和绘制干扰线,我们可以创建一个安全可靠的验证码系统,提高网站的安全性。你可以根据自己的需求进行进一步的扩展和优化,例如添加更多的干扰元素、调整字体和颜色等。希望本文对你有所帮助!
2024-04-09 12:35:45
1061
原创 批量将markdown文件转化为docx
Pandoc是一款功能强大的文本转换工具,它能够将多种标记和文字处理格式进行转换,包括但不限于Markdown、HTML、LaTeX和Word docx等。这款软件不仅支持广泛的格式转换,还提供了高度定制化的功能,以满足用户的不同需求。Pandoc的核心优势在于其模块化设计,它由一组读取器组成,能够解析给定格式的文本并产生文档的本地方法表示(抽象语法树或AST)。同时,它还拥有一组写入器,负责将这个本地方法表示转换成目标格式。
2024-04-08 12:06:33
1036
原创 提取图片地理位置
在数字化时代,图片已经成为我们生活中不可或缺的一部分。然而,如何从图片中提取有用的信息,尤其是地址信息,一直是一个具有挑战性的问题。Python作为一种强大的编程语言,为我们提供了丰富的工具和库来解决这个问题。本文将介绍如何使用Python从图片中提取地址信息,并分享一些实用的技巧和经验。
2024-04-07 18:17:32
2958
1
原创 零基础想要进入IT圈
了解计算机科学的基础知识,如计算机网络、数据结构、算法和操作系统等,这将为你后续的学习打下坚实的基础。在学习过程中,你可以利用在线教育资源,如B站等平台上的相关课程,这些资源可以帮助你系统地学习IT知识。除了学习,实践经验同样重要。加入在线技术社区、参加技术会议和研讨会,与其他从业者交流和学习,这些都能帮助你拓宽视野,了解行业动态,并可能获得一些实习或工作机会。零基础想要进入IT行业,首先你需要明确自己的目标和兴趣点,因为IT行业涵盖了许多不同的领域,如软件开发、网络安全、数据分析、人工智能等。
2024-04-07 13:33:41
402
原创 Python中定时任务调度利器APScheduler
APScheduler是一个功能强大且易于使用的Python库,它使得定时任务的设置和执行变得简单高效。无论是简单的定时任务还是复杂的周期性任务,APScheduler都能提供灵活且可靠的解决方案。通过掌握其基本用法和常见场景,你可以轻松地将定时任务集成到你的Python应用中。
2024-04-06 23:44:21
1915
1
原创 堆排序解读
推排序的时间复杂度为O(n log n),其中n是待排序元素的数量。这是因为建堆的时间复杂度为O(n),而每次调整堆(即从堆中取出最大元素并重新调整堆)的时间复杂度为O(log n)。然而,推排序在构建初始堆时,需要对整个数组进行遍历,这可能导致在处理小数据集时效率不如某些其他排序算法。堆通常分为最大堆和最小堆,其中最大堆的父节点值总是大于或等于其子节点值,而最小堆则相反。在空间复杂度方面,推排序是原地排序算法,只需要一个常量级别的额外空间来存储临时变量,因此空间复杂度为O(1)。
2024-04-06 23:02:16
373
原创 二叉堆解读
二叉堆是一种高效的数据结构,它利用堆性质实现了快速插入、删除和查找操作。在优先队列、堆排序等场景中,二叉堆发挥着重要作用。掌握二叉堆的实现和应用,对于提高算法效率和理解数据结构具有重要意义。
2024-04-06 22:48:56
942
原创 计数排序解读
计数排序作为一种非比较型整数排序算法,在某些特定场景下具有独特的优势。通过理解和掌握计数排序的原理、特点和应用场景,我们可以更好地应对数据处理中的挑战,提高排序效率。
2024-04-06 12:35:29
533
原创 二叉树的介绍
二叉树(binary tree)树的每个节点最多有2个孩子节点。注意,这里是最多有2个,也可能只有1个,或者没有孩子节点。二叉树结构如图二叉树还有两种特殊的结构满二叉树: 二叉树的所有非叶子节点都存在左右孩子,并且所有叶子节点都在同一层级上,那么这个树就是满二叉树完全二叉树:完全二叉树的条件没有满二叉树那么苛刻,满二叉树要求所有分支都是满的;而完全二叉树只需保证最后一个节点之前的节点都齐全即可。
2024-04-06 11:42:21
348
原创 归并排序解读
归并排序作为一种典型的分治思想应用,以其稳定、高效的特点在算法领域中占据重要地位。通过深入理解归并排序的原理和实现方式,我们可以更好地掌握分治法的思想,并将其应用于实际问题的解决中。同时,我们也应该关注归并排序的优缺点和适用场景,以便在实际应用中做出合理的选择。
2024-04-05 23:13:33
674
原创 希尔排序解读
对于希尔排序的时间复杂度,并没有一个确定的公式来准确描述,因为它依赖于增量序列的选择。然而,在实际应用中,通过选择合适的增量序列,希尔排序通常能够比插入排序更快地完成任务。希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列(由相隔某个“增量”的记录组成)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。希尔排序的优点在于,相比于插入排序,它减少了数据移动的次数,因此在某些情况下能够更快地完成排序。
2024-04-05 23:03:20
526
在本文中,我们将通过一个完整的机器学习项目,从数据清洗、特征工程到模型训练与调优,详细讲解如何使用机器学习预测房价。我们将使用P
2025-03-17
在现代教育中,自动化评分系统正变得越来越重要 本文将带您使用OpenCV实现一个答题卡自动识别与打分系统 从图像预处理到答案区域检测,再到最终得分计算,我们将一步步讲解整个流程,并附上完整的代码示例
2025-03-09
本文将带你深入了解如何使用OpenCV库实现图片拼接技术,打造令人惊叹的全景图像。通过清晰的步骤讲解和代码示例
2025-03-09
OCR技术在现代文档处理中具有广泛的应用前景。通过使用开源工具和在线服务,我们可以轻松实现文档的OCR识别。希望本文的介绍和代码
2025-03-09
银行卡号识别是许多金融应用中的重要功能,例如移动支付、身份验证等。通过结合计算机视觉(OpenCV)
2025-03-09
Django+bootstrp实现用户的注册和登录功能
2024-04-09
通过解析图片获取图片中的地理位置
2024-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人