ECNU/EduWork--packages-dsh-knowledge-studio-packages-artifact-services ↗★ 184

@eduwork/dsh-artifact-services

为应用提供共享的Office、语音和媒体服务 作为底层服务插件,适合需要本地Office处理、TTS配音或端侧ASR语音识别的任务。

包名
@eduwork/dsh-artifact-services
兼容性
待验证
Harness 依赖范围
>=0.2.1-rc.2 <0.3.0-0
Cordis 依赖范围
>=4.0.5 <4.1.0
版本
0.3.0
许可证
MIT
最近更新
2026年10月19日

安装

此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗

安装与配置

在 Node 项目中安装精确版本 @eduwork/dsh-artifact-services@0.3.0。本地验证也可安装已检查的压缩包:

npm install ./eduwork-dsh-artifact-services-0.3.0.tgz

使用 Studio 时,在同一命令中安装配套 Studio 包,只启用 Studio bundle,由其注册一次 Shared。见源码构建与 Profile 激活。普通 Node 应用直接调用下述 API;DSH Host 还需加载一次 /dsh 适配器。

Office 要求 Python 3.12+ 与本包 python/requirements.txt 中的依赖,DSH_OFFICE_PYTHON 指向解释器绝对路径。安装 npm 包不会安装 Python 库、ASR 模型或浏览器。TTS 的 system Provider 在 Windows 使用 System.Speech,在 macOS 使用系统 say;两者枚举已安装音色并输出 WAV,不需要 API Key。Mac 中文配音需要先在系统设置中安装中文语音,见平台要求。其他平台需要 Provider。端侧 ASR 要求宿主提供 whisper.cpp 可执行程序和模型,见转写说明。

源码另提供可选的 createDshTranscriptionProvider,用于把 DSH 0.1.7 的本地 speechToText 服务接到现有文件转写接口;需由宿主显式注册,尚未替换桌面默认引擎。它支持分段处理长音频,但不提供时间戳;需要时间戳时仍使用原 Provider。TTS 保持独立,Mac 当前未内置系统语音适配器。选项、准备步骤和能力限制见转写说明。

共享预览解析真实 DOCX/XLSX/PPTX 文件,保留 PPTX 固定页面坐标并使用内容哈希元数据。控件跟随宿主主题,文档内容保留原色。Studio 与对话附件使用同一预览契约;原生全屏和普通文档预览由宿主管理,对话最终文件可用时交给官方 present。预览保真度仍需用原生 Office 独立核对。

PDF/视频应用可从 @eduwork/dsh-artifact-services/runtime 导入 createMediaRuntime 并使用其 browserExecutable。固定部署应同时提供 DSH_MEDIA_NODE_ENV / DSH_MEDIA_BROWSER,兼容旧 ECNU_AGENT_NODE_ENV / ECNU_AGENT_REMOTION_BROWSER。已配置时不调用 ensureBrowser;未配置时实际渲染可准备本包浏览器,只读就绪检查不会下载。

运行时锁定 Remotion 4.0.520、mediabunny 1.55.5、React/React DOM 18.3.1,各调用方应解析到同一份 mediabunny。同入口的 getMediaFFmpegPath 从选定依赖所属环境解析 FFmpeg,不准备浏览器;可通过 {runtime} 传入已有运行时。

图像与平台配置

DSH 服务默认关闭生图。部署方须在 ArtifactServices 插件配置中显式设置 images: { enabled: true },统一开启工具、技能与 Provider 调用。Office 和视频中的本地图片不受影响,语音与视频能力也独立于此选项。

内置系统 TTS 支持 Windows。其他平台需要注册语音 Provider 并提供兼容的原生资源,见平台要求。

图像 Provider 可选实现 edit(request),沿用 generate 的工作区、取消信号与结果契约;输入为 images 路径数组及可选 mask,通过 images.edit(request) / image_edit 调用。目录仅对实现编辑的 Provider 声明 capabilities.edit:true;不自动回退到生成。输入与输出均限制在工作区,结果须另存,复用工作区写入权限。