YKWTII

LeyuDame's Blog

简要介绍

在过去,最好用的识别数学公式并进行代码转换的网站/软件莫过于Mathpix了:支持各种格式转换,比如pdf,png到tex,md,当然也包括docx等等,无论是pdf文档转换还是截图识别,从移动端的Snip App再到桌面客户端以及网页版、浏览器插件全生态的覆盖让使用体验无比丝滑。

但免费版的使用额度相当有限,而付费订阅又太贵(一年50美刀);此外,网页版还偶尔会出现网络连接不稳定的情形。

不过现在,号称地表最强的OCR工具Mistral出现了。这是一家法国的初创AI公司,可以理解为欧洲版的DeepSeek,它的价格也十分便宜(OCR功能大概1美刀可以转换上千页pdf)。

使用示例

文件上传

直接访问官网聊天界面(可能需要用手机号注册账号):

像其他大语言模型一样对话框内上传文件,输入“转换成markdown”即可;比如这里我上传了一篇和DeepSeek-R1的论文:

等待几秒钟,即可得到转换后的markdown代码。
进一步地,利用Typora或Obsidian等markdown编辑器,即可查看或转换成pdf、docx等格式(可能需要额外安装pandoc)。

网页版效果展示

更多效果展示请参阅官网介绍

这是原来的pdf文件:

这是转化后并在Typora中显示的效果(主题:Newsprint):
目录(带超链接)
数学公式
表格

可以看到,除了图片外的效果非常不错,但如果要把图片也提取出来并在相应位置保留,就需要用到下面的方法了。

进阶配置

除了在官网的对话界面处理文件外,也可以通过API调用进行批量处理。
感谢@nicekate 提供的Python代码,可以实现在本地调用Mistral API进行文件处理,并且在B站上还有相应的演示视频。

  1. GitHub仓库地址:
    https://github.com/nicekate/mistral-ocr
  2. B站视频:
    【实测 Mistral OCR :世界最佳文档理解模型?】 https://www.bilibili.com/video/BV1Bw92YiEEH

配置方法也非常简单,只需要申请一个自己的API key,然后再把上面的仓库clone下来,填入相应的API key即可。

申请API key

控制台左侧菜单栏点击"API Keys",然后点击右上角的“Create new key”,复制即可。

下载Python代码

先将上述仓库clone到本地:

1
git clone https://github.com/nicekate/mistral-ocr.git

再安装依赖项:

1
pip install mistralai

pdf_ocr.py 中修改 API 密钥和 PDF 文件路径即可(72~73行):

1
2
3
API_KEY = "填入你自己的api key""

PDF_PATH = "xxx.pdf"

运行文件,即可在同目录下找到转换后的文件夹ocr_results_xxx,其中包含了转换后的markdown文件和图片文件。

本地转换效果展示

批处理

有时需要同时进行多个PDF文件的转换,于是在此基础上我自己动手增加了批处理功能,可以将同一目录下的所有PDF文件进行转换。

具体修改如下:

  1. 新增 get_pdf_files_in_directory 函数,用于扫描指定文件夹并返回所有 PDF 文件的完整路径。
  2. __main__ 中,替换手动指定 PDF 文件路径的方式,改为从文件夹中自动获取 PDF 文件。
  3. 如果文件夹中没有 PDF 文件,会提示用户。
    以下是新增的代码片段:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
def process_pdfs(pdf_paths: list, api_key: str) -> None:

for pdf_path in pdf_paths:

try:

output_dir = process_pdf(pdf_path, api_key)

print(f"文件 {pdf_path} 处理完成,结果保存在: {output_dir}")

except Exception as e:

print(f"处理文件 {pdf_path} 时出错: {e}")



def get_pdf_files_in_directory(directory: str) -> list:

"""获取指定目录中的所有PDF文件路径"""

pdf_files = []

for file in os.listdir(directory):

if file.endswith(".pdf"):

pdf_files.append(os.path.join(directory, file))

return pdf_files



if __name__ == "__main__":

# 使用示例

API_KEY = "your_mistral_api_key"

DIRECTORY = "your_pdf_file" # 指定包含PDF文件的文件夹名称



# 获取文件夹中的所有PDF文件

PDF_PATHS = get_pdf_files_in_directory(DIRECTORY)

if not PDF_PATHS:

print(f"目录 {DIRECTORY} 中没有找到PDF文件。")

else:

process_pdfs(PDF_PATHS, API_KEY)

完整的文件已上传至GitHub,欢迎star:

https://github.com/YZDame/mistral-ocr

参考资料

  1. 完美翻译 PDF 的第一步-Mistral OCR 初步使用指南 https://zhuanlan.zhihu.com/p/28801320889
  2. 【实测 Mistral OCR :世界最佳文档理解模型?】 https://www.bilibili.com/video/BV1Bw92YiEEH
  3. https://github.com/nicekate/mistral-ocr
  4. https://github.com/YZDame/mistral-ocr

🎯 痛点与解决方案

遇到DeepSeek服务器繁忙?😫

本地部署硬件算力不足?🤔

蒸馏版模型效果不满意?😑

不妨试试“本地Cherry Studio客户端+DeepSeek API”的方法,因为这样:

  1. 可避免服务器繁忙
  2. 解决本地部署硬件算力不足
  3. 使用671B满血版DeepSeek- R1
  4. 高度定制与扩展
  5. 数据本地存储,隐私无忧

📊 各方案对比

方案优点缺点适用场景
DeepSeek官方网页版操作简单,开箱即用服务器繁忙,功能受限轻度用户
其他平台网页版(如腾讯元宝)功能丰富,无需本地部署数据上传,隐私风险普通用户
本地部署数据安全,性能可控硬件要求高,配置复杂专业开发者
Cherry Studio + API数据本地化,高性能,灵活定制需要简单配置深度用户 & 开发者

⚙️ 配置方法:三步搞定!

分为Cherry Studio客户端下载API获取两部分,三分钟即可上手!

其中客户端提供本地对话窗口,API提供DeepSeek服务的接入。

Cherry Studio下载

官网地址:https://cherry-ai.com/

下载客户端并安装即可。

注1: 官方使用文档:https://docs.cherry-ai.com/

注2: 此项目在Github上开源:https://github.com/CherryHQ/cherry-studio ,截至目前已获star 19k+,个人免费使用

硅基流动获取DeepSeek API

首先要明确一点,调用API都是要收费的;但费用极低,目前我日常使用了一周,大概消耗了1万tokens,花费在一毛五左右。

为什么不使用DeepSeek官方API呢?一方面是因为官方的服务器承载能力有限;另一方面,即使官方的API价格已经很便宜了,但其他大公司的价格更低,再加上速度更快,何尝不是一种更好的选择呢?

此外,最重要的是,现在硅基流动有新用户奖励活动,点击阅读原文链接注册并使用邀请码 29KuvDgU 即可获得14元账户资金,约合2000万tokens,按量计算而不设截止时间,这意味着你在很长一段时间可以免费使用该API(按照我这一周的用量计算就是2000周)。

注册链接(点击阅读原文即可跳转):https://cloud.siliconflow.cn/i/29KuvDgU

或扫描二维码打开注册界面:

注3:点击该链接跳转后邀请码会自动填充

登陆后在左侧菜单栏中找到“账户管理-API密钥”,选择“新建API密钥”,描述可以填“cherry studio”,完成后点击复制API。

客户端配置

回到Cherry Studio客户端,点击左下角设置,选择“模型服务-硅基流动”,在“API密钥”一栏粘贴刚才复制的API,在下方的“API地址”填入:https://api.siliconflow.cn

最后点击检查,随便选择一个模型,显示“连接成功”则可以开始愉快使用基本功能了!

🛠️ 其他功能补充

联网

上述硅基流动的几个模型默认是不联网的,要开启联网功能,请在设置页面找到Tavily,访问官网进行设置。

智能体

首先Cherry Studio本身就配备了多种智能体可供选择,此外也支持自定义,并为不同的个性智能体(助手)单独设置提示词和模型等等。

知识库

Cherry Studio支持定制个人知识库。首先需要在模型设置界面选择“管理”,然后在上方菜单栏找到“嵌入”,选择第一个“BAAI/bge-m3”,随后点击左侧菜单栏知识库,进行个人知识库配置。可以上传本地文件,也可以是网站或是单个网页的链接。

使用示例

比如我设置了一个“高中数学教材”的知识库,上传了高中数学人教A版的5本教材;

接着在对话界面的添加助手“高中数学教材小助手”,提示词输入:

“当我提问数学知识时,请你结合高中数学教材里的内容为我解答”,

知识库选择刚才建立的“高中数学教材”,那么在向该助手提问时,会得到如下效果:

模型温度

DeepSeek官方给出的模型温度设置

场景温度
代码生成/数学解题0.0
数据抽取/分析1.0
通用对话1.3
翻译1.3
创意类写作/诗歌创作1.5

绘图

使用了一次,画得还蛮好看的:

小程序

可在客户端内访问各大主流模型的官网:

🔗链接

  1. Cherry Studio:https://cherry-ai.com/
  2. 硅基流动:https://cloud.siliconflow.cn/i/29KuvDgU

两个生活小问题

在了解Frobenius问题之前, 我们先来看两个生活中的小问题.

首先, 为什么高铁的座位设置大多是 “2+3” 的组合?即过道一侧是两个座位组合在一起、另一侧是三个座位组合在一起呢?设想一下, 当你和家人或是朋友出行时, 不管你们人数是多少, 只要不少于两人, 总有一种座位组合方式让每一个人和认识的人坐在一起, 而不会出现落单的情况. 当出行人数是偶数时, 只需都安排两人坐即可;当出行人数是奇数时, 只需安排三个人坐三人座, 剩下的人(如果有的话)一定是偶数, 再安排两人座若干即可.

我们再看第二个问题:给定几种面值的硬币, 不能用这些硬币支付的最大金额是多少?

Read more »

余秋雨《文化苦旅》

只有走在路上,才能摆脱局限,摆脱执着,让所有的选择、探寻、猜测、想象都生机勃勃。

吴军《数学之美》

每当弗莱德和我谈起各自少年时的教育,我们都同意这样几个观点。首先,小学生和中学生其实没有必要花那么多时间读书,而他们的社会经验、生活能力以及在那时树立起的志向将帮助他们的一生。第二,中学阶段花很多时间比同伴多读的课程,上大学以后用很短时间就能读完,因为在大学阶段,人的理解力要强得多。举个例子,在中学需要花500小时才能学会的内容,在大学可能花100小时就够了。因此,一个学生在中小学阶段建立的那一点点优势在大学很快就会丧失殆尽。第三,学习(和教育)是持续一辈子的过程,很多中学成绩优异的亚裔学生进入名校后表现明显不如那些出于兴趣而读书的美国同伴,因前者持续学习的动力不足。第四,书本的内容可以早学,也可以晚学,但是错过了成长阶段却是无法补回来的。(因此,少年班的做法不足取。)现在中国的好学校里,恐怕百分之九十九的孩子在读书上花的时间都比我当时要多,更比贾里尼克要多得多,但是这些孩子今天可能有百分之九十九在学术上的建树不如我,更不如贾里尼克。这实在是教育的误区。

丘成桐《我的几何人生》

从这次和多年来同行间的摩擦,可见世事从来就不是一帆风顺的,就算拿到菲尔兹奖,人生也不会就此步步高升。地心吸力会发挥作用,拖你后腿,有时甚至拖垮你。

虽然金钱需要考虑,但正如五柳先生说的,它并不是一切,做人要看远些。我会在高研院的一年尽力工作和学习,然后再找更理想的位置。

自1987年开始,过去三十多年我都在哈佛度过。诚然,这么多年,不一定天天都快乐,但总的来说是美好的日子,或者谚语说得对,“第三次,便顺意”。

顾险峰

大多数浅层次的智力劳动很快会被AI所承担,年轻人求学期间尽量学习更为深刻的理工科方向,才能保证长期的核心竞争力。

沃尔特·艾萨克森 《埃隆·马斯克传》

先设定一个不切实际的时间表,然后“取法乎上得其中”——疯狂的想法原本不可能变成现实,结果是很多年之后最终实现了。

主要特色

  1. 纯粹的师大蓝:两种颜色分别取自官网和校徽,再设置不同透明度进行组合

  2. 极致的矢量图:可以直接使用Tikz作图,包括封面校徽logo也是Tikz作出的矢量图

  3. 数学字体选用了个人认为比较好看的Fourier(中文字体默认为微软雅黑)

  4. 与BNU图书馆官方毕业论文​模板语法一致,可以实现无缝迁移,例如

    Read more »

    Tikz校徽

    矢量图来源于Figma上的中国大学矢量校徽合集,但是由于介绍页面中注明禁止转载,所以也就不附上链接了。

    前段时间看到了这篇文章中通过Inkscape以及插件svg2tikz,分别得到了复旦和科大的校徽Tikz代码。由于之前发布的部分模板里并没有用到矢量logo,于是得到北师大校徽Tikz代码后,我顺带更新了一下之前模板里的校徽,目前更新已全部发布到GitHub,而overleaf由于发布流程繁琐一些,所以暂时不考虑更新。

    Read more »

    前几天整理了一下1月份上学科营的内容,连续多天的课程为我后续进行批量大规模的备课提供了可借鉴的经验基础。

    Read more »