从零构建一个插件系统(五)其他领域插件探讨
它山之石,可以攻玉,今天我们从插件系统的构建角度出发,探讨如何在特定的业务场景中实现插件。 不过在开始之前,先提一嘴:插件的设计会因应用场景与具体业务需求的不同而有所差异,并没有所谓的“最优解”。你可能会看到一个简单的结构,但只要它能完美契合并满足需求,那么就是有效的设计。 另外,尽管我们系列文章的...
它山之石,可以攻玉,今天我们从插件系统的构建角度出发,探讨如何在特定的业务场景中实现插件。 不过在开始之前,先提一嘴:插件的设计会因应用场景与具体业务需求的不同而有所差异,并没有所谓的“最优解”。你可能会看到一个简单的结构,但只要它能完美契合并满足需求,那么就是有效的设计。 另外,尽管我们系列文章的...
休息了几天,我们继续。今天来聊一聊插件的缓存。 在一个系统中,合理的缓存策略是必不可少的。它像我们大脑的记忆,一方面可以提高执行效率,避免重复的、昂贵的计算;另一方面,在我们的场景里,它还能减少不必要的网络请求,在提升性能的同时,也避免了被上游 API 频繁骚扰。 实现插件缓存,通常有两种思路: 插...
分享一下我 5 月从事文旅 AI 助手的一些得与失,并探讨在对话场景下,怎样实现才更为合理。 首先补充一下项目背景:该项目涉及景区、美食、停车场、酒店、天气等信息。要求是:当用户提问时,系统能够基于数据库的内容进行润色后回答,且回答的模板可能是固定的,类似下面这种 不过,很快就遇到了第一个问题:如何...
昨天看到一篇文章 这个开源的「AI + 低代码」开发平台绝了,Gitee 上斩获 9.2K Star!,恰逢我也有相关的低代码和可视化方面的经验,这里就谈谈自己的看法,首先过下 VTJ.PRO 支持的功能列表。 代码还原,从大屏还原到本地代码 现有代码转化,转化为平台支持的代码(事件、参数等) 设计...
今天我们将探讨如何构建一个支持并发执行的插件系统。在上一篇《从零构建一个插件系统 2. 串行插件系统》中,我们实现了一个功能分离且具备完整 TypeScript 类型推导的串行系统。本篇将在此基础上,通过引入并发机制来显著提升插件的整体执行效率。 要实现带有依赖关系的并发,一个核心的前置知识是 拓扑...
书接上文,在第一篇我们讨论了一个插件系统需要包含的重点部分有哪些,下面就来实现一个基本的串行插件系统,在这里我们还是以我的 Nextjs 构建 SSG 的目标为清单。 拉取所有的 Issues 对 Issue 内容中的图片进行防盗链处理 自动提取文章摘要 提取文章的缩略图 合并专栏 实现缓存 输出最...
从今天起准备开一个全新系列,就是关于从 0 到 1 构建一个功能齐全的插件系统。准备写文章也蛮久了,不过一直处于拖延阶段,恰逢前段时间我的项目 yliu-blog-engine 就使用到了这个插件功能,所以就打算以此来讲解一下。 考虑真实的场景,我的项目是一个 Next.js 项目,它最终构建成 S...
经常在各种文章或视频中听到“微调”这个词,而与它相关的还有“全量微调”、“LoRA 微调”,更专业的还包括“SFT”、“RLHF”等名词。刚接触这些术语时,常常会感到困惑:“它们分别属于训练的哪个阶段?彼此又是什么关系?”。 本文将借此机会,对这些概念进行系统梳理与澄清。上图是一个大语言模型(LLM...
首先,RAG 的全称是检索增强生成(Retrieval-Augmented Generation),它的核心是通过构建并利用知识库来增强大语言模型的回答能力。但在其标准的流程中,会衍生出很多概念和技术细节,这些细节在许多地方都至关重要。 我们先看一个最经典的 RAG 流程是怎么样的: 数据处理阶段:...
最近 MCP 的概念很火,还有 A2A。但是发现很多文章都停留在了概念层面,没有深入去说如何构建一个 MCP 的服务,以及我觉得很多文章对 MCP 的理解其实也是有问题的,所以这篇文章算是站在工程师的角度,如何去构建一个 MCP 的服务。 会大概写三个系列,当前为第一系列 主要介绍 Stdio 的搭...
按照惯例总结一下 2024 年的一些感悟,打了很多字但是又给删除了。下面从一个工作蛮久的二线程序员视角来聊聊今年的一些感悟。 工作 整体经济的萧条,就是我对今年的感悟。 很多岗位的缩减以及投递简历数量都可以验证这一点。不想从太宏观的角度来分析,作为个人能做的就是尽量提升竞争力(软、硬方面),以及中年...
最近重构了博客系统,其中涉及到主题切换的方案,于是就有了这次的分享。 示例图片 UnoCSS 方案 使用 CSS 变量配合 UnoCSS 插件注入的方式完成主题切换功能。 具体来说,我们的主题有三种模式: 跟随系统; 浅色; 深色。 其中,用户手动选择的模式会覆盖系统跟随模式。 一个比较容易想到的方...
其实自己一直不是 Typora 的重度用户,虽然可以实时预览编辑,但是我期待的格式化功能目前还是缺失。 但是得益于颜值自己还是会偶尔使用它,但是本地的 md 文件和发布到掘金和 Github 等平台还需要对本地链接一个个转换,实在是非常不友好。所以就有了这篇文章,介绍一下在 Typora 中如何自定...
在最近开发的过程中遇到了一个问题,在集成 Vue SFC Playground 的时候同时也使用了 monaco-editor,而 Vue SFC Playground 使用的默认编辑器就是 monaco-editor-core。 image 这就导致了一个问题,存在两个编辑器,但是它们都定义了全局...
决定迁移的原因主要有两点: 对 Node 22 支持不友好。由于项目基于 VueCLI 3,Node 版本的诸多变更导致无法启动,必须通过 nvm 切换到 16 版本。 构建和热更新速度慢。 在决定使用 Rsbuild 之后,我也进行了一番调研,备选方案有四个: Webpack+SWC 或 Webp...