公开 版本 1.0

doc2x插件改进提示词

kuma
kuma
10 次浏览
2025-11-13
描述

必须的上下文

提示词内容
@doc2x_ocr/doc2x_img_via_pdf.py 现在这个python脚本是没问题可以完全跑起来的, @/d:/GitHub_repository/pot-app-recognize-plugin-template/main.js @/d:/GitHub_repository/pot-app-recognize-plugin-template/info.json @/d:/GitHub_repository/pot-app-recognize-plugin-template/README.md 是一个pot软件的图片识别插件的示例工程,另外可以参考 @Doc2x API v2 PDF 接口文档.pdf ,现在我怎么通过这个跑起来的脚本思路来设计构建这个pot的插件呢?注意,Pot 插件接收的是 base64 图片,需要先转 PDF,而且要注意适配这里的OCR工具的单图快速识别
Doc2X有单图识别接口,但是服务器出问题了没法用,所以只能通过转pdf的办法实现,另外,Pot 插件开发不支持直接引入第三方 npm 包或外部 JavaScript 库,【Pot 插件开发不支持直接引入第三方 npm 包或外部 JavaScript 库。这是由其插件架构的沙箱设计决定的——插件运行在受限的 JavaScript 执行环境中,只能使用 Pot 官方通过 utils 参数提供的预置库和工具函数。​ 为什么不能引入第三方库?架构限制分析 1. 沙箱隔离机制 Pot 插件系统采用了严格的沙箱环境:​ 插件只是 main.js 单文件:最终打包成 .potext 格式(本质是 zip 压缩包),只包含 main.js、info.json 和图标文件​ 无 node_modules 支持:插件不支持传统的 npm 依赖管理,没有 package.json 和依赖安装流程 无法使用 import/require:插件代码不能通过标准模块系统导入外部库】【Pot 官方提供了哪些内置工具? 虽然不能引入第三方库,但 Pot 在 utils 中预置了关键功能库:​ 库/工具 功能 来源 http (Tauri HTTP) 网络请求(fetch、Body) Tauri 框架提供 CryptoJS 加密算法(SHA256、AES、MD5 等) 官方内置 Database Tauri 数据库类 Tauri 框架 readBinaryFile 读取二进制文件 Tauri 文件系统 API readTextFile 读取文本文件 Tauri 文件系统 API run 执行系统命令 Tauri Shell API cacheDir 缓存目录路径 系统路径 pluginDir 当前插件目录 插件隔离空间 osType 操作系统类型(Windows_NT/Darwin/Linux) 系统信息 关键发现: CryptoJS 已内置:你提到想用第三方库,但如果是 CryptoJS,它已经作为官方工具提供​ HTTP 能力完整:通过 Tauri 的 fetch 可实现几乎所有网络请求需求​ 实际开发中的替代方案 方案 1:使用官方提供的库 如果你需要的功能正好在内置库中(如加密、HTTP 请求),直接使用 utils 即可: javascript // 使用内置 CryptoJS 进行加密 const { CryptoJS } = utils; const hash = CryptoJS.SHA256(password).toString(); // 使用 Tauri HTTP 发送请求 const { fetch, Body } = utils.http; const response = await fetch(' https://api.example.com/translate ', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: Body.json({ text: 'hello' }) }); 方案 2:将外部库代码内联到 main.js 如果必须使用某个轻量级第三方库,可以: 手动复制源代码:将库的 JavaScript 源码直接粘贴到 main.js 开头 注意兼容性: 库不能依赖 Node.js 特有 API(如 fs、path) 不能使用浏览器专属 DOM API(如 window、document) 必须是纯 JavaScript 实现 示例(假设你想用一个简单的 Base64 编码库): javascript // 直接在 main.js 中内联第三方库代码 function base64Encode(str) { // 复制第三方库的实现... } async function translate(text, from, to, options) { const encoded = base64Encode(text); // 继续你的插件逻辑... } 方案 3:通过远程 API 调用实现功能 如果需要复杂的计算或处理(如特定算法),可以: 搭建独立 API 服务:将需要第三方库的逻辑部署为云端 API 插件通过 HTTP 调用:利用内置的 fetch 与你的 API 通信 javascript async function translate(text, from, to, options) { const { fetch, Body } = options.utils.http; // 调用你的自定义 API,该 API 内部可以使用任意 npm 库 const response = await fetch(' https://your-api.com/process ', { method: 'POST', body: Body.json({ text }) }); return response.data.result; }】上面是我查询到的信息,而且 /api/v2/parse/img/layout 这个接口没法用