From 6d4b534be89c7dfe82a7a4cb2ebe08493950add7 Mon Sep 17 00:00:00 2001 From: Neko Date: Thu, 27 Feb 2025 16:12:06 +0800 Subject: [PATCH] feat(provider-transformers): added package to integrate transformers.js with xsai (#36) * feat(provider-transformers): added package to integrate transformers.js with xsai * fix: build * chore: use updated xsai --------- Signed-off-by: Neko Ayaka --- apps/moonshine-web/package.json | 2 +- apps/stage-tamagotchi/package.json | 18 +- apps/stage-web/package.json | 16 +- apps/whisper-webgpu/package.json | 2 +- package.json | 10 +- packages/provider-transformers/netlify.toml | 13 + packages/provider-transformers/package.json | 74 ++ .../playground/index.html | 23 + .../playground/public/favicon-96x96.png | Bin 0 -> 1592 bytes .../playground/public/favicon.svg | 8 + .../playground/src/App.vue | 105 ++ .../playground/src/main.ts | 8 + packages/provider-transformers/src/index.ts | 107 +++ .../provider-transformers/src/types/index.ts | 54 ++ .../provider-transformers/src/utils/index.ts | 13 + .../provider-transformers/src/worker/index.ts | 54 ++ packages/provider-transformers/tsconfig.json | 27 + packages/provider-transformers/uno.config.ts | 33 + packages/provider-transformers/vite.config.ts | 13 + .../provider-transformers/vitest.config.ts | 32 + packages/utils-transformers/package.json | 37 + .../utils-transformers/src/types/index.ts | 7 + packages/utils-transformers/tsconfig.json | 18 + pnpm-lock.yaml | 898 ++++++++++-------- pnpm-workspace.yaml | 18 +- services/minecraft/package.json | 2 +- services/telegram-bot/package.json | 2 +- 27 files changed, 1142 insertions(+), 452 deletions(-) create mode 100755 packages/provider-transformers/netlify.toml create mode 100644 packages/provider-transformers/package.json create mode 100644 packages/provider-transformers/playground/index.html create mode 100644 packages/provider-transformers/playground/public/favicon-96x96.png create mode 100644 packages/provider-transformers/playground/public/favicon.svg create mode 100644 packages/provider-transformers/playground/src/App.vue create mode 100644 packages/provider-transformers/playground/src/main.ts create mode 100644 packages/provider-transformers/src/index.ts create mode 100644 packages/provider-transformers/src/types/index.ts create mode 100644 packages/provider-transformers/src/utils/index.ts create mode 100644 packages/provider-transformers/src/worker/index.ts create mode 100644 packages/provider-transformers/tsconfig.json create mode 100644 packages/provider-transformers/uno.config.ts create mode 100644 packages/provider-transformers/vite.config.ts create mode 100644 packages/provider-transformers/vitest.config.ts create mode 100644 packages/utils-transformers/package.json create mode 100644 packages/utils-transformers/src/types/index.ts create mode 100644 packages/utils-transformers/tsconfig.json diff --git a/apps/moonshine-web/package.json b/apps/moonshine-web/package.json index 988644c12..909988e78 100644 --- a/apps/moonshine-web/package.json +++ b/apps/moonshine-web/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@tresjs/core": "^4.3.3", - "@unocss/reset": "^66.1.0-beta.1", + "@unocss/reset": "^66.1.0-beta.3", "@vueuse/core": "^12.7.0", "@vueuse/motion": "^2.2.6", "ofetch": "^1.4.1", diff --git a/apps/stage-tamagotchi/package.json b/apps/stage-tamagotchi/package.json index 5e83b99cd..e1c5b9fc2 100644 --- a/apps/stage-tamagotchi/package.json +++ b/apps/stage-tamagotchi/package.json @@ -48,8 +48,8 @@ "@tresjs/core": "^4.3.3", "@types/yauzl": "^2.10.3", "@typeschema/valibot": "^0.14.0", - "@unhead/vue": "^2.0.0-alpha.23", - "@unocss/reset": "^66.1.0-beta.1", + "@unhead/vue": "^2.0.0-alpha.27", + "@unocss/reset": "^66.1.0-beta.3", "@vueuse/core": "^12.7.0", "@vueuse/head": "^2.0.0", "@vueuse/shared": "^12.7.0", @@ -59,7 +59,7 @@ "@xsai/providers": "catalog:", "@xsai/shared-chat": "catalog:", "@xsai/stream-text": "catalog:", - "@xsai/utils-chat": "^0.1.0-beta.7", + "@xsai/utils-chat": "^0.1.0-beta.9", "defu": "^6.1.4", "nprogress": "^0.2.0", "ofetch": "^1.4.1", @@ -85,9 +85,9 @@ }, "devDependencies": { "@electron-toolkit/tsconfig": "^1.0.1", - "@iconify-json/carbon": "^1.2.7", + "@iconify-json/carbon": "^1.2.8", "@iconify-json/eos-icons": "^1.2.2", - "@iconify-json/lucide": "^1.2.26", + "@iconify-json/lucide": "^1.2.27", "@iconify-json/mingcute": "^1.2.3", "@iconify-json/solar": "^1.2.2", "@iconify-json/svg-spinners": "^1.2.2", @@ -103,14 +103,14 @@ "@vitejs/plugin-vue": "^5.2.1", "@vue-macros/volar": "^0.30.14", "@vueuse/motion": "^2.2.6", - "electron": "^34.2.0", + "electron": "^34.3.0", "electron-builder": "24.13.3", "electron-vite": "^2.3.0", "markdown-it-link-attributes": "^4.0.1", "unocss-preset-scrollbar": "^3.2.0", - "unplugin-auto-import": "^19.1.0", - "unplugin-vue-components": "^28.4.0", - "unplugin-vue-macros": "^2.14.3", + "unplugin-auto-import": "^19.1.1", + "unplugin-vue-components": "^28.4.1", + "unplugin-vue-macros": "^2.14.4", "unplugin-vue-markdown": "^28.3.1", "unplugin-vue-router": "^0.11.2", "vite-bundle-visualizer": "^1.2.1", diff --git a/apps/stage-web/package.json b/apps/stage-web/package.json index 494b9b47f..2ea4fec31 100644 --- a/apps/stage-web/package.json +++ b/apps/stage-web/package.json @@ -44,8 +44,8 @@ "@tresjs/core": "^4.3.3", "@types/yauzl": "^2.10.3", "@typeschema/valibot": "^0.14.0", - "@unhead/vue": "^2.0.0-alpha.23", - "@unocss/reset": "^66.1.0-beta.1", + "@unhead/vue": "^2.0.0-alpha.27", + "@unocss/reset": "^66.1.0-beta.3", "@valibot/to-json-schema": "1.0.0-rc.0", "@vueuse/core": "^12.7.0", "@vueuse/head": "^2.0.0", @@ -56,7 +56,7 @@ "@xsai/providers": "catalog:", "@xsai/shared-chat": "catalog:", "@xsai/stream-text": "catalog:", - "@xsai/utils-chat": "^0.1.0-beta.7", + "@xsai/utils-chat": "catalog:", "defu": "^6.1.4", "jszip": "^3.10.1", "nprogress": "^0.2.0", @@ -83,9 +83,9 @@ }, "devDependencies": { "@electron-toolkit/preload": "^3.0.1", - "@iconify-json/carbon": "^1.2.7", + "@iconify-json/carbon": "^1.2.8", "@iconify-json/eos-icons": "^1.2.2", - "@iconify-json/lucide": "^1.2.26", + "@iconify-json/lucide": "^1.2.27", "@iconify-json/mingcute": "^1.2.3", "@iconify-json/simple-icons": "^1.2.26", "@iconify-json/solar": "^1.2.2", @@ -105,9 +105,9 @@ "@vueuse/motion": "^2.2.6", "hfup": "workspace:^", "markdown-it-link-attributes": "^4.0.1", - "unplugin-auto-import": "^19.1.0", - "unplugin-vue-components": "^28.4.0", - "unplugin-vue-macros": "^2.14.3", + "unplugin-auto-import": "^19.1.1", + "unplugin-vue-components": "^28.4.1", + "unplugin-vue-macros": "^2.14.4", "unplugin-vue-markdown": "^28.3.1", "unplugin-vue-router": "^0.11.2", "vite-bundle-visualizer": "^1.2.1", diff --git a/apps/whisper-webgpu/package.json b/apps/whisper-webgpu/package.json index c500b5710..af942da59 100644 --- a/apps/whisper-webgpu/package.json +++ b/apps/whisper-webgpu/package.json @@ -17,7 +17,7 @@ "typecheck": "vue-tsc --noEmit" }, "dependencies": { - "@unocss/reset": "^66.1.0-beta.1", + "@unocss/reset": "^66.1.0-beta.3", "@vueuse/core": "^12.7.0", "ofetch": "^1.4.1", "vue": "^3.5.13" diff --git a/package.json b/package.json index 0236eea4b..7f15268cc 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "airi-vtuber", "type": "module", "private": true, - "packageManager": "pnpm@10.5.0", + "packageManager": "pnpm@10.5.2", "description": "LLM powered virtual character", "author": { "name": "Neko Ayaka", @@ -35,8 +35,8 @@ "@antfu/ni": "^23.3.1", "@cspell/dict-ru_ru": "^2.2.4", "@types/node": "^22.13.5", - "@unocss/eslint-config": "^66.1.0-beta.1", - "@unocss/eslint-plugin": "^66.1.0-beta.1", + "@unocss/eslint-config": "^66.1.0-beta.3", + "@unocss/eslint-plugin": "^66.1.0-beta.3", "@vitest/coverage-v8": "3.0.5", "bumpp": "^10.0.3", "changelogithub": "^13.12.1", @@ -50,9 +50,9 @@ "taze": "^18.6.0", "typescript": "~5.7.3", "unbuild": "3.0.0-rc.11", - "unocss": "^66.1.0-beta.1", + "unocss": "^66.1.0-beta.3", "vite": "^6.2.0", - "vite-plugin-inspect": "^10.3.0", + "vite-plugin-inspect": "^11.0.0", "vitest": "^3.0.7" }, "workspaces": [ diff --git a/packages/provider-transformers/netlify.toml b/packages/provider-transformers/netlify.toml new file mode 100755 index 000000000..12b866f7c --- /dev/null +++ b/packages/provider-transformers/netlify.toml @@ -0,0 +1,13 @@ +[build] +base = "/" +command = "pnpm -F @proj-airi/provider-transformers... run build" +publish = "/packages/provider-transformers/playground/dist" + +[build.environment] +NODE_VERSION = "23" + +[[redirects]] +from = "/*" +to = "/index.html" +status = 200 +force = false diff --git a/packages/provider-transformers/package.json b/packages/provider-transformers/package.json new file mode 100644 index 000000000..ad2c9077b --- /dev/null +++ b/packages/provider-transformers/package.json @@ -0,0 +1,74 @@ +{ + "name": "@proj-airi/provider-transformers", + "type": "module", + "private": true, + "description": "Transformers.js wrapper makes it easy to use with xsai", + "author": { + "name": "Neko Ayaka", + "email": "neko@ayaka.moe", + "url": "https://github.com/nekomeowww" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/moeru-ai/airi.git", + "directory": "packages/provider-transformers" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs" + }, + "./worker": { + "types": "./dist/worker/index.d.ts", + "import": "./dist/worker/index.mjs" + }, + "./types": { + "types": "./dist/types/index.d.ts", + "import": "./dist/types/index.mjs" + } + }, + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "README.md", + "dist", + "package.json" + ], + "scripts": { + "dev": "pnpm run stub && pnpm run play:dev", + "stub": "unbuild --stub", + "build": "unbuild && pnpm run play:build", + "play:dev": "vite", + "play:build": "vite build", + "play:preview": "vite preview", + "typecheck": "tsc --noEmit" + }, + "peerDependencies": { + "web-worker": "^1.5.0" + }, + "peerDependenciesMeta": { + "web-worker": { + "optional": true + } + }, + "dependencies": { + "@huggingface/transformers": "^3.3.3", + "@proj-airi/utils-transformers": "workspace:^", + "@webgpu/types": "^0.1.54", + "@xsai-ext/shared-providers": "catalog:", + "@xsai/embed": "catalog:", + "@xsai/shared": "catalog:", + "defu": "^6.1.4", + "es-toolkit": "^1.32.0" + }, + "devDependencies": { + "@iconify-json/solar": "^1.2.2", + "@unocss/reset": "^66.1.0-beta.3", + "@vitejs/plugin-vue": "^5.2.1", + "@vueuse/core": "^12.7.0", + "vite": "^6.2.0", + "vue": "^3.5.13", + "vue-tsc": "^2.2.4" + } +} diff --git a/packages/provider-transformers/playground/index.html b/packages/provider-transformers/playground/index.html new file mode 100644 index 000000000..6b3395b66 --- /dev/null +++ b/packages/provider-transformers/playground/index.html @@ -0,0 +1,23 @@ + + + + + Project AIRI 🤗 Transformers.js xsai provider Playground + + + + + + +
+ + + + diff --git a/packages/provider-transformers/playground/public/favicon-96x96.png b/packages/provider-transformers/playground/public/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..a70eda1afe66bcdb77cedc2cdae6ac440753e4c5 GIT binary patch literal 1592 zcmV-82FLk{P)Px)@<~KNRCr$PU0YJzFc7q%a;}8Cz&Y4G2iyfXR|=exYqe2~t(l%_c?=PM6!JW} z=Oy{UIP{-T1jbP9UHQ-n2o8cyKqnv=fnfDL13Cf02n4I|8PEv`Mj%*y&wx%qFap8q zdj@=00^Uzgr(qf&lYiqdyuOdq`N!$uHP~OZ`egq&jX(1RH|P61^~JzKdItPHJ^i|w z#+Nl4KE~D5ELu-A>jeNMn`-1~)aNx60$BAj zXT&_RS8nPc4i=8SPUG~Je%IVo(UeHWB;+PwFGDS$d#_;yR?Uv)1h7)o3#R3IYi~nz zxe3^-Rw7QZ)=IuHCLuQgQj|yym<3h~IT8Vk>~<5dN1bc|u14k_{jE6xj7dQQR;x8q zfO-9M5gTszz~L8L9?Q?QGHE72ij4WpMe#JTM$Xl61qp0(o%Sgn!CmX}nEG8KWbH6)k`U^OQxx|W7ZS;dw&XF&0?$tsYYfWNT( zHw3WKQj}AKTvQ1jgeWiQ_DUmvF?trheMEWOYz}kH7jy^?m$~tOOO5P`Iz56Alf2o7|ls4d>ihwP^ zk@U4hX431L!T=!FGEEa`NEWZja}hA7I@rX}x{u1Y?lmm?0o0c^1X!9h5SbnV5P&S1 z=8gVDh&uyXX8}^?EK|s}^njT>mq)@Ez&HdLvOwD)Ed*y!5rEK4L$a&ZOJWEBN|0#^ z1Le;oqd{cQahM)}M1N_t_)_0Eozr^j@im$S$g@gYS>Vb5IBLKZSmxy|FpwsR0;*ll^v6ICCDzcGVFKVrr3poY;To~EHFWSV%FrxmL%?MkK|heRM>d#%AE$HrjFeV6O%y>VNa22u(v|kf71SSYwG~ zt6ozESe2#g*ki26mQU9POk=wfkev4Jq^Y1+>U|SE3!xzdWE-pvnhH!n)R*>$5)hgV z!N6Y=j~Y!5VJ*LwRXFQ<+S=jX=B42oux42vD;bZ9cpq_Z0s5gzkmTTU#xMW1RQXAR zBqx6pZl1P=;q~bMu_@Vk$PAE3`A&cD1O&6$3Frg_BM_{i+=r%jBKO-z|jz0000 + + + + + \ No newline at end of file diff --git a/packages/provider-transformers/playground/src/App.vue b/packages/provider-transformers/playground/src/App.vue new file mode 100644 index 000000000..fdd2e0dea --- /dev/null +++ b/packages/provider-transformers/playground/src/App.vue @@ -0,0 +1,105 @@ + + +