str*_*rks 2 node.js typescript huggingface-transformers
在我的 NodeJS 应用程序中,我像这样导入:
import { AutoModel, AutoTokenizer } from '@xenova/transformers';
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它:
const tokenizer = await AutoTokenizer.from_pretrained('bert-base-uncased');
Run Code Online (Sandbox Code Playgroud)
但是,当我运行脚本时,我得到以下信息:
> node --experimental-modules lib/index.js
No storage option exists to persist the session, which may result in unexpected behavior when using auth.
If you want to set persistSession to true, please provide a storage option or you may set persistSession to false to disable this warning.
Starting script...
Error [ERR_REQUIRE_ESM]: require() of ES Module /home/me/Projects/node_modules/@xenova/transformers/src/transformers.js from /home/me/Projects/lib/pinecone/utils.js not supported.
Instead change the require of transformers.js in /home/me/Projects/lib/pinecone/utils.js to a dynamic import() which is available in all CommonJS modules.
at /home/me/Projects/lib/pinecone/utils.js:34:81
at async syncProfilesOnPinecone (/home/me/Projects//lib/pinecone/utils.js:34:33)
at async main (/home/me/Projects/lib/index.js:9:5) {
code: 'ERR_REQUIRE_ESM'
}
Run Code Online (Sandbox Code Playgroud)
不知道该怎么办?
Transformers.js 的创建者在这里。
这是一个并非 Transformers.js 特有的问题(大多数情况下),并且是由于 tsconfig.json 中的节点分辨率设置而发生的。默认情况下,所有import语句都会在编译期间转换为require。
您可以按如下方式修复此问题:
TransformersApi = Function('return import("@xenova/transformers")')();
const { pipeline } = await TransformersApi;
Run Code Online (Sandbox Code Playgroud)
这基本上只是将导入延迟到编译后。浏览此处获取更多信息。
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |