news 2026/9/2 1:19:39

Obsidian+AI打造个人知识库:从双链笔记到RAG语义检索问答

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Obsidian+AI打造个人知识库:从双链笔记到RAG语义检索问答

不知道你有没有遇到过这样的场景:笔记软件里存了上百篇文档,标签打了无数个,文件夹也建了一层又一层,可真到用的时候,却连“之前整理过的那份资料”都找不出来。关键词搜索总是返回一堆标题匹配,真正要用的内容反而被淹没在结果列表里。我一度以为是自己的整理方式有问题,直到把 Obsidian 和 AI 组合起来,才真正把笔记从“存储工具”变成了“可检索、可问答、可复用的知识库”。

这篇文章围绕Obsidian + AI 构建笔记知识库这个主题展开,覆盖安装准备、仓库目录规划、Markdown 双链笔记组织、AI 插件接入、本地语义检索与问答对话全流程,最后还会给出常见问题、工程建议和后续学习方向。整体不需要部署复杂的服务端,本地优先,新手可以按步骤操作,5 分钟就能跑通最小的知识库闭环。

1. 为什么用 Obsidian + AI 做个人知识库

1.1 Obsidian 是什么

Obsidian 是一款本地优先的 Markdown 笔记工具,所有数据都以普通的.md纯文本文件保存在你的电脑里。它和传统笔记软件最大的不同是支持双向链接:你在笔记 A 中通过[[笔记B]]引用笔记 B 后,笔记 B 的底部会自动出现“被哪篇笔记引用”的入口,从而形成一个可以逐步放大的知识网络。

这个设计让 Obsidian 很适合承担“第二大脑”的角色。传统笔记按文件夹归类,属于单向树状结构;一旦笔记数量增多,同一篇笔记可能同时属于多个主题,文件夹就很难表达这种交叉关系。双链则允许你用网络的方式组织知识,配合 Obsidian 自带的图谱视图,可以看到不同笔记之间的关联强度。

1.2 为什么是它而不是普通笔记软件

普通笔记软件不是不能用,但通常有几个痛点:

  • 数据封闭,导出繁琐,换工具成本高;
  • 搜索依赖关键词,内容多了以后准确率明显下降;
  • 笔记之间缺乏关联,知识还是孤岛;
  • 想要自定义模板、自动摘要、批量处理时,扩展能力有限。

Obsidian 的核心优势是数据可控扩展性强。所有笔记都是本地 Markdown 文件,即使哪天 Obsidian 不更新了,文件仍然可以用其他工具打开。同时,Obsidian 拥有庞大的社区插件体系,几乎所有常规笔记功能都能通过插件实现。当你需要 AI 参与笔记管理时,有多个 AI 插件可以选择,并不依赖某一个封闭的云服务。

1.3 AI 在知识库中扮演什么角色

AI 在笔记知识库中主要承担四类工作:

  1. 自动摘要与打标签:把长篇笔记压缩成摘要,自动提取关键词和标签,降低人工整理成本。
  2. 语义检索:不再只靠关键词匹配,而是通过向量化技术理解语义,比如搜索“项目延期的主要原因”时,能召回笔记中“进度落后是因为需求变更”这类语义相近的内容。
  3. 对话式问答:基于你写的笔记回答具体问题,相当于给笔记加了一个“可聊天”的入口。
  4. 内容生成与润色:根据已有笔记生成日报、周报、博客草稿、会议纪要等。

这些能力背后有一个常见概念:RAG(Retrieval-Augmented Generation,检索增强生成)。简单理解就是:先把笔记内容切块并向量化存储,用户提问时,先从向量库中检索相关片段,再把片段连同问题一起交给大模型生成答案。这样大模型不需要“记住”你的所有笔记,也能结合笔记内容回答问题,并且能减少凭空编造的概率。

1.4 需要区分的几个概念

  • Obsidian Vault(仓库):一个 Vault 对应一个文件夹,里面的 Markdown 文件会被 Obsidian 统一管理和索引。
  • 双链(双向链接):通过[[笔记标题]]建立笔记关联。
  • MOC(Map of Content,内容地图):一篇用于汇总和导航某类笔记的索引页,类似目录或枢纽节点。
  • RAG 与向量数据库:RAG 是一种技术流程,向量数据库是其中“存储向量”的组件。Obsidian 中的 AI 插件通常在本地完成向量化,并不需要单独部署数据库。
  • Dify、RagFlow:企业级知识库平台,适合团队知识管理和复杂工作流;Obsidian 更适合个人、轻量级、本地优先的知识库场景。

理解这些概念后,下面可以直接进入实操环节。

2. 环境准备与仓库规划

2.1 下载与安装

Obsidian 官方支持 Windows、macOS、Linux、Android 和 iOS。你可以直接访问官网下载对应平台的安装包。

国内网络环境下,官网下载速度有时会比较慢。如果遇到下载缓慢或中断,可以尝试以下方式:

  • 使用浏览器默认下载而不是下载工具,避免被拦截;
  • 换一个网络环境后重试;
  • 查看 Obsidian 开源社区整理的镜像下载地址,用镜像包安装;
  • 下载后建议先校验压缩包,避免使用来路不明的安装包。

安装完成后,首次启动会提示创建新仓库或打开已有仓库。这里还需要注意:Obsidian 版本迭代较快,插件功能和配置界面可能随版本变化。本文示例以常见版本为准,重点是演示配置思路,具体名称请以你自己安装的版本为准。

2.2 创建仓库与目录规划

打开 Obsidian 后,选择“Create new vault”,输入仓库名称并选择本地文件夹位置即可。

建议在正式使用前先规划目录,默认的根目录放一堆文件很快就会失控。这里给出一个通用结构,你可以根据实际使用习惯调整:

my-vault/ ├── 00-Inbox/ # 临时收集箱,快速记录 ├── 01-Projects/ # 有明确目标和截止时间的项目 ├── 02-Areas/ # 长期责任区,如健康、财务、工作职责 ├── 03-Resources/ # 主题资料,如某技术栈、某本书的读书笔记 ├── 04-Archive/ # 已归档内容 ├── 05-Templates/ # 模板文件目录 └── 06-Attachments/ # 图片、PDF 等附件

这种结构参考了 PARA 方法的核心思想:按“行动性”而不是“主题”来组织笔记。一个笔记不一定要被放在某一个固定文件夹里,文件夹只是兜底分类;真正串起笔记的是双链和 MOC。

2.3 安装核心插件

Obsidian 的插件分为核心插件和社区插件两类。

需要启用的核心插件通常包括:

  • 模板:快速插入预设模板;
  • 日记:打开或创建当天日记;
  • 图谱视图:查看笔记关联网络;
  • 标签列表:查看和管理标签;
  • 大纲:查看当前笔记标题结构;
  • 关系图谱:可视化双链关系。

社区插件则需要打开“设置 → 第三方插件 → 关闭安全模式”,然后进入“社区插件”市场搜索安装。网络情况较差时,社区插件市场可能加载缓慢,此时可以按 Obsidian 官方社区提供的手动安装方式操作:先下载.zip插件包,解压后放入 Vault 目录下的.obsidian/plugins/插件名/,再重启 Obsidian 并在第三方插件列表中启用。

本文后续会用到的主要社区插件有:

插件名作用
Smart Connections本地向量化笔记,提供语义检索和关联推荐
Copilot for Obsidian接入大模型 API,实现笔记问答和对话
Text Generator基于提示词批量生成摘要、标题、标签
BMO ChatbotObsidian 内置聊天机器人,可调用多种 API

插件版本变化很快,安装前建议查看插件主页说明,确认是否兼容你当前的 Obsidian 版本。

3. 创建可检索的笔记骨架

知识库不能只靠 AI 插件,笔记本身的结构决定了检索和问答质量。这一节先搭好知识库的基础骨架。

3.1 Markdown 基础与双链语法

Obsidian 使用标准 Markdown 语法,常用写法如下:

# 一级标题 ## 二级标题 **加粗** *斜体* - 列表项 - 列表项 > 引用内容 `行内代码` ```python print("代码块")

[[另一篇笔记]] # 双链 ![[图片.png]] # 嵌入图片 [[笔记标题|自定义显示文字]] # 带显示文字的双链

其中 `[[笔记标题]]` 是 Obsidian 最重要的语法。当你输入 `[[` 时,Obsidian 会弹出搜索框,可以选择已存在的笔记或创建新笔记。双链不仅方便跳转,还能在关系图谱中形成节点连线。 ### 3.2 用 MOC 组织入口 MOC 是一篇“导航索引笔记”,它的价值在于把零散笔记串成一个主题。比如你在 `03-Resources/` 下积累了很多 Python 学习笔记,可以新建一篇 `03-Resources/Python MOC.md`: ```markdown # Python 内容地图 ## 基础语法 - [[Python 变量与数据类型]] - [[Python 列表与字典]] ## 标准库 - [[Python datetime 模块]] - [[Python pathlib 模块]] ## 实战案例 - [[用 Python 批量重命名文件]]

这样每次打开 MOC,就能快速定位到相关内容。更重要的是,MOC 本身也是笔记,可以被其他 MOC 双链引用,形成更高层的知识结构。

3.3 建立模板体系

使用“模板”核心插件可以减少重复劳动。先设置模板文件夹路径为05-Templates,然后在里面创建模板文件。

以期刊笔记模板为例,在05-Templates/期刊笔记模板.md中写入:

--- title: "{{title}}" author: date: {{date}} tags: [期刊/未分类] status: 待整理 --- # {{title}} ## 核心观点 - ## 与我的关联 - ## 摘录 - ## 后续行动 - [ ]

创建笔记时,输入模板名即可快速生成指定内容。模板中的{{title}}{{date}}是 Obsidian 模板插件提供的内置变量,分别代表当前笔记标题和日期。

模板的意义不只是写格式,更重要的是强制你在记笔记时把“核心观点”“个人关联”“后续行动”写清楚,这些字段会直接影响 AI 问答和检索的质量。

3.4 标签与属性辅助检索

标签是双链之外的另一种组织方式。建议使用层级标签,例如#项目/知识库#状态/进行中,检索时比散乱标签更容易筛选。

更结构化的信息建议放在笔记开头的 YAML frontmatter 中:

--- title: Obsidian 知识库搭建 author: xxx created: 2025-01-12 tags: - 笔记工具 - AI - 知识库 status: 已完成 related: - "[[RAG 入门]]" - "[[Smart Connections 使用]]" --- 正文内容……

YAML frontmatter 是笔记的元数据,很多插件都读取这个区域。批量处理和后续筛选会很方便,比如你可以用 Dataview 插件按statustags动态生成笔记列表。

4. 给笔记接入 AI

搭建好笔记骨架后,接下来就是核心:如何让 AI 真正理解并检索你的笔记。

4.1 AI 插件选型

Obsidian 社区有多个 AI 插件,它们的定位不同:

  • Smart Connections:核心是本地语义索引和相似笔记推荐。它会将笔记片段向量化并保存到本地索引中,对隐私友好,不强制依赖云端 API。
  • Copilot for Obsidian:更像一个聊天助手,支持接入 OpenAI、Anthropic、OpenAI 兼容接口等,可以基于整个 Vault 做问答,也支持自定义 Prompt。
  • Text Generator:偏生成型工具,可以批量生成摘要、续写、翻译、打标签,适合处理旧笔记。
  • BMO Chatbot:界面轻量的聊天机器人,支持本地模型和云端 API。

对新手来说,建议先安装 Smart Connections 建立语义检索,再安装 Copilot 做问答对话,这两个组合可以在不写代码的情况下覆盖大部分需求。

4.2 方案一:云端 API 助手

如果希望获得更好的问答效果,可以使用云端大模型 API。以 OpenAI 兼容接口为例,通常在插件设置中填写:

  • API Base URL(接口地址);
  • API Key(密钥);
  • 模型名称(如gpt-4o-miniqwen-plus等,以你实际使用的服务为准)。

以 Copilot for Obsidian 为例,你需要在设置中找到API Provider,选择 OpenAI 或自定义 OpenAI 兼容服务,填入对应的 Key 和模型名。不同插件配置路径不同,但核心字段基本一致。

需要特别提醒:API Key 是敏感信息,不要明文写在笔记里,更不要提交到公开仓库。建议将 Key 单独保存在 Obsidian 外的安全位置,或者在系统环境变量中配置,再让插件读取。

云端 API 的优点是模型能力强,回答质量高;缺点是每次问答都会产生费用,且笔记内容需要发送到第三方服务,敏感数据要谨慎。

4.3 方案二:本地模型与隐私保护

如果你是隐私敏感用户,或者希望离线使用,可以结合本地模型工具。常见方案是使用 Ollama 在本地运行开源模型,然后把 Obsidian 插件指向本地接口。

Ollama 安装完成后,在终端拉取模型:

ollama pull qwen2.5 ollama pull llama3.1

然后启动本地服务:

ollama serve

在 Obsidian 插件中,将 API Base URL 指向http://localhost:11434,模型名填你拉取到的模型名称。这样笔记不会离开你的电脑,但回答质量和速度取决于本地硬件。建议有 16GB 以上内存的电脑运行 7B 级别的模型,效果会更稳定。

4.4 RAG 在 Obsidian 中的实现逻辑

在 Obsidian 里实现 RAG,不需要理解全部底层原理,但了解流程对排查问题很有帮助。整体流程如下:

  1. 插件遍历 Vault 中的 Markdown 文件;
  2. 按章节或固定长度将笔记切分为片段;
  3. 调用嵌入模型将片段转为向量,并保存到本地索引;
  4. 用户提问时,将问题转为向量;
  5. 通过相似度计算召回最相关的笔记片段;
  6. 将召回片段和用户问题一起提交给大模型,生成回答。

Smart Connections 就完成了前五步,Copilot 则负责第六步的对话生成。两者结合,就构成了一个典型的个人 RAG 知识库。

5. 5 分钟上手实战:从笔记到问答知识库

下面用一个完整小例子,演示从零到一跑通 Obsidian + AI 知识库。

5.1 准备示例笔记

03-Resources/下新建一篇笔记,命名为Smart Connections 使用笔记.md

# Smart Connections 使用笔记 Smart Connections 是 Obsidian 中的语义检索插件。 它会把笔记向量化,并根据语义相似度推荐相关笔记。 使用步骤: 1. 安装插件并启用; 2. 打开命令面板,运行索引命令; 3. 等待索引完成后,通过侧边栏查看相似笔记; 4. 也可以在命令面板中运行“Chat with notes”进行对话。

再新建一篇RAG 基础概念.md

# RAG 基础概念 RAG 表示检索增强生成。 核心流程是:检索 -> 增强 -> 生成。 第一步先从知识库中检索相关内容; 第二步将检索结果拼接进提示词; 第三步由大模型生成最终回答。 RAG 的好处是可以让模型结合私有知识回答问题,减少幻觉。

这两篇笔记的关键词不同,但在语义上相关,适合演示语义检索的效果。

5.2 为笔记设计模板和属性

05-Templates/技术笔记模板.md中补充完整模板:

--- title: "{{title}}" date: {{date}} tags: [技术/默认] status: 待整理 --- # {{title}} ## 背景 - ## 关键概念 - ## 使用步骤 - ## 注意事项 -

使用模板插件,把上面两篇笔记的正文和属性补全。这个动作很重要,因为插件对含 frontmatter 的结构化笔记处理效果通常更好。

5.3 建立语义索引

安装 Smart Connections 插件后,打开 Obsidian 命令面板(快捷键通常是Ctrl+PCmd+P),输入smart,找到索引命令。在不同版本中,命令名可能显示为:

  • Smart Connections: Index vault
  • Smart Connections: Re-index vault

运行后,插件会扫描全部笔记并建立向量索引。首次索引大仓库时可能耗时较长,建议先从小仓库测试。

5.4 通过 AI 对话查询笔记

再安装 Copilot for Obsidian,完成 API 配置后,在 Copilot 面板中选择与 Vault 相关的模式,然后输入问题,例如:

我笔记里提到的 RAG 核心流程是什么?

如果配置正确,你会看到回答中引用了RAG 基础概念.md中的内容。这里的关键不是让 AI 凭空回答,而是让 AI 优先基于你的笔记内容回答。

如果你的模型没有返回笔记相关内容,常见原因是索引未完成、笔记中没有足够关键信息、或者插件没有选择 Vault QA 模式。可以重新建立索引后再次提问。

5.5 批量处理旧笔记的脚本思路

如果你已经有大量旧笔记,希望批量生成摘要或补充标签,可以写一个简单的 Python 脚本。以下是一个思路示例,需要你按实际环境调整:

import os from pathlib import Path # 这里使用 OpenAI 兼容客户端,具体库名以你使用的 SDK 为准 # from openai import OpenAI VAULT_PATH = "你的 Vault 文件夹路径" TARGET_DIR = os.path.join(VAULT_PATH, "03-Resources") def list_markdown_files(directory: str): return list(Path(directory).rglob("*.md")) def main(): files = list_markdown_files(TARGET_DIR) print(f"共发现 {len(files)} 篇 Markdown 笔记") for file in files: # 在这里接入模型 API,读取正文并生成摘要 # 将摘要写入 frontmatter 的 summary 字段 print(f"待处理:{file.name}") if __name__ == "__main__": main()

这个脚本只是框架,不直接提供可运行的完整调用逻辑。实际接入时,你需要关注:

  • 保存文件时保持原 Markdown 格式;
  • 避免重复处理已经生成了 summary 字段的笔记;
  • 调用 API 时控制并发和频率,防止限流;
  • 先备份整个 Vault 再批量操作。

6. 常见问题与排查思路

下面是 Obsidian + AI 知识库使用过程中最常见的几类问题及排查思路。

问题现象常见原因解决思路
社区插件市场打不开或加载慢网络环境不稳定,无法访问在线市场使用手动安装插件包的方式,或稍后重试
插件安装后没有生效未启用插件,或插件与 Obsidian 版本不兼容打开第三方插件列表,确认已启用;查看插件仓库的兼容性说明
Smart Connections 索引后找不到相似笔记索引未完成,或笔记内容太短重新运行索引命令;增加笔记正文内容,确保有足够语义信息
Copilot 问答报错 401API Key 错误或已失效检查 API Key 是否填写正确,是否在服务端有权调用所选模型
Copilot 问答报错 429请求频率过高或余额不足降低请求频率,检查账户额度,避免死循环批量请求
中文检索效果不理想嵌入模型对中文支持有限,或者问题与笔记表述差异太大换用对中文支持更好的嵌入模型;在笔记中补充关键词;调整问题表述
笔记本同步后索引丢失Vault 目录变化或索引文件被清理在同步工具中排除.obsidian下的索引缓存,或同步完成后重新建立索引
本地模型回答很慢本地显存/内存不足,模型过大换更小的量化模型,或关闭其他占用内存的程序

实际排查时,建议按“从上到下”的顺序:先看插件是否启用,再看网络和密钥是否正常,最后检查索引状态。不要一上来就重装插件,很多问题只是配置路径不对。

7. 最佳实践与工程建议

7.1 目录与命名规范

命名规范直接影响检索和双链体验。建议:

  • 笔记名使用“主题 + 类型”的结构,例如Python 列表与字典-学习笔记
  • 文件夹不要超过三层,避免路径过长;
  • 临时想法先放入00-Inbox,定期整理到正式目录;
  • MOC 使用统一后缀,比如MOC.mdIndex.md,方便被插件识别;
  • 日期统一使用YYYY-MM-DD格式,便于排序。

7.2 API Key 与隐私安全

在 AI 知识库中,隐私是重要问题。几点建议:

  • API Key 不要写入 Vault,也不要在笔记中保存明文;
  • 涉及个人敏感信息的笔记,不建议使用云端 API;
  • 使用本地模型处理隐私信息,降低数据外泄风险;
  • 使用企业或团队知识库时,需要确认数据合规要求,重要数据脱敏后再接入 AI;
  • 定期检查插件是否有更新,及时修复潜在安全问题。

7.3 备份与版本管理

Obsidian 的本地 Markdown 文件很适合纳入 Git 版本管理:

cd my-vault git init git add . git commit -m "init obsidian vault"

但需要注意,.obsidian/目录下可能包含本地缓存和插件配置,推荐在.gitignore中排除部分内容,只保留必要的配置和笔记文件:

.obsidian/workspace.json .obsidian/cache .obsidian/plugins/*/data.json

其中data.json可能包含插件密钥,不应纳入版本库。如果你不想折腾 Git,也可以使用 Obsidian 官方的 Sync 服务,或者手动定期备份整个 Vault。

7.4 性能优化

笔记多了以后,索引和搜索性能会下降。可以通过以下方式优化:

  • 大附件统一放入06-Attachments,并在插件设置中排除该目录;
  • 旧项目归档到04-Archive,分离活跃和冷数据;
  • 拆分 Vault:知识库、工作库、日记库分开,避免互相干扰;
  • 重建索引时尽量避开使用高峰期;
  • 及时更新插件版本,性能优化通常会在新版本中体现。

7.5 与 AI 编程工具结合

如果你已经在使用 Cursor、Codex 或 Spring AI 等编程工具,可以考虑让它们复用 Obsidian 知识库。思路是:将 Vault 中的 Markdown 文档作为外部知识源,让编程助手在生成代码或设计方案时先读取相关笔记。对于更复杂的工作流,可以使用 Dify、RagFlow 等平台搭建完整知识库流水线,但这类方案更适合团队和企业场景。从个人轻量级起步,Obsidian 足够;等需要多人协作、权限管理、复杂工作流时,再迁移到企业级平台也不迟。

8. 从入门到自己的知识库工作流

如果你问我,刚入门时最应该做什么,我会建议按这个顺序来:

  1. 先花 5 分钟建好 Vault 目录,不追求完美,先用起来;
  2. 建立两篇核心笔记,写好 frontmatter,练习双链;
  3. 安装 Smart Connections,跑通语义索引;
  4. 安装 Copilot for Obsidian,配置 API,试一次基于笔记的问答;
  5. 逐步把旧笔记批量迁移进来,先处理高频使用的资料;
  6. 每次记录笔记时,花 30 秒补上 tag 和 summary;
  7. 等积累到一定量后,再优化模板、MOC 结构和自动化脚本。

把最小闭环跑通,比一开始就设计精密复杂的体系重要得多。不要一上来就追求企业级知识库架构,也不要屯一堆插件却从不使用。真正的知识库是“用”出来的,不是“装”出来的。

如果这篇文章对你有帮助,建议先收藏备用,然后打开电脑上尚未整理的笔记文件夹,从第一个 Vault 开始动手试试。等你跑通第一次问答,就会真正理解为什么说 Obsidian + AI 是当前个人知识库方案里性价比最高的一条路径。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 1:19:32

Spring Boot 3.x与Vue 3.x全栈实战:从零构建美食分享网站

最近在辅导学生做毕业设计时,发现很多同学对如何从零开始构建一个完整的JavaWeb项目感到迷茫,尤其是在整合前后端分离架构时,常常在环境配置、接口联调、数据库设计等环节卡住。本文将以一个“美食分享网站”为例,手把手带你完成一…

作者头像 李华
网站建设 2026/9/2 1:16:11

LangChain Agent实战:用Harness工程构建TextToSQL

当业务需要把自然语言问题直接转化为数据库查询结果时,TextToSQL 是性价比很高的一条技术路线。但真正落地时你会发现,单纯让大模型生成 SQL 远远不够:模型要理解表结构、要调用工具去执行查询、还要根据执行报错自我修正,整个过程…

作者头像 李华
网站建设 2026/9/2 0:11:00

32位MCU电动自行车应用参考方案

随着新国标落地,电动自行车向着轻量化、高安全、智能化方向迭代升级,市场对车辆控制系统的稳定性、精度及安全性要求持续提升。依托成熟的电机控制技术,中微半导推出基于32位MCU的电动自行车专用控制器解决方案,适配主流两轮电动车…

作者头像 李华
网站建设 2026/9/2 0:01:03

ROS2阿克曼底盘仿真:从运动学原理到Nav2导航集成实践

如果你正在学习ROS2机器人开发,特别是想实现车辆的自主导航,那么搭建一个逼真的仿真环境可能是你遇到的最大障碍之一。很多教程会教你如何让一个简单的差速轮机器人在Gazebo里移动,但当你真正想测试一个像小米SU7这样的阿克曼转向车辆时&…

作者头像 李华
网站建设 2026/9/2 0:00:56

基于MATLAB强化学习的QUBE-Servo 2旋转倒立摆控制

简介:面向Quanser QUBE-Servo 2硬件平台与MATLAB使用者的旋转倒立摆强化学习方案包,聚焦DDPG与SAC两类算法,解决真实实验台上的平衡控制建模、训练和部署问题,可广泛应用于控制类课程设计、研究生科研和机器人竞赛准备等场景。压缩…

作者头像 李华
网站建设 2026/9/1 23:55:09

原生 JS 手写日期选择器|完整可复用日历组件实战

日常网页开发里,日期选择是高频基础交互场景。本文从零手写纯 HTMLCSSJS 日历组件,实现弹窗唤起、月份切换、日期选中、快捷回到今日、点击外部关闭等全套功能,代码结构规范、无框架依赖,可直接复用改造。 一、功能亮点 点击输入框…

作者头像 李华