
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
你用的是本地 BAAI/bge-base-zh-v1.5 模型,通过 AutoTokenizer + AutoModel 做嵌入,且把模型封装成单例类(BAAIEmbeddingEngine)并在项目启动时初始化。但是每次执行向量化(lancedb 操作)时,日志都会出现:

在字符串的日常处理场景里,判断一个字符串是不是另一个字符串的子序列是非常常见的需求。比如在搜索推荐里,我们输入一个简写,系统要判断这个简写是不是某个候选词的子序列,从而决定是否推荐。LeetCode 392 就是这样一道题:给定两个字符串 s 和 t,判断 s 是否为 t 的子序列。本文会从题目分析、解题思路、Swift 实现代码到示例测试,带大家完整拆解这道题,并结合进阶问题聊聊在大规模数据场景

在日常开发中,大家应该或多或少都遇到过这种情况:SQL 在本地跑得好好的,一放到服务里执行就报 java.sql.SQLException。很多同学看到这个异常时,第一反应就是“是不是数据库挂了?”。其实绝大多数情况跟数据库无关,而是 SQL 拼接、参数绑定或者日志缺失导致的。

在做矩形覆盖的题目时,很多人第一反应就是「遍历 + 合并区间」,但 LeetCode 的 完美矩形 题目可没那么简单。它不仅要求所有小矩形刚好拼出一个大矩形,而且不能有重叠、不能有缝隙,就像拼图一样必须严丝合缝。本文会带你逐步拆解问题,分析为什么简单的遍历不够用,并给出一个基于 面积校验 + 顶点校验 的高效解法。

在 Vue3 里,defineAsyncComponent 是个特别好用的 API。它能帮我们把一些体积大的组件做成懒加载,按需加载,页面首屏体验会好很多。比如说我们有个图表页面依赖 echarts,就完全没必要一开始就把它打包进来。

在算法题中,经常会遇到一些“模拟类”的题目:一开始我们会忍不住想直接照步骤一步步操作,但很快就会发现这种方式效率低得吓人。这道 LeetCode 390 消除游戏就是典型的例子。表面上是数组模拟,但实际上考的是 数学规律。本文会先介绍题目,然后分析解法,最后带上完整的 Swift Demo 和测试。

在 Vue3 里,我们经常用 defineAsyncComponent 来做组件懒加载,比如页面特别大、组件依赖的第三方库比较重,就可以按需加载。按理说,Vue3 官方文档说得很清楚:在加载过程中,可以显示一个 loadingComponent,加载失败还能显示 errorComponent。但实际在 Nuxt3 环境下,很多同学发现了一个问题:无论设置 loadingComponent 还是 e

在日常开发中,经常会遇到“数据校验”或者“缺失元素查找”的场景,比如比对两个列表,确认是否有新增/丢失的条目。LeetCode 389 的问题就很像这个场景:我们有两个字符串,其中一个是另一个的乱序版本,只不过多了一个字母。我们需要快速找到那个被“偷偷加进去”的字母。

在微服务架构里,外部请求和内部服务调用的认证逻辑往往不一样。比如外部用户访问接口时,必须用 user_token 来校验身份;而服务之间(比如服务 A 调用服务 B)只需要用 client_token 来表明这是内部调用,不必再走一遍复杂的用户认证。

在日常开发中,处理文件路径的逻辑非常常见,尤其是涉及目录层级结构的时候。比如在 IDE 里显示文件目录树、在服务器端解析配置路径,或者在日志系统里定位文件存放位置,都需要类似的层级计算逻辑。这道 LeetCode 388 文件的最长绝对路径 就是个非常典型的模拟文件系统的题目:我们需要根据给定的字符串描述的文件系统结构,找出路径最长的那个文件,并返回它的路径长度。
