Неопределенная ошибка при передаче асинхронной функции в качестве параметра функции

Я пытаюсь использовать RecursiveCharacterTextSplitter с функцией длины в качестве стороннего токенизатора.

Согласно документации, RecursiveCharacterTextSplitter также принимает lengthFunction как обещание.

но я бьюTypeError: Cannot convert undefined to a BigIntкогда я запускаю ниже фрагмент кода. Кроме того, я получаю печать только для console.log(tok === undefined); прежде чем я нажму сообщение об ошибке. Код работает, если передать обещание, заключенное в него, с фиктивной задержкой.

      
import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
import { BartTokenizer } from "@xenova/transformers";

// interface TextSplitterParams {
//     chunkSize: number;
//     chunkOverlap: number;
//     keepSeparator: boolean;
//     lengthFunction?: ((text: string) => number) | ((text: string) => Promise<number>);
// }

async function tokenizer_len(x) {
  return BartTokenizer.from_pretrained("facebook/bart-large").then(
    (tok) => tok(x)["input_ids"].size
  );
}

const splitter = new RecursiveCharacterTextSplitter({
  chunkSize: 1024,
  chunkOverlap: 50,
  lengthFunction: tokenizer_len,
});

async function chunkify(text) {
  let output = await splitter.createDocuments([text]);
  return output.map((key) => key.pageContent);
}

const data1 = fs.readFileSync("text.txt", "utf8").toString();
chunkify(data1).then((op) => {
  console.log(op);
});

Ошибка

      TypeError: Cannot convert undefined to a BigInt
    at BigInt (<anonymous>)
    at Array.map (<anonymous>)
    at Function._call (file:///media/instantinopaul/data/Code/ML/js-summarize/node_modules/@xenova/transformers/src/tokenizers.js:2325:50)
    at closure (file:///media/instantinopaul/data/Code/ML/js-summarize/node_modules/@xenova/transformers/src/utils/core.js:62:28)
    at RecursiveCharacterTextSplitter.tokenizer_len [as lengthFunction] (file:///media/instantinopaul/data/Code/ML/js-summarize/main.mjs:14:18)
    at async RecursiveCharacterTextSplitter._splitText (file:///media/instantinopaul/data/Code/ML/js-summarize/node_modules/langchain/dist/text_splitter.js:236:18)
    at async RecursiveCharacterTextSplitter.createDocuments (file:///media/instantinopaul/data/Code/ML/js-summarize/node_modules/langchain/dist/text_splitter.js:76:33)
    at async chunkify (file:///media/instantinopaul/data/Code/ML/js-summarize/main.mjs:27:16)

0 ответов

Другие вопросы по тегам