| | import { LlamaCpp } from "./llama-st/llama.js"; |
| |
|
| | let app; |
| | const buttonRun = document.querySelector("#run"); |
| | const buttonRunProgressLoadingModel = document.querySelector("#run-progress-loading-model"); |
| | const buttonRunProgressLoadedModel = document.querySelector("#run-progress-loaded-model"); |
| | const buttonRunProgressGenerating = document.querySelector("#run-progress-generating"); |
| | const selectModel = document.querySelector("select#model"); |
| | const modelProgress = document.querySelector("#model-progress"); |
| | const textareaPrompt = document.querySelector("textarea#prompt"); |
| | const textareaResult = document.querySelector("#result"); |
| |
|
| | const onModelLoaded = () => { |
| | const prompt = textareaPrompt.value; |
| | buttonRunProgressLoadingModel.setAttribute("hidden", "hidden"); |
| | buttonRunProgressLoadedModel.removeAttribute("hidden"); |
| | console.debug("model: loaded"); |
| |
|
| | app.run({ |
| | prompt: prompt, |
| | ctx_size: 2048, |
| | temp: 0.8, |
| | top_k: 40, |
| | no_display_prompt: true, |
| | }); |
| | } |
| |
|
| | const onMessageChunk = (text) => { |
| | console.log(text); |
| |
|
| | if (buttonRunProgressGenerating.hasAttribute("hidden")) { |
| | buttonRunProgressLoadingModel.setAttribute("hidden", "hidden"); |
| | buttonRunProgressLoadedModel.setAttribute("hidden", "hidden"); |
| | buttonRunProgressGenerating.removeAttribute("hidden"); |
| | } |
| |
|
| | |
| | textareaResult.innerText += text; |
| | }; |
| |
|
| | const onComplete = () => { |
| | console.debug("model: completed"); |
| | buttonRun.removeAttribute("hidden"); |
| | buttonRunProgressLoadingModel.setAttribute("hidden", "hidden"); |
| | buttonRunProgressLoadedModel.setAttribute("hidden", "hidden"); |
| | buttonRunProgressGenerating.setAttribute("hidden", "hidden"); |
| | modelProgress.setAttribute("hidden", "hidden"); |
| | }; |
| |
|
| | buttonRun.addEventListener("click", (e) => { |
| | buttonRun.setAttribute("hidden", "hidden"); |
| | buttonRunProgressLoadingModel.removeAttribute("hidden"); |
| | modelProgress.removeAttribute("hidden"); |
| | |
| | textareaResult.innerText = ""; |
| |
|
| | if (app && app.url == selectModel.value) { |
| | onModelLoaded(); |
| | return; |
| | } |
| |
|
| | app = new LlamaCpp( |
| | selectModel.value, |
| | onModelLoaded, |
| | onMessageChunk, |
| | onComplete, |
| | ); |
| | }); |
| |
|