- 博客(268)
- 收藏
- 关注
原创 pgvector vs Chroma:为什么做内容搜索,我最终选择了 pgvector
本文从真实业务视角对比pgvector与Chroma在内容搜索场景的适用性。核心观点:pgvector作为PostgreSQL的向量扩展,完美融入SQL体系,能同时处理向量检索与复杂业务条件(过滤、排序、分页等),是内容搜索的最佳选择;而Chroma专为RAG设计,仅适合纯语义召回场景。文章深入分析了两者差异,并给出选型建议:内容搜索优先pgvector,纯RAG选Chroma。关键结论是技术选型应服务于业务需求,而非盲目追求"专业向量数据库"。
2026-01-04 13:17:38
931
原创 为什么我从 MySQL 迁移到 PostgreSQL
文章摘要:作者分享从MySQL迁移到PostgreSQL的实践经验。初期MySQL在简单业务场景下表现优异,但随着业务复杂度提升,其处理复杂查询、JSON数据和事务一致性的局限性显现。PostgreSQL凭借强大的分析函数、JSONB支持、灵活索引和MVCC机制,显著简化了复杂业务逻辑的实现。迁移后SQL更简洁、代码更干净,报表开发效率提升。作者认为MySQL适合简单明确业务,而PostgreSQL更适合需要数据库承担更多计算能力的复杂系统,强调选型应匹配业务发展阶段而非技术信仰。
2025-12-30 10:55:07
785
原创 IDA Pro 最常用快捷键大全(2025完全版)
摘要: 本文整理了IDA Pro逆向分析中最常用的快捷键,涵盖视图切换、反汇编编辑、函数处理、搜索操作、结构体管理、数据处理、图形界面及调试器功能。核心快捷键包括:空格切换视图、G跳转地址、F5反编译、X交叉引用、Shift+F12搜索字符串、Ctrl+F函数列表等。这些快捷键可大幅提升逆向分析效率,适用于静态分析与动态调试场景。建议逆向工程师收藏备用,熟练使用可减少鼠标操作,优化工作流。
2025-12-05 15:03:49
916
原创 FastAPI 后台任务示例:接收请求立即返回,后台处理耗时任务
本文介绍了如何使用FastAPI的BackgroundTasks实现后台异步处理耗时任务。通过一个简单示例演示了如何安装FastAPI和Uvicorn,创建项目结构,并编写代码实现"接收请求立即返回结果,后台异步执行任务"的模式。文章重点解析了BackgroundTasks的使用方法,包括添加后台任务和模拟耗时操作,最后展示了接口调用和运行效果。该方法适用于简单的异步任务场景,能够显著提升用户体验,对于更复杂需求可考虑结合Celery等工具。
2025-11-17 13:57:31
423
原创 Python GUI 开发利器——Kivy 库详解与实战入门
Kivy是一个跨平台的Python GUI框架,支持Windows、Linux、macOS以及移动端的Android和iOS。它具有高度模块化设计、使用KV语言定义界面、支持动画与多点触控等特点,适合开发游戏原型、桌面工具、移动应用等。本文介绍了Kivy的特性、安装方法、基本使用示例以及KV语言界面设计,并提供了常用控件和典型应用场景说明。Kivy通过Buildozer等工具可打包为各平台应用,为Python开发者提供了一个创意十足的多端开发解决方案。
2025-11-13 09:42:51
966
原创 Dify 入门教程:从零开始搭建你的 AI 应用平台
Dify是一款开源的AI应用开发平台(LLMOps),支持可视化构建基于大语言模型(如GPT-4、Claude等)的应用。其核心功能包括Prompt工具、拖拽式工作流、API自动生成及多模型管理,无需编码即可快速开发AI助手。通过Docker部署后,用户能创建聊天应用、调试Prompt并一键生成可集成的REST API。相比Flowise和LangChain,Dify更注重低代码与快速落地,适合开发者、企业及产品经理验证AI原型。优势在于易用性、多模型支持及自动化部署
2025-10-21 14:22:40
1123
原创 深度学习三大框架对比评测:PaddlePaddle、PyTorch 与 TensorFlow
本文对比了三大主流深度学习框架PaddlePaddle、PyTorch和TensorFlow的特点。TensorFlow工业部署能力强,生态完善;PyTorch科研友好,适合快速实验;PaddlePaddle中文支持好,国产适配优。选择建议:科研选PyTorch,工业部署选TensorFlow,国内产业落地选PaddlePaddle。三大框架各有优势,需根据实际需求选择。
2025-09-03 14:04:14
2435
3
原创 推荐系统入门实践:DeepCTR-Torch 使用详解
本文介绍了如何使用DeepCTR-Torch框架从零构建推荐系统的CTR预测模型。内容涵盖:环境安装(Python 3.7+和PyTorch)、特征列定义(稀疏/稠密特征)、数据准备(pandas格式)、模型训练(以DeepFM为例)及评估(AUC指标)。该框架支持Wide&Deep、DIN等主流推荐模型,API简洁易用,适合快速实验和模型迭代。文末还提供了GitHub链接和扩展建议,为推荐系统开发者提供了实用指南。
2025-08-11 10:29:55
1134
原创 一文掌握 Mermaid 图表使用方法
Mermaid是一款基于JavaScript的图表绘制工具,通过简单的文本语法即可生成流程图、时序图、甘特图等多种图表。它能与Markdown完美结合,特别适合程序员在文档中可视化逻辑结构、状态转换和类关系。本文介绍了Mermaid支持的7种核心图表类型(包括流程图、时序图、类图等)的基础语法和示例代码,并整理了各图表的关键字和适用场景。作为开发文档和项目管理的利器,Mermaid能显著提升绘图效率,是程序员必备的文本转图表工具。
2025-08-07 14:07:05
1631
原创 LangGraph与LangChain:关系与应用场景详解
摘要: LangGraph与LangChain是互补的AI开发框架,分别针对不同复杂度场景。LangChain适合线性、无状态的简单任务(如基础问答),而LangGraph扩展为图结构,支持多阶段、有状态及多智能体协作,适用于复杂工作流(如多轮对话、动态RAG、多代理系统)。开发者可基于需求选择:LangChain用于快速原型,LangGraph解决需循环、状态共享或协作的复杂问题。二者无缝集成,形成完整的LLM应用开发生态。
2025-08-01 09:48:06
1353
原创 一个frida的终端 TUI 工具
一个frida的终端 TUI 工具,用于选择 frida-ps -Uai输出的进程和本地目录中的 JS 文件,并以 spawn 或 attach 模式执行 Frida 注入命令。
2025-06-30 08:55:09
589
原创 Chroma 向量数据库入门教程
Chroma是一个本地开源向量数据库,专为AI应用设计。本文介绍了Chroma的安装与使用方法,包括初始化客户端、创建集合、插入数据、相似文本查询等基本操作。Chroma支持与LangChain无缝集成,适合构建RAG系统。文章还提供了数据删除、更新和持久化操作指南,并附有官方资源链接。
2025-06-21 08:45:00
1570
原创 UiAutomator2 与 Appium 对比分析:安卓自动化测试框架的选择指南
本文对比了Android自动化测试框架UiAutomator2和跨平台框架Appium。UiAutomator2是Android官方框架,执行效率高但仅支持Java/Kotlin;Appium支持多语言和iOS/Android跨平台,但依赖Node.js服务端,执行较慢。核心差异在于:UiAutomator2适合纯Android项目,Appium适合跨平台需求。实际应用中,Appium底层仍依赖UiAutomator2驱动,两者可组合使用。技术选型需权衡跨平台、执行效率、语言支持等因素。
2025-06-20 14:08:27
1588
原创 Python 操作 MySQL 数据库
本文介绍了使用Python的pymysql库操作MySQL数据库的完整流程。主要内容包括:安装pymysql、建立数据库连接、创建表、插入数据(单条和批量)、查询数据(全表和条件查询)、更新数据、删除数据以及关闭连接等基本操作。文章提供了详细的代码示例和一个完整的综合示例,并针对常见问题给出了解决方案,如连接失败、中文乱码和SQL报错等。该教程适合需要快速掌握Python与MySQL交互的开发者参考使用。
2025-06-20 14:00:44
998
原创 ELF 文件结构详解
本文详细解析了ELF(Executable and Linkable Format)文件格式,这是Unix/Linux系统使用的标准可执行文件格式。文章首先介绍了ELF的四种文件类型:可重定位文件、可执行文件、共享目标文件和核心转储文件。接着剖析了ELF文件的基本结构,包括文件头、程序头表、节区头表以及各段内容。重点讲解了ELF Header的关键字段、Program Header Table的运行装载信息、Section Header Table的链接定位作用,以及符号表、重定位表和动态链接相关机制。最后
2025-06-17 14:51:14
1121
原创 Android 签名校验与绕过思路详解
本文详细探讨了Android应用签名校验机制及其攻防对抗策略。首先阐述了签名校验的核心原理,包括PackageInfo获取、CREATOR反序列化、文件I/O操作等环节。随后系统性地分析了五种常见绕过方法:拦截PackageInfo、替换CREATOR、重定向文件I/O、替换Application类以及系统调用拦截,并说明了各方法的适用场景。针对开发者提出的检测手段,文章也提供了相应的反制策略,如CREATOR检测绕过、内存校验对抗等。最后强调签名校验是Android安全基础,但随着逆向技术的发展已演变为持
2025-06-17 11:51:29
2420
原创 Python库之LIEF使用
在逆向工程、安全分析、自动化补丁、二进制混淆检测等场景中,我们经常需要读取、修改、重写 ELF、PE 或 Mach-O 文件。这些过去只能通过 C++ 手动操作的任务,如今在 Python 中也能轻松实现,得益于一个强大且现代化的库:LIEF。
2025-06-16 10:59:39
1236
原创 frida-android-mod-menu 使用教程
摘要:frida-android-mod-menu是基于Frida的开源工具,用于为Android游戏添加模组菜单功能。该项目通过加载自定义dex文件到目标进程,结合Frida的JavaScript API实现功能注入。使用前需准备Android设备、Frida环境和开发工具(Android Studio/TypeScript)。安装步骤包括克隆项目、配置TypeScript环境、编写钩子脚本,最后通过Frida注入目标应用。该项目支持Unity游戏分析,提供菜单UI自定义功能,适合熟悉Frida的中高级开
2025-06-14 21:11:31
1412
原创 Android-Mod-Menu 使用教程
摘要 LGLTeam的Android-Mod-Menu是一个功能强大的Android游戏浮动模组菜单模板,支持il2cpp和原生游戏,集成多种开发工具。本教程详细介绍了从安装到实际应用的完整过程,包括: 环境准备:需要Android开发基础知识和相关工具(Android Studio、NDK、APK反编译工具) 项目配置:不同架构的NDK适配及Android Studio设置 APK修改:两种集成方法(服务启动/活动启动)及smali文件处理 功能开发:菜单UI定制、功能逻辑实现和字符串混淆 调试优化:日志
2025-06-14 21:05:42
2994
原创 JavaScript Obfuscator 命令行使用教程
摘要:javascript-obfuscator是一款专业JavaScript代码混淆工具,提供多种加密方式保护前端代码安全。支持全局安装和命令行操作,可将源代码转换为不可读形式,包含变量重命名、字符串编码、控制流扁平化等特性。用户可通过配置文件调整混淆强度,平衡安全性与性能,并支持批量处理目录文件。工具适用于代码防爬取和知识产权保护场景,但需注意过度混淆可能影响运行效率。
2025-06-13 09:54:57
2370
原创 五大静态博客框架对比:Hugo、Hexo、VuePress、MkDocs、Jekyll
本文对比了五款主流的静态博客/文档框架:Hugo、Hexo、VuePress、MkDocs 和 Jekyll,分析了它们的特点、优劣势及适用场景。
2025-05-13 16:18:19
6552
原创 LangChain与LlamaIndex:区别解析与应用场景
LangChain 是一个开源框架,专注于构建和部署基于 LLM 的复杂应用程序。它提供了一套全面的工具和 API,支持从数据加载、处理到生成的全流程开发。LangChain 的核心设计理念是“链式架构”,允许开发者将多个组件(如模型、提示、索引、记忆等)灵活组合,构建上下文感知的交互式应用。核心特性:模块化设计:支持多种 LLM(如 OpenAI 的 GPT、Anthropic 的 Claude 等)以及外部工具和数据库的集成。链式工作流。
2025-05-08 11:59:28
1678
原创 流式通信技术对比:SSE vs WebSocket 应用场景与最佳实践
SSE 是一种基于 HTTP 协议的单向通信技术,允许服务器主动向客户端推送数据。客户端通过接收服务器推送的事件流。单向通信(服务器 → 客户端)基于标准 HTTP 协议,部署简单支持自动重连与内置心跳机制以格式传输纯文本数据和WebSocketSSE:简单、兼容性好,适合单向推送WebSocket:双向、低延迟,适合复杂实时交互开发者应根据实际项目需求,在通信模式、实时性要求、开发复杂度和部署环境等因素中权衡选择。随着HTTP/3等新一代通信协议的发展,未来实时通信将变得更加多样化。
2025-04-29 09:02:08
1943
原创 DavGo简单部署WebDAV网盘
DavGo是一个基于Go语言开发的轻量级WebDAV网盘服务端,支持动态配置多个服务实例。主要功能包括:通过YAML文件配置多个独立WebDAV服务,每个实例可设置不同根目录、认证信息和读写模式(readonly/readwrite);内置HTTP Basic认证;支持多种文件管理器挂载。使用简单,只需配置config.yaml并运行程序即可启动服务,还提供Nginx反向代理配置示例。适用于需要搭建多用户、多目录WebDAV服务的场景。
2025-02-27 17:55:29
936
原创 python加载yaml配置之yamlc库
yamlc是一个简单的 Python 库,用于读取和管理 YAML 配置文件。它允许用户轻松加载、访问和重新加载配置。
2025-02-24 10:03:04
370
原创 AI Agent智能体平台大盘点
LangChain 是一个开源的框架,旨在简化并增强与大型语言模型(LLMs)互动的能力。它为构建复杂的语言应用程序提供了工具,允许开发者轻松地将多个自然语言处理(NLP)模型和外部数据源(如数据库、API)整合在一起,构建出具有更高智能和处理能力的应用。
2025-02-07 17:35:31
1038
原创 从单体应用到微服务的迁移过程
从单体应用迁移到微服务架构并不是一蹴而就的过程,需要经过谨慎的规划和逐步实施。通过拆分功能模块、使用合适的基础设施和工具,你可以构建一个灵活、可扩展、易于维护的微服务架构。不过,在迁移过程中,你也会面临不少挑战,如数据一致性、分布式事务等问题,必须根据具体情况选择合适的解决方案。
2025-01-26 15:26:51
1942
原创 PyTorch广告点击率预测(CTR)利用深度学习提升广告效果
通过这个简单的深度学习模型,我们实现了一个广告点击率预测系统。利用PyTorch,我们可以非常方便地构建神经网络模型,训练并进行评估。通过不断优化模型架构和特征工程,我们有可能进一步提升广告点击率的预测准确度。随着广告行业的不断发展,点击率预测的需求将会越来越大,借助深度学习的强大能力,我们可以不断优化广告投放策略,达到更加精确的预测结果。希望本文的内容能为你搭建广告点击率预测系统提供帮助。
2025-01-22 13:59:43
1527
原创 PyTorch 神经协同过滤 (NCF) 推荐系统教程
推荐系统通过分析用户历史行为数据,为用户推荐相关的物品或内容。在协同过滤方法中,我们关注于从用户-物品评分矩阵中挖掘出潜在的规律,从而预测用户对未见物品的评分。介绍神经协同过滤模型的基本原理。使用 PyTorch 实现 NCF 模型。训练并评估该模型。使用训练好的模型为用户推荐物品。绘制训练过程中的损失曲线图表,帮助我们更直观地理解模型训练效果。神经协同过滤 (NCF) 是一种深度学习方法,用于解决传统协同过滤方法在处理用户-物品关系时的限制。
2025-01-17 14:14:20
2148
原创 Python中的静态方法
静态方法是通过装饰器定义的函数。它既不需要访问实例(self),也不需要访问类(clsprint("这是一个静态方法")# 调用静态方法这是一个静态方法可以看到,静态方法通过类名直接调用,无需创建类的实例。静态方法是 Python 中一个非常有用的工具,适用于不依赖实例或类的逻辑操作。通过使用静态方法,可以让代码更清晰、结构更合理。在需要定义工具函数、工厂方法或数据验证逻辑时,可以优先考虑使用静态方法。
2025-01-16 11:54:30
848
原创 Python装饰器入门指南
装饰器本质上是一个高阶函数,它接受一个函数作为输入,并返回一个新的函数。它通常用于对函数进行增强或修改行为。上述代码等价于:如何创建一个装饰器?创建一个装饰器的关键是编写一个接受函数作为参数的函数,并在内部定义包装逻辑。输出:带参数的装饰器如果原始函数需要参数,包装函数也需要接受这些参数。输出:嵌套装饰器一个函数可以被多个装饰器装饰,装饰器的执行顺序是从内到外。输出:使用 使用装饰器时,原始函数的元信息(如 和 )可能会丢失。为了解决这个问题,可以使用 。输出:类方法和静态方法
2025-01-16 11:48:42
647
原创 Docker Compose 配置指南
Docker Compose 是一个功能强大的工具,适用于本地开发、测试和多容器应用的管理。通过一个简单的文件,你可以定义、构建并管理多个容器应用,避免了手动管理多个 Docker 容器的复杂性。本文介绍了如何配置 Docker Compose 文件、使用流程和常用命令,帮助你更高效地使用 Docker Compose 来部署和管理容器化应用。常见的 Docker Compose 命令如updownpslogs等,可以帮助你快速管理和调试多容器应用。
2024-12-23 16:04:10
2487
原创 Linux 中怎样把正在执行的任务放到后台执行
在使用 Linux 的过程中,可能会遇到某些任务需要在后台运行的情况,例如长时间运行的脚本或占用终端的命令。将正在执行的任务放到后台,可以提高操作效率,不需要为每个任务单独开一个终端窗口。如果任务已经在后台运行,但你需要确保它在退出终端后继续运行,可以使用。在启动任务时,如果知道该任务需要在后台运行,可以直接在命令末尾添加。命令会移除任务与当前终端的关联,从而确保终端关闭时任务不会被中断。任务会立即在后台执行,同时显示任务的 PID,方便后续管理。是任务的进程 ID,可以用来管理该任务。
2024-11-18 18:00:47
5149
1
原创 Go语言捕获和处理异常
在Go语言中,异常处理机制与其他语言(如Java或Python)有所不同。Go并没有传统意义上的异常机制,而是通过返回值来处理错误。不过,Go语言也提供了 和 机制来处理运行时错误。本文将介绍这两种机制的使用。在Go中,函数通常会返回一个错误类型的值,表示函数执行是否成功。我们可以通过检查返回的错误来决定如何处理。2. 使用 和 2.1. 什么是 ? 用于引发一个运行时错误,它会导致程序立即停止,并开始逐层回溯。在回溯过程中,所有的defer语句会被执行。2.2. 什么是 ? 是一个内置函数
2024-10-29 09:21:20
769
原创 Go语言指针操作
指针是一个变量,它存储的是另一个变量的内存地址。在Go语言中,指针可以用来直接操作存储在内存中的数据。允许函数修改调用者的变量通过传递指针而不是值来提高效率。
2024-10-28 16:50:28
704
原创 Milvus 与 Faiss:选择合适的向量数据库
Milvus:Milvus 是一款开源向量数据库,旨在管理和检索大规模的向量数据,支持多种相似性搜索算法,并且支持水平扩展和自动化的数据分区管理。它采用了分布式架构,并提供了丰富的查询功能,适合生产环境中的复杂向量检索应用。Faiss:Faiss 是 Facebook 开发的一款开源向量检索库,主要用于快速近似最近邻搜索(ANN)。Faiss 提供了许多不同的索引类型,支持 GPU 加速,适合单节点的高效相似性检索,但不具备 Milvus 的分布式特性。特性MilvusFaiss架构分布式单节点。
2024-10-28 09:30:22
5657
原创 使用 PyTorch 构建 LSTM 股票价格预测模型
在金融领域,股票价格预测是一个重要且具有挑战性的任务。随着深度学习的发展,长短期记忆网络(LSTM)因其在处理时间序列数据方面的出色表现而受到关注。本篇博客将指导你如何使用PyTorch构建一个LSTM模型来预测股票价格,我们将逐步介绍数据预处理、模型训练和结果可视化的完整流程。
2024-10-14 14:47:56
4663
4
原创 PySide6 vs PyQt6: 如何为Python GUI开发做出最佳选择
选择PySide6不希望购买商业许可证,并且希望在闭源项目中使用。期望获得Qt官方的长期支持和更新。更看重与Qt核心库的同步更新。选择PyQt6更依赖丰富的教程、社区资源和现有的支持。项目是开源的,或者你愿意购买商业许可证。根据你的需求和项目特点,选择合适的库可以让你的开发过程更加顺畅。
2024-10-09 16:22:01
4694
原创 Python之openpyxl读写 Excel 文件教程
是一个用于读写 Excel 文件的 Python 库。以下是一些基本用法,包括创建、读取、修改和保存 Excel 文件。,你可以轻松地创建、读取、更新和格式化 Excel 文件。方法用于遍历工作表中的行,其参数用于控制遍历的范围和输出格式。,将只返回单元格的值,而不是单元格对象。读取现有的 Excel 文件也是很简单的。: 指定结束遍历的行号(默认是工作表的最后一行)。: 指定结束遍历的列号(默认是工作表的最后一列)。: 指定开始遍历的行号(默认是 1)。: 指定开始遍历的列号(默认是 1)。
2024-10-08 09:16:37
1066
原创 微服务之服务注册与发现:Etcd、Zookeeper、Consul 与 Nacos 比较
选择合适的服务注册与发现工具需要综合考虑项目需求、团队技术栈、生态环境等因素。Etcd适合对一致性要求高、对功能相对简单的场景;Zookeeper适合需要高可靠性、丰富功能的场景;Consul适合需要全面的服务治理能力的场景;Nacos适合需要易用性、功能丰富、生态良好的场景。小型项目:优先考虑Etcd或Nacos,易于上手,社区活跃。大型复杂项目:优先考虑Consul或Zookeeper,功能全面,稳定可靠。云原生场景:优先考虑与云平台深度集成的工具,如Consul或Nacos。注意。
2024-09-14 16:06:51
2341
1
android apk二进制文件修改查看工具包
2022-11-01
golang写的grpc实例demo
2022-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅