mimo2codex 0.1.18 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/translate/reqToChat.js +4 -1
- package/dist/translate/reqToChat.js.map +1 -1
- package/doc/mimoskill.md +15 -8
- package/doc/mimoskill.zh.md +15 -8
- package/mimoskill/SKILL.md +4 -3
- package/mimoskill/references/ocr_workflow.md +61 -16
- package/mimoskill/scripts/ocr.py +234 -13
- package/package.json +1 -1
|
@@ -104,8 +104,11 @@ function partsToChatContent(parts, ctx) {
|
|
|
104
104
|
text: `[${droppedCount} image attachment${plural} omitted because the active model can't ingest images.\n` +
|
|
105
105
|
`The proxy materialized them to disk so you can OCR / describe without asking the user for a path:\n` +
|
|
106
106
|
refList +
|
|
107
|
-
`\nTo extract text or describe, run
|
|
107
|
+
`\nTo extract text or describe, run:\n` +
|
|
108
108
|
` python3 mimoskill/scripts/ocr.py <path-from-above>\n` +
|
|
109
|
+
`Engine auto-select (zero-key): mimo (if MIMO_API_KEY set) > tesseract (if installed, --mode text) > pollinations.\n` +
|
|
110
|
+
`If pollinations is unreachable (e.g. mainland China), install tesseract once for offline OCR:\n` +
|
|
111
|
+
` brew install tesseract tesseract-lang / apt install tesseract-ocr tesseract-ocr-chi-sim\n` +
|
|
109
112
|
`Or switch the chat model to mimo-v2.5 / mimo-v2-omni to see images directly.]`,
|
|
110
113
|
});
|
|
111
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqToChat.js","sourceRoot":"","sources":["../../src/translate/reqToChat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAkBjC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,sEAAsE;AACtE,mFAAmF;AACnF,6DAA6D;AAC7D,0CAA0C;AAC1C,mFAAmF;AACnF,SAAS,wBAAwB,CAAC,QAAgB,EAAE,OAAgB;IAClE,IAAI,CAAC;QACH,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtE,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,CAAC,GAAG,mCAAmC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,QAAQ;YACpB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAChC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;QACvD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,IAAI,CAAC,yCAA0C,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,uHAAuH;AACvH,0EAA0E;AAC1E,oEAAoE;AACpE,6EAA6E;AAC7E,8BAA8B;AAC9B,SAAS,mBAAmB,CAAC,KAAa;IACxC,qDAAqD;IACrD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAsC,EACtC,GAAsE;IAEtE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACxD,qEAAqE;YACrE,mEAAmE;YACnE,iEAAiE;YACjE,wCAAwC;YACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAChC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,wBAAwB,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;gBACpE,IAAI,GAAG;oBAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACnC,iEAAiE;YACjE,8CAA8C;YAC9C,GAAG,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QAClF,CAAC;QACD,wEAAwE;QACxE,kEAAkE;IACpE,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CACN,WAAW,YAAY,2BAA2B,GAAG,CAAC,KAAK,2FAA2F,WAAW,CAAC,MAAM,UAAU,CACnL,CAAC;QACF,uEAAuE;QACvE,sEAAsE;QACtE,sEAAsE;QACtE,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1D,CAAC,CAAC,oDAAoD,CAAC;QACzD,MAAM,MAAM,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EACF,IAAI,YAAY,oBAAoB,MAAM,0DAA0D;gBACpG,qGAAqG;gBACrG,OAAO;gBACP,0GAA0G;gBAC1G,wDAAwD;gBACxD,+EAA+E;SAClF,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,wEAAwE;IACxE,wEAAwE;IACxE,mEAAmE;IACnE,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACnD,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,qFAAqF;IACrF,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;QAC1D,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,4EAA4E;AAC5E,+EAA+E;AAC/E,gEAAgE;AAChE,8EAA8E;AAC9E,8CAA8C;AAC9C,SAAS,kBAAkB,CAAC,MAAiD;IAC3E,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACpC,aAAa,EAAE,CAAC;QAClB,CAAC;QACD,qDAAqD;IACvD,CAAC;IACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,IAAI,CACN,WAAW,aAAa,sFAAsF,CAC/G,CAAC;QACF,MAAM,CAAC,IAAI,CACT,IAAI,aAAa,oBAAoB,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,qFAAqF,CACvJ,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,iBAAiB,CACxB,IAA0B,EAC1B,GAAsE;IAEtE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9D,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACtD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,wEAAwE;AACxE,oEAAoE;AACpE,MAAM,cAAc,GAAa;IAC/B,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO;QACb,WAAW,EACT,qFAAqF;QACvF,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,yGAAyG;iBAC5G;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oDAAoD;iBAClE;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;SACtB;QACD,MAAM,EAAE,IAAI;KACb;CACF,CAAC;AAEF,yEAAyE;AACzE,2EAA2E;AAC3E,8DAA8D;AAC9D,oEAAoE;AACpE,wEAAwE;AACxE,uEAAuE;AACvE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,kBAAkB;IAClB,aAAa;IACb,kBAAkB;IAClB,sBAAsB;IACtB,cAAc;CACf,CAAC,CAAC;AAEH,0EAA0E;AAC1E,+DAA+D;AAC/D,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;AACtC,SAAS,QAAQ,CAAC,QAAgB,EAAE,GAAW;IAC7C,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO;IACtC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAqBD,4EAA4E;AAC5E,qDAAqD;AACrD,SAAS,UAAU,CAAC,CAAgB,EAAE,IAAmB;IACvD,mDAAmD;IACnD,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,CAA6H,CAAC;QACzI,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI;aAC1B;SACF,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,+EAA+E;IAC/E,yBAAyB;IACzB,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,kFAAkF;IAClF,0EAA0E;IAC1E,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,sEAAsE;IACtE,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,GAAG,CAKT,CAAC;QACF,MAAM,IAAI,GAAsB,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACvD,IAAI,CAAC,CAAC,aAAa;YAAE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;QAC1D,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;YAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QACxE,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;QAC5E,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,2CAA2C;IAC3C,0FAA0F;IAC1F,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,CAAwE,CAAC;QACpF,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;QACnC,MAAM,IAAI,GACR,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC;YACtB,CAAC,UAAU;gBACT,CAAC,CAAC,mBAAmB,UAAU,0DAA0D;gBACzF,CAAC,CAAC,EAAE,CAAC,CAAC;QACV,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,SAAS;gBACrC,kEAAkE;gBAClE,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,0BAA0B;yBACxC;qBACF;oBACD,oBAAoB,EAAE,IAAI;iBAC3B;gBACD,MAAM,EAAE,IAAI;aACb;SACF,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,6BAA6B;IAC7B,6DAA6D;IAC7D,8EAA8E;IAC9E,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,CAA+C,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,GAAG,CAAC,KAAK,CACP,6BAA6B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAClF,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBACnC,IAAI,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,2EAA2E;IAC3E,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,GAAG,CAAC,KAAK,CACP,8BAA8B,CAAC,CAAC,IAAI,wDAAwD,CAC7F,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6EAA6E;IAC7E,QAAQ,CACN,CAAC,CAAC,IAAI,EACN,mCAAmC,CAAC,CAAC,IAAI,uDAAuD,CACjG,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAmC;IAC3D,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,OAAO,EAAE,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAS,cAAc,CAAC,QAAuB,EAAE,KAAoB;IACnE,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,KAAK,IAAI,CAAC;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAoB,KAAK,IAAI,CAAC;IACpD,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;QAAE,OAAO;IAEnD,MAAM,GAAG,GAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrG,IAAI,QAAQ;QAAE,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACtD,IAAI,YAAY;QAAE,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACjE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnB,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC5B,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACpC,CAAC;AAED,SAAS,oBAAoB,CAC3B,KAA2B,EAC3B,GAAsE;IAEtE,MAAM,GAAG,GAAkB,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAkB;QAC3B,gBAAgB,EAAE,IAAI;QACtB,gBAAgB,EAAE,EAAE;QACpB,oBAAoB,EAAE,IAAI;KAC3B,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,oEAAoE;QACpE,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,0EAA0E;QAC1E,IAAI,IAAI,GAAuB,OAAO,CAAC;QACvC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,IAAuD,CAAC;YACvE,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,IAAI,GACR,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;oBAChC,CAAC,CAAC,MAAM,CAAC,OAAO;oBAChB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;wBAC7B,CAAC,CAAC,MAAM,CAAC,OAAO;6BACX,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE;4BAClB,IAAI,OAAO,CAAC,KAAK,QAAQ;gCAAE,OAAO,CAAC,CAAC;4BACpC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC;gCAC3C,OAAO,MAAM,CAAE,CAAuB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;4BACrD,OAAO,EAAE,CAAC;wBACZ,CAAC,CAAC;6BACD,IAAI,CAAC,EAAE,CAAC;wBACb,CAAC,CAAC,EAAE,CAAC;gBACX,IAAI,GAAG;oBACL,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,MAAM,CAAC,IAAqD;oBAClE,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE;qBAC3E;iBACoB,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC9B,iEAAiE;oBACjE,qEAAqE;oBACrE,kEAAkE;oBAClE,sEAAsE;oBACtE,+CAA+C;oBAC/C,oEAAoE;oBACpE,EAAE;oBACF,mEAAmE;oBACnE,gDAAgD;oBAChD,IAAI,KAAK,CAAC,oBAAoB,KAAK,IAAI,EAAE,CAAC;wBACxC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC7B,CAAC;oBACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBACtD,KAAK,CAAC,oBAAoB;wBACxB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC3B,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;qBACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;qBACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBAClB,IAAI,CAAC,EAAE,CAAC,CAAC;gBACZ,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC9B,MAAM;YACR,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC;oBAC1B,EAAE,EAAE,IAAI,CAAC,OAAO;oBAChB,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;iBACzD,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,MAAM;oBACZ,YAAY,EAAE,IAAI,CAAC,OAAO;oBAC1B,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;iBACzC,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAqB,EAAE,OAAsB,EAAE;IACvE,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG;QACV,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,cAAc,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9C,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC;IAEF,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAgB;QACxB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ;QACR,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,KAAK;KAC5B,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,CAAC,cAAc,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBACnC,IAAI,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IAC7C,CAAC;IACD,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,EAAE,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAE5C,4EAA4E;IAC5E,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;SAAM,IAAI,GAAG,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,mBAAmB,CAAC;IACrD,CAAC;IACD,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACrC,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,IAAI,GAAG,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC1E,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACrD,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,oCAAoC;IACpC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"reqToChat.js","sourceRoot":"","sources":["../../src/translate/reqToChat.ts"],"names":[],"mappings":"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"}
|
package/doc/mimoskill.md
CHANGED
|
@@ -78,24 +78,31 @@ For the mimo engine, the script handles MiMo's quirks transparently: `max_comple
|
|
|
78
78
|
|
|
79
79
|
### `scripts/ocr.py` — OCR / image recognition
|
|
80
80
|
|
|
81
|
-
OCR fallback for when the chat model can't see images. **
|
|
81
|
+
OCR fallback for when the chat model can't see images. **Three engines** (`--engine auto` picks):
|
|
82
82
|
|
|
83
|
-
| Engine | Needs key |
|
|
84
|
-
|
|
85
|
-
| `mimo` | `MIMO_API_KEY` |
|
|
86
|
-
| `
|
|
83
|
+
| Engine | Needs key | Needs network | Modes | Notes |
|
|
84
|
+
|---|---|---|---|---|
|
|
85
|
+
| `mimo` | `MIMO_API_KEY` | yes | all | Calls `mimo-v2.5` (the vision model) regardless of the chat model in use. Best quality. |
|
|
86
|
+
| `tesseract` | **NO** | **NO** | text only | Fully local OCR. Recommended when pollinations is unreachable (e.g. mainland China). One-time install. |
|
|
87
|
+
| `pollinations` | **NO** | yes | all | Free public endpoint at `text.pollinations.ai`. No signup, but may be slow / blocked in some regions. |
|
|
87
88
|
|
|
88
|
-
Auto resolution: `mimo` if `MIMO_API_KEY`
|
|
89
|
+
Auto resolution order: `mimo` (if `MIMO_API_KEY`) → `tesseract` (if installed **and** `--mode text`) → `pollinations`. So users with **only a DeepSeek key** (or no key at all) still get OCR with zero setup; users behind GFW who install tesseract once never need to touch the network.
|
|
89
90
|
|
|
90
91
|
```bash
|
|
91
|
-
# Zero-setup —
|
|
92
|
+
# Zero-setup — auto picks the best available engine
|
|
92
93
|
python3 mimoskill/scripts/ocr.py path/to/image.png
|
|
93
94
|
|
|
95
|
+
# Offline / behind GFW — install tesseract once, then it works without network
|
|
96
|
+
# macOS: brew install tesseract tesseract-lang
|
|
97
|
+
# Ubuntu: sudo apt install tesseract-ocr tesseract-ocr-chi-sim
|
|
98
|
+
# Windows: https://github.com/UB-Mannheim/tesseract/wiki
|
|
99
|
+
python3 mimoskill/scripts/ocr.py --engine tesseract --lang Chinese scan.png
|
|
100
|
+
|
|
94
101
|
# Best quality — set MiMo key
|
|
95
102
|
export MIMO_API_KEY=sk-xxxx
|
|
96
103
|
python3 mimoskill/scripts/ocr.py path/to/image.png # auto -> mimo
|
|
97
104
|
|
|
98
|
-
# Force
|
|
105
|
+
# Force pollinations even when you have a MiMo key (save quota)
|
|
99
106
|
python3 mimoskill/scripts/ocr.py --engine pollinations form.png
|
|
100
107
|
|
|
101
108
|
# Force MiMo — errors out if MIMO_API_KEY is not set (no silent fallback)
|
package/doc/mimoskill.zh.md
CHANGED
|
@@ -78,24 +78,31 @@ mimo 引擎自动踩好 MiMo 的坑:`max_completion_tokens`(不是 `max_toke
|
|
|
78
78
|
|
|
79
79
|
### `scripts/ocr.py` —— OCR / 识图
|
|
80
80
|
|
|
81
|
-
非视觉 chat
|
|
81
|
+
非视觉 chat 模型场景下的兜底。**三个引擎**(`--engine auto` 自动选):
|
|
82
82
|
|
|
83
|
-
| 引擎 | 需要 key |
|
|
84
|
-
|
|
85
|
-
| `mimo` | 需要 `MIMO_API_KEY` |
|
|
86
|
-
| `
|
|
83
|
+
| 引擎 | 需要 key | 需要网络 | 支持 mode | 备注 |
|
|
84
|
+
|---|---|---|---|---|
|
|
85
|
+
| `mimo` | 需要 `MIMO_API_KEY` | 需要 | 全部 | 内部调 `mimo-v2.5`(视觉模型),与外层 chat 模型无关。质量最好 |
|
|
86
|
+
| `tesseract` | **不需要** | **不需要** | 仅 text | 纯本地 OCR。**国内 / GFW 环境推荐**——pollinations 不通时就靠它兜底。装一次永久可用 |
|
|
87
|
+
| `pollinations` | **不需要** | 需要 | 全部 | 免费公共端点 `text.pollinations.ai`,无需注册。但国内访问可能慢 / 不通 |
|
|
87
88
|
|
|
88
|
-
auto
|
|
89
|
+
auto 选择顺序:`mimo`(有 key)→ `tesseract`(已装 + `--mode text`)→ `pollinations`。所以**只配了 DeepSeek key**(或啥都没配)的用户也能零配置用 OCR;国内用户装一次 tesseract 之后 OCR 就完全离线了。
|
|
89
90
|
|
|
90
91
|
```bash
|
|
91
|
-
# 零配置 ——
|
|
92
|
+
# 零配置 —— auto 自动挑可用的引擎
|
|
92
93
|
python3 mimoskill/scripts/ocr.py path/to/image.png
|
|
93
94
|
|
|
95
|
+
# 国内 / 离线 —— 装一次 tesseract,永久离线可用
|
|
96
|
+
# macOS: brew install tesseract tesseract-lang
|
|
97
|
+
# Ubuntu: sudo apt install tesseract-ocr tesseract-ocr-chi-sim
|
|
98
|
+
# Windows: https://github.com/UB-Mannheim/tesseract/wiki
|
|
99
|
+
python3 mimoskill/scripts/ocr.py --engine tesseract --lang Chinese scan.png
|
|
100
|
+
|
|
94
101
|
# 最佳质量 —— 设 MiMo key
|
|
95
102
|
export MIMO_API_KEY=sk-xxxx
|
|
96
103
|
python3 mimoskill/scripts/ocr.py path/to/image.png # auto -> mimo
|
|
97
104
|
|
|
98
|
-
#
|
|
105
|
+
# 强制走 pollinations(即便你有 MiMo key,比如想省额度)
|
|
99
106
|
python3 mimoskill/scripts/ocr.py --engine pollinations form.png
|
|
100
107
|
|
|
101
108
|
# 强制 MiMo —— 没设 key 直接报错(不静默降级)
|
package/mimoskill/SKILL.md
CHANGED
|
@@ -82,10 +82,11 @@ For non-trivial integrations, [references/models.md](references/models.md) and [
|
|
|
82
82
|
|
|
83
83
|
## OCR / image recognition (when the chat model can't see images)
|
|
84
84
|
|
|
85
|
-
If the user wants to **read text from an image** or **describe / 识别 an image** but the current chat model is non-vision (`mimo-v2.5-pro`, `mimo-v2.5-pro[1m]`, `mimo-v2-flash`, `deepseek-*`, or any third-party text-only model), invoke `scripts/ocr.py`.
|
|
85
|
+
If the user wants to **read text from an image** or **describe / 识别 an image** but the current chat model is non-vision (`mimo-v2.5-pro`, `mimo-v2.5-pro[1m]`, `mimo-v2-flash`, `deepseek-*`, or any third-party text-only model), invoke `scripts/ocr.py`. Three engines, `--engine auto` (default) picks in this order — mimo if `MIMO_API_KEY` set, else tesseract if installed and mode=text, else pollinations:
|
|
86
86
|
|
|
87
|
-
- **`mimo`** — needs `MIMO_API_KEY`, uses `mimo-v2.5` regardless of the chat model. Best quality.
|
|
88
|
-
- **`
|
|
87
|
+
- **`mimo`** — needs `MIMO_API_KEY`, uses `mimo-v2.5` regardless of the chat model. Best quality. All modes.
|
|
88
|
+
- **`tesseract`** — **no key, no network**. Fully local OCR. Auto-used if installed and `--mode text`. Recommended for users behind GFW or offline. One-time install: `brew install tesseract tesseract-lang` / `sudo apt install tesseract-ocr tesseract-ocr-chi-sim` / Windows installer at github.com/UB-Mannheim/tesseract/wiki.
|
|
89
|
+
- **`pollinations`** — free public vision endpoint at `text.pollinations.ai`, **no key required**. All modes. But may be unreachable from mainland China — if you see "connection failed (pollinations)", suggest tesseract as the offline alternative.
|
|
89
90
|
|
|
90
91
|
The proxy silently drops image attachments on non-vision models (`src/translate/reqToChat.ts:48-72`) and leaves a `[N image attachment(s) omitted: …]` placeholder. **When you see that placeholder in the transcript, the right move is to run ocr.py and feed the text back into the conversation.** Don't ask the user to switch models.
|
|
91
92
|
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
# OCR / image recognition workflow
|
|
2
2
|
|
|
3
3
|
`mimoskill/scripts/ocr.py` is the fallback path for reading or describing
|
|
4
|
-
images when the surrounding chat model can't see them.
|
|
4
|
+
images when the surrounding chat model can't see them. Three engines:
|
|
5
5
|
|
|
6
|
-
| Engine | Needs API key
|
|
7
|
-
|
|
8
|
-
| `mimo` | yes (`MIMO_API_KEY`) | best | Calls `mimo-v2.5` regardless of the chat model used elsewhere. |
|
|
9
|
-
| `
|
|
6
|
+
| Engine | Needs API key | Needs network | Quality | Notes |
|
|
7
|
+
|---|---|---|---|---|
|
|
8
|
+
| `mimo` | yes (`MIMO_API_KEY`) | yes | best | Calls `mimo-v2.5` regardless of the chat model used elsewhere. All modes supported. |
|
|
9
|
+
| `tesseract` | **no** | **no** | decent for clean print | Fully local. `--mode text` only. Recommended when network access to pollinations is unreliable (e.g. mainland China). Requires one-time install. |
|
|
10
|
+
| `pollinations` | **no** | yes | decent | Free public endpoint at `text.pollinations.ai`. All modes supported, but may be slow / unreachable behind some firewalls. |
|
|
10
11
|
|
|
11
|
-
`--engine auto` (default) picks
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
`--engine auto` (default) picks in this order:
|
|
13
|
+
1. `mimo` if `MIMO_API_KEY` is set
|
|
14
|
+
2. `tesseract` if installed on PATH **and** `--mode text`
|
|
15
|
+
3. `pollinations` otherwise
|
|
16
|
+
|
|
17
|
+
So users with only a DeepSeek key, or no key at all, still get OCR — and
|
|
18
|
+
users behind GFW who have tesseract installed never need to touch the
|
|
19
|
+
network.
|
|
14
20
|
|
|
15
21
|
## TL;DR
|
|
16
22
|
|
|
@@ -167,28 +173,67 @@ silently (one stderr line) rather than failing.
|
|
|
167
173
|
|
|
168
174
|
## When `MIMO_API_KEY` isn't set
|
|
169
175
|
|
|
170
|
-
`--engine auto` (the default)
|
|
176
|
+
`--engine auto` (the default) chooses tesseract if it's installed and the
|
|
177
|
+
mode is `text`, otherwise pollinations:
|
|
171
178
|
|
|
172
179
|
```
|
|
173
|
-
|
|
180
|
+
# With tesseract installed
|
|
181
|
+
[engine] auto -> tesseract (local, no network). Set MIMO_API_KEY for higher quality (mimo-v2.5).
|
|
182
|
+
[ocr] engine=tesseract mode=text lang=eng+chi_sim images=1
|
|
183
|
+
<extracted text>
|
|
184
|
+
|
|
185
|
+
# Without tesseract
|
|
186
|
+
[engine] auto -> pollinations (free, no key).
|
|
187
|
+
Set MIMO_API_KEY for higher quality (mimo-v2.5), or install tesseract for offline OCR.
|
|
174
188
|
[ocr] engine=pollinations mode=text model=openai images=1
|
|
175
189
|
<extracted text>
|
|
176
190
|
```
|
|
177
191
|
|
|
178
192
|
Exit code `3` is only raised when the user explicitly passes `--engine mimo`
|
|
179
|
-
without a key
|
|
180
|
-
be used; auto-falling-back
|
|
193
|
+
without a key, or `--engine tesseract` without it installed (passing a flag
|
|
194
|
+
is treated as an assertion that engine should be used; auto-falling-back
|
|
195
|
+
would mask the misconfiguration).
|
|
196
|
+
|
|
197
|
+
## Tesseract specifics (offline / GFW-friendly path)
|
|
181
198
|
|
|
182
|
-
|
|
183
|
-
tesseract and shell to it directly — this skill won't auto-invoke it:
|
|
199
|
+
Install once, never touch the network again:
|
|
184
200
|
|
|
185
201
|
```bash
|
|
186
202
|
macOS: brew install tesseract tesseract-lang
|
|
187
203
|
Ubuntu: sudo apt install tesseract-ocr tesseract-ocr-chi-sim
|
|
188
204
|
Windows: https://github.com/UB-Mannheim/tesseract/wiki
|
|
189
|
-
tesseract <image> - -l eng+chi_sim
|
|
190
205
|
```
|
|
191
206
|
|
|
207
|
+
The script auto-detects tesseract on `PATH` via `shutil.which("tesseract")`.
|
|
208
|
+
Once installed, `python3 ocr.py <image>` (with `MIMO_API_KEY` unset) routes
|
|
209
|
+
through tesseract automatically.
|
|
210
|
+
|
|
211
|
+
**Language hints** — `--lang` is mapped to tesseract's `-l` codes:
|
|
212
|
+
|
|
213
|
+
| `--lang` | tesseract `-l` |
|
|
214
|
+
|---|---|
|
|
215
|
+
| `Chinese` (default for Chinese) | `chi_sim+chi_tra` |
|
|
216
|
+
| `zh` / `zh-hans` / `zh-cn` | `chi_sim` |
|
|
217
|
+
| `zh-hant` / `zh-tw` | `chi_tra` |
|
|
218
|
+
| `en` / `English` | `eng` |
|
|
219
|
+
| `ja` / `Japanese` / `日本語` | `jpn` |
|
|
220
|
+
| `ko` / `Korean` / `한국어` | `kor` |
|
|
221
|
+
| `fr` / `de` / `es` / `ru` | `fra` / `deu` / `spa` / `rus` |
|
|
222
|
+
| anything else | `eng+chi_sim` (sensible default for mixed CJK content) |
|
|
223
|
+
| raw tesseract code (e.g. `fra+ita`) | passed through |
|
|
224
|
+
|
|
225
|
+
If you need a language not pre-mapped, install the corresponding traineddata
|
|
226
|
+
on your system (e.g. `tesseract-ocr-deu` on Ubuntu, `brew install tesseract-lang`
|
|
227
|
+
on macOS) and pass `--lang` as the raw code.
|
|
228
|
+
|
|
229
|
+
**Limitations**: tesseract is an OCR engine, not an LLM — it only extracts
|
|
230
|
+
literal text. `--mode describe` / `structured` / `markdown` need a vision
|
|
231
|
+
LLM (mimo or pollinations) and will error if you force tesseract.
|
|
232
|
+
|
|
233
|
+
**Input forms**: all the usual ones work — local path, `http(s):` URL,
|
|
234
|
+
`data:` URL, stdin. URLs are downloaded to a temp file before tesseract
|
|
235
|
+
runs; data URLs are decoded; the temp file is cleaned up after.
|
|
236
|
+
|
|
192
237
|
## Pollinations specifics
|
|
193
238
|
|
|
194
239
|
- Endpoint: `https://text.pollinations.ai/openai` (OpenAI Chat Completions
|
|
@@ -220,7 +265,7 @@ tesseract <image> - -l eng+chi_sim
|
|
|
220
265
|
| 0 | Success |
|
|
221
266
|
| 1 | Upstream HTTP error (MiMo or Pollinations; error body printed to stderr) |
|
|
222
267
|
| 2 | argv / usage error (no image, mutually exclusive flags, etc.) |
|
|
223
|
-
| 3 | `--engine mimo`
|
|
268
|
+
| 3 | `--engine mimo` requested without `MIMO_API_KEY`, or `--engine tesseract` requested but not installed |
|
|
224
269
|
| 4 | Local image file not found / unreadable |
|
|
225
270
|
|
|
226
271
|
## Composing with `mimo_chat.py`
|
package/mimoskill/scripts/ocr.py
CHANGED
|
@@ -6,15 +6,23 @@ Use this when the surrounding chat model can't see images (mimo-v2.5-pro,
|
|
|
6
6
|
mimo-v2.5-pro[1m], mimo-v2-flash, deepseek-*, or any text-only model).
|
|
7
7
|
|
|
8
8
|
Engines (--engine):
|
|
9
|
-
auto (default) — mimo if MIMO_API_KEY set, else
|
|
9
|
+
auto (default) — mimo if MIMO_API_KEY set, else tesseract if
|
|
10
|
+
installed and --mode=text, else pollinations
|
|
10
11
|
mimo — Xiaomi MiMo V2.5 vision. Highest quality. Needs MIMO_API_KEY
|
|
11
|
-
|
|
12
|
+
tesseract — Local Tesseract OCR. NO KEY, NO NETWORK. Good for users
|
|
13
|
+
behind firewalls (e.g. mainland China where pollinations.ai
|
|
14
|
+
can be unreachable). Supports --mode text only.
|
|
15
|
+
pollinations — pollinations.ai free public vision endpoint. No key but
|
|
16
|
+
needs network reachable from the user (may be slow/unreliable
|
|
17
|
+
in some regions).
|
|
12
18
|
|
|
13
19
|
Modes (--mode):
|
|
14
20
|
text (default) verbatim OCR — raw text, preserves line breaks
|
|
15
|
-
describe 2-4 sentence description of the image
|
|
21
|
+
describe 2-4 sentence description of the image (mimo / pollinations only)
|
|
16
22
|
structured single JSON object with text / language / regions / summary
|
|
23
|
+
(mimo / pollinations only)
|
|
17
24
|
markdown re-render the image as GitHub-flavored Markdown
|
|
25
|
+
(mimo / pollinations only)
|
|
18
26
|
|
|
19
27
|
Image inputs (positional, 0+):
|
|
20
28
|
/path/to/file.png local file → base64 data URL
|
|
@@ -24,14 +32,19 @@ Image inputs (positional, 0+):
|
|
|
24
32
|
(none, stdin not a TTY) same as `-`
|
|
25
33
|
|
|
26
34
|
Usage:
|
|
27
|
-
# Zero-setup
|
|
35
|
+
# Zero-setup
|
|
28
36
|
python3 ocr.py path/to/image.png
|
|
29
37
|
python3 ocr.py --mode describe https://example.com/x.png
|
|
30
38
|
|
|
39
|
+
# Behind GFW / offline — install tesseract once, never need network again
|
|
40
|
+
# macOS: brew install tesseract tesseract-lang
|
|
41
|
+
# Ubuntu: sudo apt install tesseract-ocr tesseract-ocr-chi-sim
|
|
42
|
+
# Windows: https://github.com/UB-Mannheim/tesseract/wiki
|
|
43
|
+
python3 ocr.py --engine tesseract --lang Chinese scan.png
|
|
44
|
+
|
|
31
45
|
# Best quality (needs MiMo key)
|
|
32
46
|
export MIMO_API_KEY=sk-xxxx
|
|
33
47
|
python3 ocr.py --mode structured a.png b.jpg
|
|
34
|
-
cat scan.png | python3 ocr.py --mode markdown
|
|
35
48
|
|
|
36
49
|
Only depends on the standard library — no `openai` SDK install needed.
|
|
37
50
|
"""
|
|
@@ -42,7 +55,10 @@ import base64
|
|
|
42
55
|
import json
|
|
43
56
|
import mimetypes
|
|
44
57
|
import os
|
|
58
|
+
import shutil
|
|
59
|
+
import subprocess
|
|
45
60
|
import sys
|
|
61
|
+
import tempfile
|
|
46
62
|
import urllib.error
|
|
47
63
|
import urllib.request
|
|
48
64
|
from pathlib import Path
|
|
@@ -198,6 +214,139 @@ def build_messages(
|
|
|
198
214
|
return messages
|
|
199
215
|
|
|
200
216
|
|
|
217
|
+
# --- Tesseract (local, offline) ---------------------------------------------
|
|
218
|
+
|
|
219
|
+
# Lightweight mapping from human/--lang hints to tesseract trained-data codes.
|
|
220
|
+
# Tesseract supports compound languages via "+": "eng+chi_sim+chi_tra".
|
|
221
|
+
_TESSERACT_LANG_MAP: dict[str, str] = {
|
|
222
|
+
"chinese": "chi_sim+chi_tra",
|
|
223
|
+
"zh": "chi_sim",
|
|
224
|
+
"zh-hans": "chi_sim",
|
|
225
|
+
"zh-cn": "chi_sim",
|
|
226
|
+
"zh-hant": "chi_tra",
|
|
227
|
+
"zh-tw": "chi_tra",
|
|
228
|
+
"english": "eng",
|
|
229
|
+
"en": "eng",
|
|
230
|
+
"japanese": "jpn",
|
|
231
|
+
"ja": "jpn",
|
|
232
|
+
"日本語": "jpn",
|
|
233
|
+
"korean": "kor",
|
|
234
|
+
"ko": "kor",
|
|
235
|
+
"한국어": "kor",
|
|
236
|
+
"french": "fra",
|
|
237
|
+
"fr": "fra",
|
|
238
|
+
"german": "deu",
|
|
239
|
+
"de": "deu",
|
|
240
|
+
"spanish": "spa",
|
|
241
|
+
"es": "spa",
|
|
242
|
+
"russian": "rus",
|
|
243
|
+
"ru": "rus",
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def tesseract_available() -> bool:
|
|
248
|
+
return shutil.which("tesseract") is not None
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
def map_lang_to_tesseract(lang: str | None) -> str:
|
|
252
|
+
"""Resolve --lang hint to a tesseract -l string. Default: eng+chi_sim."""
|
|
253
|
+
if not lang:
|
|
254
|
+
return "eng+chi_sim"
|
|
255
|
+
key = lang.strip().lower()
|
|
256
|
+
if key in _TESSERACT_LANG_MAP:
|
|
257
|
+
return _TESSERACT_LANG_MAP[key]
|
|
258
|
+
# If the user passed a raw tesseract code (e.g. "fra+ita") we trust it.
|
|
259
|
+
if all(part.isalnum() or part == "_" for part in key.replace("+", "_")):
|
|
260
|
+
return lang
|
|
261
|
+
return "eng+chi_sim"
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
def resolve_to_local_file(image_arg: str) -> tuple[Path, bool]:
|
|
265
|
+
"""Resolve a positional IMAGE arg to a path tesseract can read.
|
|
266
|
+
Returns (path, is_temp). Caller should delete the file if is_temp."""
|
|
267
|
+
if image_arg == "-":
|
|
268
|
+
if sys.stdin.isatty():
|
|
269
|
+
sys.stderr.write("error: `-` requested but stdin is a TTY\n")
|
|
270
|
+
sys.exit(2)
|
|
271
|
+
data = sys.stdin.buffer.read()
|
|
272
|
+
return _write_temp_image(data, hint_name=None)
|
|
273
|
+
if image_arg.startswith(("http://", "https://")):
|
|
274
|
+
try:
|
|
275
|
+
with urllib.request.urlopen(image_arg, timeout=60) as resp:
|
|
276
|
+
data = resp.read()
|
|
277
|
+
except (urllib.error.URLError, urllib.error.HTTPError) as e:
|
|
278
|
+
sys.stderr.write(f"error: failed to fetch {image_arg}: {e}\n")
|
|
279
|
+
sys.exit(1)
|
|
280
|
+
return _write_temp_image(data, hint_name=image_arg.rsplit("/", 1)[-1])
|
|
281
|
+
if image_arg.startswith("data:"):
|
|
282
|
+
# data:image/png;base64,XXXX
|
|
283
|
+
try:
|
|
284
|
+
header, b64 = image_arg.split(",", 1)
|
|
285
|
+
data = base64.b64decode(b64)
|
|
286
|
+
except (ValueError, base64.binascii.Error) as e:
|
|
287
|
+
sys.stderr.write(f"error: malformed data URL: {e}\n")
|
|
288
|
+
sys.exit(2)
|
|
289
|
+
return _write_temp_image(data, hint_name=None)
|
|
290
|
+
path = Path(image_arg)
|
|
291
|
+
if not path.exists():
|
|
292
|
+
sys.stderr.write(f"error: image not found: {image_arg}\n")
|
|
293
|
+
sys.exit(4)
|
|
294
|
+
return path, False
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
def _write_temp_image(data: bytes, hint_name: str | None) -> tuple[Path, bool]:
|
|
298
|
+
mime = sniff_mime(data, hint_name)
|
|
299
|
+
ext = mime.split("/")[1].split("+")[0] if "/" in mime else "png"
|
|
300
|
+
fd, name = tempfile.mkstemp(suffix=f".{ext}", prefix="mimoskill-ocr-")
|
|
301
|
+
try:
|
|
302
|
+
with os.fdopen(fd, "wb") as f:
|
|
303
|
+
f.write(data)
|
|
304
|
+
except OSError as e:
|
|
305
|
+
sys.stderr.write(f"error: cannot write temp image: {e}\n")
|
|
306
|
+
sys.exit(1)
|
|
307
|
+
return Path(name), True
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
def run_tesseract(
|
|
311
|
+
*, image_args: list[str], lang_arg: str, extra_prompt: str | None
|
|
312
|
+
) -> str:
|
|
313
|
+
"""Run tesseract over one or more images, return concatenated text."""
|
|
314
|
+
if extra_prompt:
|
|
315
|
+
sys.stderr.write(
|
|
316
|
+
"note: --prompt is ignored on tesseract engine (no LLM in the loop).\n"
|
|
317
|
+
)
|
|
318
|
+
chunks: list[str] = []
|
|
319
|
+
for arg in image_args:
|
|
320
|
+
path, is_temp = resolve_to_local_file(arg)
|
|
321
|
+
try:
|
|
322
|
+
r = subprocess.run(
|
|
323
|
+
["tesseract", str(path), "-", "-l", lang_arg],
|
|
324
|
+
capture_output=True,
|
|
325
|
+
text=True,
|
|
326
|
+
encoding="utf-8",
|
|
327
|
+
errors="replace",
|
|
328
|
+
)
|
|
329
|
+
except FileNotFoundError:
|
|
330
|
+
sys.stderr.write(
|
|
331
|
+
"error: tesseract not found on PATH. Install:\n"
|
|
332
|
+
" macOS: brew install tesseract tesseract-lang\n"
|
|
333
|
+
" Ubuntu: sudo apt install tesseract-ocr tesseract-ocr-chi-sim\n"
|
|
334
|
+
" Windows: https://github.com/UB-Mannheim/tesseract/wiki\n"
|
|
335
|
+
)
|
|
336
|
+
sys.exit(1)
|
|
337
|
+
finally:
|
|
338
|
+
if is_temp:
|
|
339
|
+
try:
|
|
340
|
+
path.unlink()
|
|
341
|
+
except OSError:
|
|
342
|
+
pass
|
|
343
|
+
if r.returncode != 0:
|
|
344
|
+
sys.stderr.write(f"tesseract failed for {arg}: {r.stderr.strip()}\n")
|
|
345
|
+
sys.exit(1)
|
|
346
|
+
chunks.append(r.stdout.rstrip())
|
|
347
|
+
return "\n\n".join(c for c in chunks if c)
|
|
348
|
+
|
|
349
|
+
|
|
201
350
|
# --- HTTP -------------------------------------------------------------------
|
|
202
351
|
|
|
203
352
|
POLLINATIONS_URL = "https://text.pollinations.ai/openai"
|
|
@@ -226,6 +375,20 @@ def post(url: str, body: dict[str, Any], api_key: str | None, stream: bool, *, e
|
|
|
226
375
|
sys.exit(1)
|
|
227
376
|
except urllib.error.URLError as e:
|
|
228
377
|
sys.stderr.write(f"connection failed ({engine}): {e}\n")
|
|
378
|
+
if engine == "pollinations":
|
|
379
|
+
# pollinations.ai is often slow / unreachable from mainland China.
|
|
380
|
+
# Point at the offline & domestic-friendly alternatives.
|
|
381
|
+
sys.stderr.write(
|
|
382
|
+
" pollinations.ai can be unreachable from mainland China.\n"
|
|
383
|
+
" Alternatives:\n"
|
|
384
|
+
" 1. Install tesseract for offline OCR (text mode only):\n"
|
|
385
|
+
" macOS: brew install tesseract tesseract-lang\n"
|
|
386
|
+
" Ubuntu: sudo apt install tesseract-ocr tesseract-ocr-chi-sim\n"
|
|
387
|
+
" Windows: https://github.com/UB-Mannheim/tesseract/wiki\n"
|
|
388
|
+
" then re-run: python3 ocr.py --engine tesseract --lang Chinese <image>\n"
|
|
389
|
+
" 2. Use MiMo: export MIMO_API_KEY=sk-xxxx ; python3 ocr.py <image>\n"
|
|
390
|
+
" 3. Use a network proxy (set HTTPS_PROXY env var) and retry.\n"
|
|
391
|
+
)
|
|
229
392
|
sys.exit(1)
|
|
230
393
|
|
|
231
394
|
|
|
@@ -303,10 +466,12 @@ def main() -> None:
|
|
|
303
466
|
p.add_argument("--temperature", type=float, default=0.2)
|
|
304
467
|
p.add_argument(
|
|
305
468
|
"--engine",
|
|
306
|
-
choices=["auto", "mimo", "pollinations"],
|
|
469
|
+
choices=["auto", "mimo", "tesseract", "pollinations"],
|
|
307
470
|
default=os.environ.get("MIMO_OCR_ENGINE", "auto"),
|
|
308
|
-
help="OCR backend. auto = mimo if MIMO_API_KEY
|
|
309
|
-
"
|
|
471
|
+
help="OCR backend. auto = mimo (if MIMO_API_KEY) > tesseract (if "
|
|
472
|
+
"installed and --mode=text) > pollinations. tesseract is fully local "
|
|
473
|
+
"(no key, no network) — recommended when pollinations is unreachable "
|
|
474
|
+
"(e.g. behind GFW). default: %(default)s",
|
|
310
475
|
)
|
|
311
476
|
p.add_argument(
|
|
312
477
|
"--base-url",
|
|
@@ -337,19 +502,51 @@ def main() -> None:
|
|
|
337
502
|
sys.stderr.write(
|
|
338
503
|
"error: --engine mimo requires MIMO_API_KEY.\n"
|
|
339
504
|
" set one at https://platform.xiaomimimo.com/#/console/api-keys\n"
|
|
340
|
-
" OR drop the flag to
|
|
341
|
-
|
|
505
|
+
" OR drop the flag to use auto fallback (tesseract / pollinations).\n"
|
|
506
|
+
)
|
|
507
|
+
sys.exit(3)
|
|
508
|
+
elif args.engine == "tesseract":
|
|
509
|
+
engine = "tesseract"
|
|
510
|
+
if not tesseract_available():
|
|
511
|
+
sys.stderr.write(
|
|
512
|
+
"error: --engine tesseract requested but tesseract is not on PATH.\n"
|
|
513
|
+
" macOS: brew install tesseract tesseract-lang\n"
|
|
514
|
+
" Ubuntu: sudo apt install tesseract-ocr tesseract-ocr-chi-sim\n"
|
|
515
|
+
" Windows: https://github.com/UB-Mannheim/tesseract/wiki\n"
|
|
342
516
|
)
|
|
343
517
|
sys.exit(3)
|
|
518
|
+
if args.mode != "text":
|
|
519
|
+
sys.stderr.write(
|
|
520
|
+
f"error: --engine tesseract only supports --mode text "
|
|
521
|
+
f"(you passed --mode {args.mode}). tesseract is an OCR engine, "
|
|
522
|
+
f"not an LLM — `describe` / `structured` / `markdown` need a "
|
|
523
|
+
f"vision LLM (mimo or pollinations).\n"
|
|
524
|
+
)
|
|
525
|
+
sys.exit(2)
|
|
344
526
|
elif args.engine == "pollinations":
|
|
345
527
|
engine = "pollinations"
|
|
346
528
|
else: # auto
|
|
347
|
-
|
|
348
|
-
|
|
529
|
+
if api_key:
|
|
530
|
+
engine = "mimo"
|
|
531
|
+
elif args.mode == "text" and tesseract_available():
|
|
532
|
+
engine = "tesseract"
|
|
349
533
|
sys.stderr.write(
|
|
350
|
-
"[engine] auto ->
|
|
534
|
+
"[engine] auto -> tesseract (local, no network). "
|
|
351
535
|
"Set MIMO_API_KEY for higher quality (mimo-v2.5).\n"
|
|
352
536
|
)
|
|
537
|
+
else:
|
|
538
|
+
engine = "pollinations"
|
|
539
|
+
hint = ""
|
|
540
|
+
if args.mode != "text" and tesseract_available():
|
|
541
|
+
hint = (
|
|
542
|
+
" (tesseract is installed but only handles --mode text;"
|
|
543
|
+
" using pollinations for this mode)"
|
|
544
|
+
)
|
|
545
|
+
sys.stderr.write(
|
|
546
|
+
f"[engine] auto -> pollinations (free, no key){hint}.\n"
|
|
547
|
+
" Set MIMO_API_KEY for higher quality (mimo-v2.5), "
|
|
548
|
+
"or install tesseract for offline OCR.\n"
|
|
549
|
+
)
|
|
353
550
|
|
|
354
551
|
# Resolve images: explicit args, else stdin if not a TTY.
|
|
355
552
|
raw_args = args.images
|
|
@@ -362,6 +559,30 @@ def main() -> None:
|
|
|
362
559
|
)
|
|
363
560
|
sys.exit(2)
|
|
364
561
|
|
|
562
|
+
# Tesseract branch — fully local, no LLM call, no data-URL conversion.
|
|
563
|
+
if engine == "tesseract":
|
|
564
|
+
lang_arg = map_lang_to_tesseract(args.lang)
|
|
565
|
+
sys.stderr.write(
|
|
566
|
+
f"[ocr] engine=tesseract mode=text lang={lang_arg} images={len(raw_args)}\n"
|
|
567
|
+
)
|
|
568
|
+
text = run_tesseract(
|
|
569
|
+
image_args=raw_args, lang_arg=lang_arg, extra_prompt=args.prompt
|
|
570
|
+
)
|
|
571
|
+
if args.json:
|
|
572
|
+
envelope = {
|
|
573
|
+
"mode": "text",
|
|
574
|
+
"engine": "tesseract",
|
|
575
|
+
"model": f"tesseract:{lang_arg}",
|
|
576
|
+
"images": len(raw_args),
|
|
577
|
+
"content": text,
|
|
578
|
+
"reasoning_content": "",
|
|
579
|
+
"usage": {},
|
|
580
|
+
}
|
|
581
|
+
print(json.dumps(envelope, ensure_ascii=False, indent=2))
|
|
582
|
+
else:
|
|
583
|
+
print(text)
|
|
584
|
+
return
|
|
585
|
+
|
|
365
586
|
image_urls = [resolve_image_arg(a) for a in raw_args]
|
|
366
587
|
|
|
367
588
|
if engine == "mimo":
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mimo2codex",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Local proxy that lets the latest OpenAI Codex CLI / desktop talk to Xiaomi MiMo (V2.5 Pro) via the Responses API by translating to Chat Completions on the fly.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"codex",
|