ECNU/EduWork--packages-dsh-knowledge-studio-packages-artifact-services ↗★ 184
@eduwork/dsh-artifact-services
Shared Office, speech and media services for applications and DSH tools 作为底层服务插件,适合需要本地Office处理、TTS配音或端侧ASR语音识别的任务。
Install
This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗
README
Read the full 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;不自动回退到生成。输入与输出均限制在工作区,结果须另存,复用工作区写入权限。