Harness 全栈自建 零框架 AI 工程

九个项目覆盖数据处理、知识检索、Agent 编排、内容审核、本地视觉识别、离线内容生成与 AIGC 创作。没有封装套路:协议层、工具层、编排层、安全与权限控制全部自建——AI 只做语义判断,执行归代码。

共同特征 Prompt Engineering 全部项目统一收敛交互契约 Atomic Tool 全部项目最小工具面 Business / Third-Party API 上游外部依赖统一收敛、密钥与配置分离 Permission & Security Control 执行侧统一权限与安全边界

项目

AI-decision-maker

缓存命中 0 tokens

AI 驱动的数据分析框架,AI 决策 + 程序执行

AI 识别字段类型(每字段 1 字符)
Code 执行清洗操作

两条链路一条原则:AI 只做语义识别,输出 1 字符信号码后全部由代码执行。 缓存命中时零 token。适合数据结构已知但字段命名不统一的 CSV 清洗场景。

数据处理 Structured Output Parser Python pandas R CLI

AI-RAG-embed

查询增强是核心差异化

本地 RAG 检索增强系统,专注"怎么切"和"怎么问"

AI 改写查询用于检索
Code 分块、索引、融合、排序

专注 RAG 的两个失效边界:怎么切和怎么问。智能分块让每个片段承载完整语义, 查询增强让检索问对问题。混合检索 + 可插拔模型槽,BM25-only 模式零模型加载。

RAG 检索 RAG Long / Short Memory MCP Python Sentence-Transformer ChromaDB Flask CLI Web

AI-schema-mapper

节省 78% Token

医疗数据智能清洗,AI 生成规则一次,代码执行 N 次

AI 从去重唯一值生成映射规则
Code 大规模应用规则

数据清洗的复杂度是 O(唯一值) 不是 O(行数)。AI 只看模式,生成映射规则后 全部本地执行。两轮 AI + 跨字段推理 + 四优先级防静默丢失。150 行和 150 万行, AI 消耗不变。

数据处理 Structured Output Parser Python pandas CLI

AI-tool-calling

同一套代码双协议

极简 Tool Calling + MCP 双模式框架

AI 决定调用哪个工具
Code 执行工具返回结果

同一套 registerTool() 同时服务 MCP 和 Function Calling 两种协议。 Zod schema → JSON Schema 桥接,一套定义两套消费。沙箱执行 + 危险命令 黑名单,30s 超时保护。9 个工具覆盖代码执行和系统检测。

Agent 基础设施 MCP Function Calling Tool Calling Single Agent Sandbox Timeout & Retry TypeScript Zod JSON Schema CLI

AI-collaborate

LLM 自主决定阶段数

多 Agent 编排框架,自动规划、并行分发、桥接上下文

AI 规划分解为阶段
Code 并行分发、桥接、综合

LLM 规划器自主决定分几个阶段、每阶段几个 Agent,不设硬编码上限。阶段内并行, 阶段间桥接。全部 prompt 用"同事"称谓,防止元推理污染。Web 界面基于 Python stdlib + SSE,零第三方依赖。

Agent 基础设施 Task Planner Structured Output Parser Multi-Agent Python SSE CLI Web

AI-tier-guardian

路由零 Token

三庭二审 AI 内容审核引擎

AI 判断语义意图/违规(4 次 LLM 调用)
Code 路由、仲裁、缓存(纯 Python,零 Token)

三庭二审漏斗架构:90% 正常内容在浅层直接放行,仅边缘 case 走完整审核链路。 两层路由(pre_filter / deep_judge)是 6 行纯 Python,零 token。Node C 可 处理反讽、黑话等中文网络表达。

内容安全 Chain-of-Thought (CoT) Structured Output Parser Python pytest diskcache CLI

tablesnap

秒级出表 / 4B 本地模型

截图 → XLSX,本地 4B VLM 秒级识别,视觉转表格的极简闭环

AI 直接识别截图中的表格结构并输出 CSV
Code 截图、框选、坐标、导出 XLSX、错误处理

全局热键截屏 → 框选区域 → 本地 4B VLM 直接输出表格 → 自动导出 XLSX。 VLM 直出设计哲学,无 OCR 流水线中间环节。纯 stdlib 客户端,小模型低 负担,零云端零成本。

视觉识别 Local-First Lightweight Model Python Ollama (qwen3-vl) tkinter openpyxl CLI Desktop

AI-batch-raw-to-offline-guide

素材 → 攻略,零代码

素材丢给 AI,自动炼成规范数据 → 单文件离线攻略,不用写代码

AI 把非结构化素材炼制成符合 Schema 的结构化 JSON
Code Schema 校验引用完整性、生成双向索引、渲染离线页面

素材 → AI 炼制结构化数据 → Schema 校验引用完整性 → 单文件离线 HTML。 不用写代码,换主题只换素材。数据与模板解耦,规范数据驱动一切。 北京环球影城真实落地,350KB 微信可发。

离线内容生成 Schema-Driven Design Data Normalization Structured Output Parser Python JSON Schema Jinja2 Vanilla JS Web

Imagora

工作流搬家 100% 可恢复

AI 生图工作台:无限画布编排 + 结果回流迭代,面向网店商品图批量出图

AI 生成图片 + 按契约批量生成提示词
Code 资产注册表、画布工作流、任务管线、并发窗口、布局算法、LOD 渲染

把 AI 生图从单次调用升级为可迁移、可迭代、可编排的工作流。 资产注册表 + 结果回流 + 双模式统一后端 + 提示词批量导入。

AIGC 创作 Schema-Driven Design Workflow Canvas Asset Registry Result Rebinding Dual-Mode Unified Backend Prompt Contract Python FastAPI React TypeScript React Flow Web CLI Desktop

AI-decision-maker

AI 驱动的数据分析框架,AI 决策 + 程序执行

AI 输出是'建议',验证层决定最终值。
数据处理 Structured Output Parser Python pandas R CLI
信号码系统 + 校验层 缓存命中 0 tokens

单字符编码(G=性别 A=年龄 D=科室),同时是类型标签和操作路由键。AI 输出经三层校验后落地。非法码回退安全默认值,防止幻觉传播。

MD5 指纹 + 代码哈希双重缓存 0 tokens on hit

指纹 = \(\text{MD5}(\text{字段名排序} + \sum \text{样本MD5}[:8])\)。缓存附带 \(\text{code\_hash} = \text{SHA256}(\text{路由表} + \text{注册表})\);缓存按引擎分区,切引擎只失效对应命名空间。

可扩展 Operation 注册

新增字段类型只需创建 Operation 子类注册到 OPERATION_REGISTRY,无需改 AI prompt。支持 1:N 分列操作(CurrencySplitter 把一列金额拆为数值+币种两列)。

判断与生成是两种能力

场景识别、字段打码、有序性判断——答案集合在请求时就封闭。这类判断用概率引擎(Jev)比生成模型更干净:输出是概率分布,选项即白名单,非法值不可表示。开放生成留给 LLM。实测两条链路结论一致;Jev 成本更高(清洗 1.9×、分类 3.5×),优势在延迟、失败模式、可审计。

两层 AI + R 自动选统计方法

LLM 粗筛分类变量 → 细判有序/无序 → R 根据变量组合自动选 \(\rho\) / \(V\) / \(H\) / \(\chi^2\),输出 report.xlsx(4 Sheet)。

AI-decision-maker three-engine routingA deterministic profile and fingerprint either reuse cached signals at zero token cost or escalate a judgement through three engines: local lookup, a probability engine, and a generative model. Code gates every confidence and owns every write.THREE ESCALATING ENGINES, ONE CODE-OWNED GATECODECSV profilefields + samplesFingerprintcached?0 TOKENCached signalsscene + field codesCODESystem 0local lookup · 0 TOKENAISystem 1 · Jevprobability, not textAISystem 2 · LLMgenerated textGateCODECODEVALIDATE+ ASSEMBLEoperation registryCODELocal executequality reportOUTPUTClean datadeterministicAI PROPOSES SIGNALS / CODE OWNS EVERY WRITEHIT / 0 TOKENMISSACCEPTESCALATEJev returns probabilities, not text — invalid codes are unrepresentable. Measured: 1.9–3.5× DeepSeek's cost.

同一份数据,左边是原始输入,右边是清洗后输出。AI 只识别字段类型(每次 1 字符),所有清洗操作由代码执行。切换三个数据集看效果。

#SEX/GenderAGEDEPTMED
P001M30心内科阿莫西林
P002F三十外科甲硝唑~
P003Male)约25ICU头孢
P004男18岁骨科布洛芬?
P005F22儿科阿奇霉素
P006女三十五心内科阿司匹林
P007Male40神经内科奥拉西坦!
P008男28岁呼吸科阿莫西林
P009F33肿瘤科+紫杉醇+
P010女四十五消化内科洛索洛芬钠
→
#SEX/GenderAGEDEPTMED
P001男30心内科阿莫西林
P002女30外科甲硝唑
P003男25重症医学科头孢类
P004男18骨科布洛芬
P005女22儿科阿奇霉素
P006女35心内科阿司匹林
P007男40神经内科奥拉西坦
P008男28呼吸科阿莫西林
P009女33肿瘤科+紫杉醇
P010女45消化内科洛索洛芬钠
#AMOUNTDATE
T001¥ 1,000.502024-01-15
T002$ 200.2024/01/20
T003500!!2024-01-25
T004€ 25002024.02.01
T005¥99.92024-02-10
T006¥1,234.56!2024/02/15
T007¥50.2024-03-01
T008¥0.992024.03.10
T009¥100002024-04-01
T010¥5..52024/04/15
→
#AMOUNTDATECURRENCY
T0011000.52024-01-15CNY
T002200.02024-01-20USD
T003500.02024-01-25
T0042500.02024-02-01EUR
T00599.92024-02-10CNY
T0061234.562024-02-15CNY
T00750.02024-03-01CNY
T0080.992024-03-10CNY
T00910000.02024-04-01CNY
T0105.52024-04-15CNY
#SEXAGEE-MAILPHONE_number
U001男25test@example.com138-0013-8000
U002F30invalid.email@12345
U003Male28user+tag@mail.cn139-1234-5678
U004女22。alice@gmail15912345678
U005男=35no@atsign18600001111~
U006F40admin@ company.com.cn010-8888-6666
U007女18hello@.com177-8888-9999
U008Male60bob@test.org13500000000
U009男28test@.co.uk4008001234
U010F1714700001111
→
#SEXAGEE-MAILPHONE_number
U001男25test@example.com13800138000
U002女30--
U003男28user+tag@mail.cn13912345678
U004女22-15912345678
U005男35-18600001111
U006女40-01088886666
U007女18-17788889999
U008男60bob@test.org13500000000
U009男28test@.co.uk4008001234
U010女17-14700001111

LLM 筛选分类变量 → 判断有序/无序 → R 根据类型组合自动选统计方法(Spearman / Cramer V / Kruskal-Wallis / 卡方检验),全程 AI + 脚本 + R 协作。

FileVar 1TypeVar 2TypeMethodStatp-value
data_A.csv education 有序 satisfaction 有序 Spearman 0.655 1.732122e-03
data_B.csv gender 无序 education 有序 Kruskal 0.054 8.155457e-01
data_C.csv gender 无序 blood_type 无序 Cramer V 0.172
data_D.csv city 无序 satisfaction 有序 Kruskal 1.115 7.735291e-01
data_B.csv education 有序 gender 无序 卡方检验 1.2 9.448774e-01
data_C.csv gender 无序 blood_type 无序 卡方检验 0.533 9.115095e-01
data_D.csv satisfaction 有序 city 无序 卡方检验 1.833 9.938373e-01

AI-RAG-embed

本地 RAG 检索增强系统,专注"怎么切"和"怎么问"

RAG 失败在两个边界:怎么切,怎么问。其余都是边际收益的复合。
RAG 检索 RAG Long / Short Memory MCP Python Sentence-Transformer ChromaDB Flask CLI Web
查询增强分离设计

增强查询生成检索优化段落,仅用于向量检索;答案 LLM 始终接收原始问题。支持 LLM 生成(密集段落)和 MarianMT 翻译两种后端,遵循同样的分离原则。

智能分块 + 增量构建

不同类型文件不同分块策略(Markdown 按 heading,纯文本按段落,代码块/表格永不切割)。MD5 哈希变更检测,--build 只处理变更文件,模型或分块配置变更自动告警。

RRF 混合检索 + 可选重排序

向量(ChromaDB)+ BM25(jieba)经 \(\text{score} = \sum 1/(60+\text{rank})\) 融合。交叉编码器从 \(4k\) 候选重排序到 top-\(k\)。支持 vector-only / BM25-only / 混合三种模式。

四模型插槽懒加载

embedding / enhancer / reranker / LLM 各自独立开关。BM25-only 模式加载零本地模型,跳过 ~12s torch 导入。每个插槽只在对应功能启用时才导入依赖。

AI-RAG-embed build and query architectureSemantic chunks feed a hybrid index while enhanced and original questions follow deliberately separate paths.BUILD BOUNDARYQUERY BOUNDARYSOURCEDocuments.md / .txt / .typCODESemantic chunkerheadings keep meaningSTOREHybrid indexvector + BM25INPUTQuestionconversation-awareAIQuery enhancerretrieval wordingCODERetrieve + RRFrank fusionAICross-encoderoptional rerankAIAnswer LLMsees original questionTWO BOUNDARIES / HOW TO CHUNK + HOW TO ASKENHANCED QUERYHYBRID INDEXORIGINAL QUESTION
AI-RAG-embed_CLI
AI-RAG-embed_output-top
AI-RAG-embed_output-bottom

AI-schema-mapper

医疗数据智能清洗,AI 生成规则一次,代码执行 N 次

AI 看一次,代码执行 N 次。AI 不看完整数据,只看有多少个唯一值。
数据处理 Structured Output Parser Python pandas CLI
\(O(\text{唯一值})\) 不是 \(O(\text{行数})\) 节省 78%

150 行数据:传统逐行方案 \(\sim 30000\) tokens,本系统只传 \(\sim 100\) 个唯一值 \(\sim 1000\) tokens。100 行和 100 万行,AI 消耗不变。

双轮 AI + 跨字段推理

首轮映射规则,次轮(可选)处理边缘。跨字段推理("妇产科→女性")一次生成后永久零 Token 本地执行。模块命名 llm_ / local_ 前缀一目了然。

双哈希缓存 + 4 优先级查找

数据哈希 + Schema 哈希,任一变化自动刷新。查找链路:映射表 \(\to\) 标准值 \(\to\) 保留原值 \(\to\) 置空,防止静默丢失。

质量报告 + 费用跟踪

自动计算每字段完整率和合规率,运行结束时输出费用汇总表。

AI-schema-mapper rule authoring and local executionOnly unique values reach AI to create a reusable rule asset. The untouched full table follows a local execution path through mapping, cross-field inference, final polishing, schema validation, and quality reporting.RULE AUTHORING / SMALL DATALOCAL EXECUTION / FULL DATASOURCEDirty table1,500,000 rowsDEDUPUNIQUE VALUESabout 100 patternsAIRule generatormapping + inferenceREUSERULE ASSETauto_rules.jsonCODELocal mapperlookup over all rowsCODEInference+ final polishdeterministic rulesCODESchema checkcompleteness + typesOUTPUTClean CSVfinal dataREPORTQuality reportcomplianceAI UNDERSTANDS PATTERNS ONCE / CODE EXECUTES N ROWSDEDUPONE AI READFULL ROWS BYPASS AIREUSABLE RULESOPTIONAL REFINEToken cost follows unique values; row scale stays entirely local.
#GenderAgeDeptDrugCode
P75435岁妇科门诊甲硝唑片N80.0
P214NULL28妇产科AMXLN97.0
P125nan四十岁妇科(计划生育)头孢地尼N73.0
P859未知三十岁产科阿莫西林O24.4
P381未填二十五岁产科一病区头孢呋辛酯片O80
P350男儿内科布洛芬混悬液J45.909
P328F不详小儿呼吸科AMXJ18.9
P242未知妇产科病房阿莫西林克拉维酸钾分散片
P854???妇科门诊APAP子宫肌瘤
P204保密100+产科头孢类O80.9
→
#GenderAgeDeptDrugCode
P754 女 35.0 妇科 甲硝唑 N80.0
P214 女 28.0 妇科 阿莫西林 N97.0
P125 女 40.0 妇科 头孢地尼 N73.0
P859 女 30.0 妇科 阿莫西林 O24.4
P381 女 25.0 妇科 头孢呋辛酯 O80
P350 男 - 儿科 布洛芬 J45.909
P328 女 - 儿科 阿莫西林 J18.9
P242 女 - 妇科 阿莫西林克拉维酸钾 -
P854 女 - 妇科 对乙酰氨基酚 D25.9
P204 女 - 妇科 头孢类 O80.9
FieldCompletenessNon-nullNull
patient_id 100.0% 150 0
gender 61.3% 92 58
age 54.0% 81 69
dept_name 83.3% 125 25
drug_name 92.7% 139 11
diagnosis_code 91.3% 137 13
Overall80.4%

AI-tool-calling

极简 Tool Calling + MCP 双模式框架

框架提供工具,客户端提供智能。
Agent 基础设施 MCP Function Calling Tool Calling Single Agent Sandbox Timeout & Retry TypeScript Zod JSON Schema CLI
双协议单代码库

同一 registerTool() + toJsonSchema() 桥接,一套 Zod 定义同时服务 MCP JSON-RPC 和 OpenAI Tool Calling API。注册表与 barrel import 分离,避免循环依赖。

流式 Tool Call 累积器

Map 按索引重组分块到达的 tool 名称/参数/ID。消息压缩裁剪冗余文本保留 tool_call 元数据,降低多轮 token 浪费。

沙箱执行 + 危险命令防护

Python / R / PowerShell 代码执行,30s 超时 + 5000 字符截断。Shell 工具内置危险命令黑名单(Remove-Item -Recurse -Force、shutdown 等)。

自注册 + 150+ 运行时检测

模块导入时 registerTool() 自注册。两阶段检测:首轮环境变量检查(零进程),次轮 PATH 批量 Promise.allSettled。

AI-tool-calling dual-protocol architectureMCP and direct Function Calling adapters share one tool registry before handlers enter guarded execution paths.PROTOCOL ADAPTERSSHARED RUNTIMEGUARDED EXECUTIONCLIENTMCP hostJSON-RPCPROTOMCP adapterserver toolsCLIENTAgent APItool_callsPROTOFC adapterJSON schemaCOREONE REGISTRYZod definition onceTOOLSTool handlers9 atomic toolsGUARDPolicy + timeoutblocklist / 30sOUTPUTResultstringTWO PROTOCOLS / ONE TOOL DEFINITIONCODE TOOLSREAD ONLYTWO PROTOCOLS change transport, not tool ownership.
AI-tool-calling_list-in-claude-code

AI-collaborate

多 Agent 编排框架,自动规划、并行分发、桥接上下文

所有 prompt 使用人的称谓——同事,不是 AI Agent。Agent 收到任务时不知道发送者是另一个模型。
Agent 基础设施 Task Planner Structured Output Parser Multi-Agent Python SSE CLI Web
无约束自主规划

LLM 规划器自主决定阶段数和每阶段 Agent 数,不设硬编码上限。计划输出经 JSON Schema 校验,3 次重试含错误回传。

桥接 + 人性化框架

阶段间用轻量 LLM 提炼摘要(非暴力拼接)。prompt 全程用"同事"称谓,Agent 不知发送者是另一个模型,防止元推理污染。

并行分发 + 错误隔离

同阶段 Agent 在线程池并发执行。单 Agent 失败标记 error,不影响同级和下游。仅当阶段内全部失败时终止管线。

stdlib-only Web + 持久化

零第三方依赖 HTTP 服务器 + SSE 实时流式。state.json 单一真相源,页面刷新恢复,支持历史浏览和后续追问。

AI-collaborate adaptive multi-agent orchestrationA validated dynamic plan drives sequential stages with parallel colleagues. Focused bridge summaries, failure isolation, durable state, synthesis, and follow-up interaction form the complete orchestration loop.CONTROL PLANEEXECUTION PLANESTAGE 1 / PARALLELSTAGE N / PARALLELSYNTHESIS / STATE / INTERACTIONINPUTUser goalhuman intentLLMPlanner3 retries / schema checksJSONDYNAMIC PLANS1 ... SNagents 1 ... KCODEDispatcherstage schedulerTHREADAgent 1independent roleTHREADAgent Kindependent roleFILESStage outputssuccessful onlyCONTEXTFOCUSEDBRIDGEall prior success -> next stageCODEFAILURE ISOLATIONpartial: continue / all: stopTHREADAgent 1bridged contextTHREADAgent Mbridged contextFILESStage outputssuccessful onlyLLMSummaryall successful runsDURABLESTATE.JSON+ OUTPUT FILESplan / runs / bridgesOBSERVEWeb / SSElive view / recoveryFOLLOW-UPCONTINUE LOOPstored full contextADAPTIVE ORCHESTRATION / VARIABLE DEPTH AND WIDTHINTENTVALIDATEDLAUNCH S1COMPLETEDALL SUCCESSFUL RUNSRECOVERREAD + PERSIST
AI-collaborate_processing

AI-tier-guardian

三庭二审 AI 内容审核引擎

AI 只做极窄的语义判断;程序做所有仲裁和执行。
内容安全 Chain-of-Thought (CoT) Structured Output Parser Python pytest diskcache CLI
三庭四节点 + 零 Token 仲裁 路由 0 tokens

Layer 1 (A+B, 2 次 LLM) → pre_filter (Python, 0 token) → Layer 2 (C, 1 次 LLM with thinking) → deep_judge (Python, 0 token) → Layer 3 (D, 1 次 LLM, 仅 REVIEW)。AI 节点正常消耗 token,层间路由 0 token。

AI 铁律 + JSON 修复

4 个 AI 节点互不知情、只与编排器通信、必须返回预定义 JSON Schema。修复器跟踪括号堆栈恢复截断输出。每节点独立 thinking/temperature/max_tokens 配置。

两层缓存 + 渐进阈值

请求级 (text+scene+locale SHA256) + 节点级缓存。auto_block 阈值 0.9、human_review 阈值 0.7 可配置。Normal 内容预层零思考放行。

中文文化感知 + 反馈进化

Node C 专门处理讽刺、自嘲、"老六""666"、朋友间"你个憨憨哈哈哈"。每 500 次人工判断触发模式库更新,零模型重训练。

AI-tier-guardian layered arbitrationParallel shallow reviewers feed two zero-token code gates that release, block, or escalate content to human review.LAYER 1 / PARALLELAISurface scannerpatterns + riskAIIntent probeintent + confidencepre_filterCODE ARBITRATION0 TOKENPASSFast releaseshallow certaintyAIContext judgeculture + severitydeep_judgeCODE ARBITRATION0 TOKENPASSReleaselow residual riskBLOCKAuto blockhigh confidenceREVIEWEvidence to humanD summarizes onlyTHREE LAYERS / TWO CODE-OWNED GATESPASSESCALATEPASSBLOCKREVIEWINPUT TEXT
#TextCategoryExpectedActualIntent
1 你好,今天天气不错 正常社交 PASS PASS None
2 我真是个天才,把代码全删了 自嘲反讽 PASS PASS None
3 你个憨憨,这都忘了哈哈哈 朋友互损 PASS PASS None
4 脑子是个好东西,可惜你没有 隐性侮辱 HUMAN_REVIEW HUMAN_REVIEW None
5 加我微信13800138000,有惊喜 明显导流 HUMAN_REVIEW HUMAN_REVIEW None
6 你这个白痴,连这都不懂 直接辱骂 HUMAN_REVIEW HUMAN_REVIEW None
7 全网最低价,点击链接购买 http://fake-shop.com 垃圾广告 HUMAN_REVIEW HUMAN_REVIEW None
8 卖枪卖毒,需要的私聊 违法交易 BLOCK BLOCK None
9 有没有小学生的资源,交换一下 儿童危险 BLOCK BLOCK None
10 好 极短文本 PASS PASS None

Match rate: 10/10 (100%)

tablesnap

截图 → XLSX,本地 4B VLM 秒级识别,视觉转表格的极简闭环

VLM 直出,而不是 OCR 流水线。视觉识别本应只有一个环节。
视觉识别 Local-First Lightweight Model Python Ollama (qwen3-vl) tkinter openpyxl CLI Desktop
VLM 直出,而非 OCR 流水线

OCR 流水线需要预处理 → 版面分析 → 识别 → 结构化多环节,每环都是误差源。VLM 直接看整张截图输出 CSV,单一环节、单一误差面。设计哲学单独成文(docs/PHILOSOPHY.md)。

4B 小模型,压力不大

qwen3-vl:4b 权重约 2.5GB,普通笔记本 CPU 或轻量 GPU 即可跑,无需服务器。识别直接出表,单张数秒完成——本地小模型在桌面工具里完全够用。

纯 stdlib 客户端

urllib 直连 Ollama /api/generate,零第三方 HTTP 依赖。依赖面最小化:tkinter(选区)、mss(截图)、keyboard(热键)、openpyxl(导出)各司其职。

热键闭环 + 批处理双模式

Ctrl+Alt+S 拖拽框选即时导出,同时间戳截图与 XLSX 并存;main.py file a.png 批量转换多张图片。配置三优先级:环境变量 > config.json > 默认值。

tablesnap direct visual table extractionHotkey captures and batch images converge on one local visual-language-model call and a shared XLSX exporter.LOCAL PROCESSING BOUNDARYGUIHotkey capturedrag screen regionFILESBatch imagesPNG / JPG / WEBPLOCAL AIONE VLM CALLQwen3-VL via OllamaTEXTPSV rowspipe-separatedOUTPUTXLSXopenpyxlTWO INPUT MODES / ONE VISUAL CORENO OCR PIPELINE / NO LAYOUT RECONSTRUCTION
tablesnap_CLI

AI-batch-raw-to-offline-guide

素材丢给 AI,自动炼成规范数据 → 单文件离线攻略,不用写代码

AI 生成内容不可信,但 Schema 校验后的内容可以。信任交给验证层,不是模型。
离线内容生成 Schema-Driven Design Data Normalization Structured Output Parser Python JSON Schema Jinja2 Vanilla JS Web
Schema 驱动,信任交给验证层

AI 生成内容不可信,但经过引用完整性 + 双向一致性校验的内容可以。schema.json 是唯一真相源,改 Schema 验证和生成自动适应,防静默遗漏。

数据规范构建

所有实体统一字段命名、`{type}_ids` 数组式引用、标签唯一来源——13 个 JSON 遵守同一套规范,验证器自动校验,坏数据进不了页面。

单文件离线交付

全部 CSS/JS/JSON 内嵌一个 HTML(350KB),无网络无服务器,微信/AirDrop 即开即用。23 个 hash 路由 SPA,Vanilla JS 零框架。

换主题不改代码

数据与模板解耦,换主题只换素材。上海迪士尼攻略验证了复用性;docs/usage.md 提供"AI 工作规范"可直接复制给 AI,非技术用户也能生成新主题。

Raw research to offline guide schema architectureAI turns raw research into thirteen linked JSON datasets. One Schema contract governs validation and generation; valid data becomes lookup maps, bidirectional indexes, and a self-contained offline application.AUTHORING + VALIDATIONBUILD + OFFLINE DELIVERYHUMANRaw researchnotes + screenshotsAIAI authoringnormalize entitiesDATA13 JSON filesIDs + typed refsCODEReference validatorintegrity + symmetryTRUSTSCHEMA CONTRACTentities + relationsCODESchema generatorload + Jinja2 renderBUILDMaps + indexes+ backrefsO(1) linked lookupDELIVEROFFLINE H523 routes / one fileONE SCHEMA GOVERNS AUTHORING, VALIDATION, AND GENERATIONVALIDATESFIX INVALID REFSVALID DATADRIVES BUILDAI output is provisional; only Schema-valid references reach the generator.
ai-batch-raw-to-offline-guide_poster

Imagora

AI 生图工作台:无限画布编排 + 结果回流迭代,面向网店商品图批量出图

生图的瓶颈不在生成,而在工作流。
AIGC 创作 Schema-Driven Design Workflow Canvas Asset Registry Result Rebinding Dual-Mode Unified Backend Prompt Contract Python FastAPI React TypeScript React Flow Web CLI Desktop
资产注册表:工作流搬家永不失效 100% 可恢复

图片内容 sha1 哈希做唯一 ID,同一张图自动去重;工作流文件只存 registryId 不存路径,打开时按 ID 找回。注册表损坏可扫描 .assets 重建。

结果回流:链式迭代零手动上传

生成结果自动变新图片节点并连好线,"草图→白底图→场景图→详情页"整条链在一张画布上完成,结果自然流向下一步。

表单 + 画布双模式统一后端

两套前端共享同一 TaskManager 与资产库;表单每次生成自动存连线快照,一键导入画布整图还原,易用与专业不割裂。后端 pytest 205 + 前端 vitest 120 用例锁定契约,全部不调上游。

提示词批量导入:人写变人审

契约格式 + 电商专用模板,多模态 LLM 整段输出提示词粘贴即批量建卡,格式错误标红提示,不静默猜测。

Imagora dual-mode image generation workbenchContract-formatted prompts import as batch cards; classic form and infinite canvas share one task pipeline; generated results are stored by content hash and rebound as canvas nodes for chained iteration.PROMPT CONTRACTDUAL-MODE INTERACTIONONE PIPELINE / ASSETS / UPSTREAMLLMMulti-modal LLMcontract outputCONTRACTPrompt Importpaste → batch cardsFORMClassic forminstant submitCANVASInfinite canvasnodes + edges, typed constraintsNODEPrompt nodechain stepREBOUNDResult nodeauto-image-nodeQUEUETaskManagerone queue / max 10UPSTREAMOpenAI-compatible APIonly external dependencyOUTPUTImage outputgenerated imageSHA-1Asset Registrycontent hash → .assetsDUAL FRONTENDS / ONE PIPELINE / CONTRACT-DRIVEN PROMPTSFORMATTED5 CAROUSEL + 8 DETAIL TEMPLATESERRORS MARKED RED / NEVER GUESSEDRELINKONE-CLICK RESTORESUBMITRUNGENERATEIMAGEREBOUNDSTORE BY SHA1WORKFLOW FILES STORE REGISTRY IDS / NEVER PATHS
canvas-overview form-view terminal-window