[feat] novellist api

This commit is contained in:
kwaroran
2023-06-07 08:57:42 +09:00
parent f771fe3890
commit f37ae13d83
9 changed files with 464 additions and 20 deletions

View File

@@ -0,0 +1,30 @@
import type { PreTrainedTokenizer } from "@xenova/transformers"
type transformerLibType = typeof import("@xenova/transformers");
let tokenizer:PreTrainedTokenizer = null
let transformerLib:transformerLibType
const tokenizerDict = {
'trin': 'naclbit/trin_tokenizer_v3',
} as const
type tokenizerTypes = keyof(typeof tokenizerDict)
let tokenizerType:tokenizerTypes|'' = ''
async function loadTransformers() {
if(!transformerLib){
transformerLib = await import('@xenova/transformers')
}
}
export async function tokenizeTransformers(type:tokenizerTypes, text:string) {
await loadTransformers()
if(tokenizerType !== type){
const AutoTokenizer = transformerLib.AutoTokenizer
tokenizer = await AutoTokenizer.from_pretrained(tokenizerDict[type])
tokenizerType = type
}
return tokenizer.encode(text)
}