Markdown格式不仅对写博客的人非常友好和方便,对AI也是如此。
目前AI大语言模型的输出基本都是Markdown格式,这就意味着AI是能充分理解Markdown格式的,这一点非常重要。
Markdown格式输出的另一个好处是可以方便的转换为HTML格式。比如AI服务器按流输出token时,我们可以直观的看到HTML的构建过程,比如标题、列表、表格,甚至复杂的数学公式,都在AI的"吐字"中生成。
既然AI输出是以Markdown格式,那么输入呢?如果Prompt以Markdown格式书写,AI也能快速理解并抓住重点。比如:#是一级标题,*是加粗等,犹如Attention机制一样,通过Markdown中的简单标记,AI能更好的理解Prompt中语义和上下文关系。
实际上目前市场上各种AI智能体(agent),就是在写Prompt,也就是编写一个能让AI快速理解的上下文。这个Prompt写的越好,AI的反馈才能越好,agent才能调用其它工具帮你高效完成工作,比如写代码。
相较于简单的聊天,这种由agent构建出的Prompt都比较复杂,使用的token量也很大。因此既要减少token使用量,也要让AI快速抓住重点,理解你的语义,那么Markdown格式几乎就是唯一的选择。
为何要将HTML转为Markdown格式?
无论目前的AI有多强大,都是基于对过去知识的学习,如果我们想了解现在的知识,就需要对AI的知识进行补充。补充方式有很多:
比如部署一个deepseek自己微调训练它的专业领域知识。
如果你觉得自己部署训练的门槛比较高,也可以选择RAG的方式打造本地知识库。
如果你觉得RAG的方式还是比较麻烦,也可以采用联网搜索的方式。
无论你采用哪种方式,都不可避免的要处理某些HTML格式的数据,毕竟我们目前获取信息的主要手段还是通过网站,也就是浏览HTML网页。
如果直接将HTML格式的数据喂给AI,显然是不合适的,一是无效token太多,二是无效信息也太多。我们需要提炼出HTML中的正文,而不是各种闪烁的广告。
总而言之:Markdown格式是目前AI最喜欢的格式。
在这个背景下写一个HTML转Markdown格式的工具就很有必要了,这就是Html2Markdown的开发背景。
言归正传,简单介绍以下Html2Markdown工具。
工具特点:
1、小巧简洁只有一个可执行文件;
2、支持SSL协议,内部集成高版本openssl库(TLS1.3);
3、支持在线格式转换,可将网页内容快速转为md格式;
4、支持命令行方式,方便用户进行第三方集成,如批量对网页进行格式转换;
5、完全自主的HTML格式解析,DOM节点提取速度快;
程序界面:
以下将陈百川博主的文章转为markdown格式(侵权删),如下:
命令行使用方法:
Html2Markdown URL LocalPathFile [-overwrite]
命名行方式一共有3个参数:
参数1:URL,需要转换网页地址(建议URL中明确http还是https,如果不写默认使用https);
参数2:LocalPathFile,转换后的本地文件路径;
参数3:可选参数,-overwrite,如果该参数存在则表示转换时覆盖已存在的LocalPathFile;
如:
Html2Markdown https://www.cnblogs.com c:/cnlogs.md
补充说明
-
说明1:
有些网站为了防止数据被爬取,采用了"动态"内容输出,也就是浏览器渲染才能看见最终的HTML内容。
比如百度和知乎。对于这类网站,你可以在浏览器中将网页内容保存为HTML格式,然后通过该工具进行转换。
-
说明2:
该程序可能会被某些安全软件误报为木马,我也不太清楚原因,可能里面有下载网页的原因吧。
-
说明3:
每个网站都有自己固定格式,我指的是打开网站某篇文章或报道,通过markdown格式可以分析这些规律,从而提取有效信息。比如第N行是标题,N+1行后是文章内容。通过markdown格式的输出,也可以分析如何让网页内容能被搜索引擎快速提取有效内容。