Spaces:
Running
Running
export async function extractEmbeddings( | |
worker, | |
weightsURL, | |
tokenizerURL, | |
configURL, | |
modelID, | |
sentences, | |
updateStatus, | |
normalize_embeddings = true | |
) { | |
return new Promise((resolve, reject) => { | |
worker.postMessage({ | |
weightsURL, | |
tokenizerURL, | |
configURL, | |
modelID, | |
sentences, | |
normalize_embeddings, | |
}); | |
function messageHandler(event) { | |
if ("error" in event.data) { | |
worker.removeEventListener("message", messageHandler); | |
reject(new Error(event.data.error)); | |
} | |
if (event.data.status === "complete") { | |
worker.removeEventListener("message", messageHandler); | |
resolve(event.data); | |
} | |
if (updateStatus) updateStatus(event.data); | |
} | |
worker.addEventListener("message", messageHandler); | |
}); | |
} | |
export async function generateText( | |
worker, | |
weightsURL, | |
tokenizerURL, | |
configURL, | |
modelID, | |
prompt, | |
params, | |
updateStatus | |
) { | |
return new Promise((resolve, reject) => { | |
worker.postMessage({ | |
weightsURL, | |
tokenizerURL, | |
configURL, | |
modelID, | |
prompt, | |
params, | |
}); | |
function messageHandler(event) { | |
if ("error" in event.data) { | |
worker.removeEventListener("message", messageHandler); | |
reject(new Error(event.data.error)); | |
} | |
if (event.data.status === "complete") { | |
worker.removeEventListener("message", messageHandler); | |
resolve(event.data); | |
} | |
if (updateStatus) updateStatus(event.data); | |
} | |
worker.addEventListener("message", messageHandler); | |
}); | |
} | |
const TASKS = { | |
fluency: { | |
prefix: "Fix the grammar: ", | |
max_length: 300, | |
}, | |
coherence: { | |
prefix: "Rewrite to make this easier to understand: ", | |
max_length: 300, | |
}, | |
simplification: { | |
prefix: "translate English to Romanian: ", | |
max_length: 300, | |
}, | |
simplification: { | |
prefix: "Paraphrase this: ", | |
max_length: 300, | |
}, | |
formalization: { | |
prefix: "Write this more formally: ", | |
max_length: 300, | |
}, | |
neutralize: { | |
prefix: "Write in a more neutral way: ", | |
max_length: 300, | |
}, | |
}; | |
export const MODELS = { | |
coedit_large_quantized_4k: { | |
size: "441 MB", | |
base_url: "https://huggingface.co/jbochi/candle-coedit-quantized/resolve/main/", | |
model: "model-q4k.gguf", | |
tokenizer: "tokenizer.json", | |
config: "config.json", | |
tasks: TASKS, | |
}, | |
coedit_large_quantized_4_0: { | |
size: "441 MB", | |
base_url: "https://huggingface.co/jbochi/candle-coedit-quantized/resolve/main/", | |
model: "model-q4_0.gguf", | |
tokenizer: "tokenizer.json", | |
config: "config.json", | |
tasks: TASKS, | |
}, | |
coedit_large_quantized_6k: { | |
size: "643 MB", | |
base_url: "https://huggingface.co/jbochi/candle-coedit-quantized/resolve/main/", | |
model: "model.gguf", | |
tokenizer: "tokenizer.json", | |
config: "config.json", | |
tasks: TASKS, | |
}, | |
coedit_xl_quantized_4k: { | |
size: "1.6 GB", | |
base_url: "https://huggingface.co/jbochi/candle-coedit-quantized/resolve/main/", | |
model: "model-xl-q4k.gguf", | |
tokenizer: "tokenizer.json", | |
config: "config-xl.json", | |
tasks: TASKS, | |
}, | |
coedit_xl_quantized_4_0: { | |
size: "1.6 GB", | |
base_url: "https://huggingface.co/jbochi/candle-coedit-quantized/resolve/main/", | |
model: "model-xl-q4_0.gguf", | |
tokenizer: "tokenizer.json", | |
config: "config.json", | |
tasks: TASKS, | |
}, | |
coedit_xl_quantized_6k: { | |
size: "2.34 GB", | |
base_url: "https://huggingface.co/jbochi/candle-coedit-quantized/resolve/main/", | |
model: "model-xl.gguf", | |
tokenizer: "tokenizer.json", | |
config: "config-xl.json", | |
tasks: TASKS, | |
}, | |
coedit_large: { | |
size: "3.13 GB", | |
base_url: "https://huggingface.co/grammarly/coedit-large/resolve/main/", | |
model: "model.safetensors", | |
tokenizer: "tokenizer.json", | |
config: "config.json", | |
tasks: TASKS, | |
}, | |
}; | |
export function getModelInfo(id, taskID) { | |
const model = MODELS[id]; | |
return { | |
modelURL: model.base_url + model.model, | |
configURL: model.base_url + model.config, | |
tokenizerURL: model.base_url + model.tokenizer, | |
maxLength: model.tasks[taskID].max_length, | |
}; | |
}; | |