| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
merge: bring thinkthread_dev slidea updates (LLM routing) into feature/slidea Path-level checkout of application/slidea/ from feature/thinkthread_dev to integrate the 65 slidea-related commits (model handover routing, premium economic runtime config, preflight + tests). slidea-only commits (457cf14b deep_research skill export, 48d05961 parser logger optimization) were already absorbed by thinkthread_dev through master sync, so no slidea-only content is lost. slidea-only files skill/deep_research/ and scripts/run_deep_research.py remain byte-identical to feature/slidea. Verified: 11 modified modules import cleanly; tests/test_llm_routing.py, tests/test_runtime_config.py, tests/test_preflight.py all pass (39 tests). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 1 个月前 | |
slidea: init. Adding a fully open-source AI-powered PPT generation skill whose name is slidea Signed-off-by: JiangYifei <jiangyifei@huawei.com> Signed-off-by: WanBo <wanbo13@huawei.com> Signed-off-by: SuBo <subo7@huawei.com> Signed-off-by: Zhukunpeng <zhukunpeng8@huawei.com> Signed-off-by: Bin Wu <wu.wubin@huawei.com> | 3 个月前 | |
fix(slidea): run_id correctness — tz-aware timestamp and resume reuse Two related fixes around run_id generation: 1. CI flagged scripts/run_ppt_pipeline.py:34 (new_semantic_run_id) for using datetime.now() without tz, violating rule G.PSL.02. Same pattern existed in core/utils/cache.py:new_run_id. Both now use datetime.now(timezone.utc).astimezone(), matching the existing pattern in svg_page_generators/node.py. 2. Resume flow was creating a second cache directory and splitting artifacts across both. Root cause: under --resume, args.text is empty, so new_semantic_run_id("") fell back to a fresh _ppt-suffixed run_id. The LangGraph checkpoint kept the original save_dir from state, but config["configurable"]["run_id"] carried the NEW id, so render-stage output (which reads from config) landed in the new dir while parse-stage output stayed in the original. Fix: _find_run_id_by_session scans output/*/run.json for a matching session_id, filters out resume-attempt records (resume: true), and returns the ORIGINAL run_id. main() uses this on --resume so the cache directory is reused instead of duplicated. If no prior run matches the session_id, the CLI fails with a clear error instead of silently starting a new run. Verified via unit-level: _find_run_id_by_session correctly recovers the original semantic-suffix run_id from the existing buggy artifacts and skips the resume-attempt record. Signed-off-by: Zhukunpeng <zhukunpeng8@huawei.com> | 20 天前 | |
feat(slidea): configurable OUTPUT_DIR and source_dir in completion output Two related usability improvements: 1. OUTPUT_DIR env var (.env) redirects every slidea artifact to a configured directory. Empty (default) keeps the existing <slidea_install_dir>/output behavior; an absolute path replaces it verbatim; a relative path resolves against <slidea_install_dir>. Affects PPT runs, deep research workspace, sqlite checkpoints, and downloaded documents — everything that previously landed under <slidea_install_dir>/output. Implementation: settings.OUTPUT_DIR is resolved in core/utils/config.py right after settings load, producing the module-level output_files_dir that every existing importer already consumes. cache.run_dir drops its vestigial base_dir parameter and uses output_files_dir directly. 2. PPT generation completion now surfaces the editable SVG source directory alongside the PPTX path: >>> 生成PPT结束 >>> 生成文件:/.../<run_id>/<topic>.pptx >>> 源文件目录:/.../<run_id>/slides/svg So users can find the on-disk SVG source for further editing without having to read ppt.json. HTML route reports its save_dir as source_dir (HTML pages live directly there). Signed-off-by: Zhukunpeng <zhukunpeng8@huawei.com> | 20 天前 | |
use images of extracted documents Signed-off-by: SuBo <subo7@huawei.com> | 2 个月前 | |
slidea: init. Adding a fully open-source AI-powered PPT generation skill whose name is slidea Signed-off-by: JiangYifei <jiangyifei@huawei.com> Signed-off-by: WanBo <wanbo13@huawei.com> Signed-off-by: SuBo <subo7@huawei.com> Signed-off-by: Zhukunpeng <zhukunpeng8@huawei.com> Signed-off-by: Bin Wu <wu.wubin@huawei.com> | 3 个月前 | |
slidea: init. Adding a fully open-source AI-powered PPT generation skill whose name is slidea Signed-off-by: JiangYifei <jiangyifei@huawei.com> Signed-off-by: WanBo <wanbo13@huawei.com> Signed-off-by: SuBo <subo7@huawei.com> Signed-off-by: Zhukunpeng <zhukunpeng8@huawei.com> Signed-off-by: Bin Wu <wu.wubin@huawei.com> | 3 个月前 | |
use images of extracted documents Signed-off-by: SuBo <subo7@huawei.com> | 2 个月前 | |
refactor(slidea): bundle llm_invoke/vlm_invoke options and tidy lint findings - Introduce InvokeOptions dataclass to group optional invoke params (config / pydantic_schema / json_schema / work_node); migrate ~30 call sites across ppt_thought, page_generators, svg_page_generators, deep_research, outline_generator, utils, and ci/review. - Rewrite scripts/pixel_diff.py and scripts/verify_font_fallback.py to route output through logging and use PYTHONPATH for the worker subprocess instead of sys.path.insert. - Wrap overlong lines in preflight.py, test_pipeline_contracts.py, test_preflight.py, and test_llm_routing.py. - Add targeted pylint: disable=protected-access to test sites that intentionally probe private helpers. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 1 个月前 | |
feat(slidea): add VLM visual review flow Signed-off-by: Zhukunpeng <zhukunpeng8@huawei.com> | 2 个月前 | |
support review ppt speech in skill Signed-off-by: SuBo <subo7@huawei.com> | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 3 个月前 | ||
| 20 天前 | ||
| 20 天前 | ||
| 2 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |