BaoxiaoOCR 是一款用于识别发票内容以及提取发票信息的小工具
本项目使用 PaddlePaddleOCR 以及 LLM 对发票图片的内容进行识别并提取出关键信息。
本项目基于 pywebview 构建。前端使用React19 + vite构建页面,并通过 WSGI 进行访问。后端使用 Javascript–Python bridge 进行通信(这相当于直接用 JS/TS 调用 python 函数,而不是通过 http 协议访问后端 api server)。
由于 pywebview 默认使用edgechromium作为引擎,在 windows 平台你可能需要安装Microsoft Edge WebView2作为其依赖。
PaddleOCR.yaml文件为 PaddleX 管道配置,详情参见PaddleX 文档。
config.yaml文件为大模型配置,默认的配置是调用本地 ollama。你可以在 ollama 使用以下指令快速安装运行。
ollama pull qwen2.5:0.5b
ollama pull zyw0605688/gte-large-zh:latest
ollama pull qwen2.5vl:7b
# 允许任意源
set OLLAMA_ORIGINS=*
# 启动ollama服务器
ollama serve若本地不便部署大模型,也可以选用第三方的 api 服务。
本项目使用uv作为 Python 的包管理器,你可以使用如下命令快速配置 Python 依赖。
# 如果你还没有uv,可以通过pip安装他
pip install uv
# 创建虚拟环境并安装依赖
uv sync
# 开始运行
uv run python main.pycd front-end
pnpm install && pnpm buildpip install uv
uv sync
uv run pyinstall main.spec
cp -r front-end/* dist/main/front-end或者你也可以参考附带的build.bat脚本。