PP-StructureV3根据输入文档的语言类型切换产线方案选择;ai提高代码开发的初步了解;Copilot的初步应用;
1.PP-StructureV3根据输入文档的语言类型切换产线方案选择;
👉由于paddle-不同的rec模型,对不同语言的识别精度不一样;
👉导致现在想将输入的文档进行分类,区分全英文文档和其他文档;
gpt给出的方案是:
👉方案一:尝试读取 PDF 文本层
只要 PDF 不是扫描件,这一步就是 100% 正确的;
但是给的识别材料中很多是扫描件,但材料论文基本都有文本层,也算是基本能判断,也不会损失太多的性能,是一种思路;
👉方案二:用 Paddle 的 multi-language / latin-only rec,仅用于语言判断
不追求精度;只抽 1 页 / 2 页;只统计字符种类
但是这种方法会损失性能,拖慢文档解析速度,得不偿失;
👉方案三:用 Paddle 的 multi-language / latin-only rec,仅用于语言判断
我通过观察发现,一般给的英文材料中文件名90%都是英文,或者文件名含有”英文“两个字;
学术上不严谨,但工程上极其好用的信号,做一个强先验(prior),现在比较注重文档解析的性能,所以采用这第三种方案;
👉本来我是想将这个文件名判断文件语言类型作为一个if进行判断,切换产线,但chatgpt给了一个新的思路:
建议将“文件名判断文件语言类型”这条规则“制度化”;
不要让它只是一个 if,而是一个显式规则:
LanguageHint(
source="filename",
value="english",
confidence=0.7
)
👉这样有助于debug、统计误判、调阈值、回溯决策;
2.ai提高代码开发的初步了解;
目前我比较熟练运用vscode进行开发,所以询问了chatgpt的类似vscode变体 / 编辑器
| 工具 | 强项 | 适合人群 |
|---|---|---|
| GitHub Copilot | 稳定、集成好、性价比高 | 主流开发者 / 团队 |
| Cursor | AI 驱动、对话式 & 代码库理解 | 需要深入 AI 交互的开发者 |
| Tabnine / Codeium | 轻量、跨平台 | 想要补全 + 低成本用户 |
| Claude Code / Agent 系统 | 自主 AI 代码代理 | 未来式编程体验探索 |
(国内有一个TRAE,与Cursor高度类似,订阅更加便宜)
👉目前先全面了解Copilot,因为习惯了 VS Code 的原版生态。
3.Copilot的初步应用;
👉首次使用纠正系统框架问题
👉Copilot自动把 ollama.py 改为异步并更新调用点(在 service/* 和 router/*)并运行静态语法检查;
FastAPI / async 路由
Service 层是 async def,但底层在用ollama.py(ollama模型调用)中requests.post()(同步)(asyncio 里是硬阻塞,LLM慢一点,整个服务就卡)
Ollama客户端requests.post()改为异步并更新调用点:
resp = requests.post("http://localhost:8001/api/chat",json=payload,timeout=100,)
resp.raise_for_status()
except requests.RequestException:
👇👇👇👇👇👇👇👇
async with httpx.AsyncClient(timeout=100.0) as client:
resp = await client.post("http://localhost:8001/api/chat", json=payload)
resp.raise_for_status()
except (httpx.RequestError, httpx.HTTPStatusError):
Copilot的这此架构升级解决了 :
👉Web 层阻塞问题
👉没有解决模型吞吐问题(整个服务可以并行同时调用ollama模型,sam3模型,但是单个模型的推理依旧是串行的)
浙公网安备 33010602011771号