在RTX4060上运行并调试pdf-craft
扫描版的PDF文档在进行阅读标记时存在局限,若不幸扫描PDF是一本没有目录的书籍,那阅读体验就更加糟糕了,就算使用acrobat手动创建书签,那也将会是一项复杂而繁琐的工作。
PDF补丁丁可以一键创建目录书签,不过针对的是非扫描版PDF。
幸好,随着文档数字化和 AI 技术的发展,将扫描PDF 文档精准地转化为结构化EPUB/Markdown成为可能。 pdf-craft 就提供了这种能力。
阅读全文 ...扫描版的PDF文档在进行阅读标记时存在局限,若不幸扫描PDF是一本没有目录的书籍,那阅读体验就更加糟糕了,就算使用acrobat手动创建书签,那也将会是一项复杂而繁琐的工作。
PDF补丁丁可以一键创建目录书签,不过针对的是非扫描版PDF。
幸好,随着文档数字化和 AI 技术的发展,将扫描PDF 文档精准地转化为结构化EPUB/Markdown成为可能。 pdf-craft 就提供了这种能力。
阅读全文 ...最近使用WPF写Irvue的PC端平替,接触到了C#的一些语言特性,发现还挺有意思的。
例如这样的写法:
1if (serializer.Deserialize(stream) is WindowPosition position)
2{
3 //...
4}
代码的可读性非常好,非常接近自然语言了已经是。简单查了一下,这个语法叫做模式匹配,在C# 7.0中引入的。
阅读全文 ...在处理大模型的返回结果过程中,有些时候大模型返回的文本过长,甚至超过Telegram消息的长度限制。
这个时候,就需要对消息进行拆分。
但是,不能简单地根据分片长度或者换行符(\n)暴力拆分,因为这样可能会破坏Markdown的格式,特别是当返回中有代码片段(code fence)
时。因为代码中存在换行符,故会被拆成2部分,导致代码片段的闭合符```影响后续的文本格式。
其实,用 AI聊天机器人有一段时间了,使用过程中会遇到不同的问题。简单列举一二,作此文契。
pythonanywhere,直接运行的脚本基本上隔天就会挂掉。原因未知,可能是由于免费账户资源上限?需要频繁手动重启。基于上面的2个问题,决定改造一下项目。
阅读全文 ...在微服务应用中,负载均衡来保证应用的可用性的常用手段。Spring-Cloud-LoadBalancer提供了服务之间实现负载均衡调用的能力。
除了使用
Open-Feign外,还可以使用RestTemplate和WebClint进行服务调用。
WebClient是
Spring WebFlux项目下的HTTP工具,基于Reactor的非阻塞流式API,是RestTemplate的有效替代。
不知道从哪一个版本开始,MacOS下的Firefox的应用程序图标变的,真的,不能说很丑,只能说很违和,我都不好意思让这个图标留在dock栏。经典火狐图标扁平化的还是不错,但是用一个接近黑色的深蓝色底色,就真的很难评价。
话说也很久没有使用Firefox了。
于是想了想,看看能否换回白底或者经典的火狐图标。
阅读全文 ...除了在application.yml或application.properties中配置Spring-Boot应用程序的参数外,还可以通过运行java -jar命令行的方式来配置参数。
比如java -jar -Dspring.profiles.active=dev app.jar就是常使用的命令之一。
当然,
java -jar命令不止配置Spring参数,还可以配置JVM参数。本文只以Spring-Boot应用程序为例。
有时候,可能会看见这样的应用启动方式:java -jar --spring.profiles.active=dev app.jar,它也是可行的。这两个分别是什么呢?
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。 它允许您定义组成应用程序的服务、它们连接到的网络以及它们运行所需的环境变量。
使用 Docker Compose,可以在容器中通过多种方式设置环境变量。可以使用 Compose 文件或 CLI。
请注意,每种方法都受 环境变量优先级 的约束。
阅读全文 ...HATEOAS 是 REST(Representational state transfer) 的约束之一。
HATEOAS 是 Hypermedia As The Engine Of Application State 的缩写,从字面上理解是 “超媒体即是应用状态引擎” 。其原则就是客户端与服务器的交互完全由超媒体动态提供,客户端无需事先了解如何与数据或者服务器交互。相反的,在一些RPC服务或者Redis,Mysql等软件,需要事先了解接口定义或者特定的交互语法。
阅读全文 ...记录了在macOS 12 Monterry下安装并配置多版本JDK的方法。
意外的发现brew对Monterey的支持越发的少了...