File size: 3,782 Bytes
7bb4d19 d1f0f2d 7bb4d19 fb77726 bdd842c af38c19 a53437c d1f0f2d fb77726 af38c19 4b68ad4 7bb4d19 af38c19 7bb4d19 fb77726 bdd842c 68f11c9 bdd842c ac03bb3 af38c19 ac03bb3 4a8deab ac03bb3 c98264e ac03bb3 c98264e ac03bb3 c98264e ac03bb3 c98264e 7bb4d19 ac03bb3 c98264e ac03bb3 c98264e ac03bb3 c98264e ac03bb3 7bb4d19 af38c19 7bb4d19 077080c af38c19 077080c 4a8deab 7bb4d19 7445f95 a53437c 4b68ad4 a53437c d1f0f2d a53437c d1f0f2d 7bb4d19 af38c19 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
import { Messager, MessagerList } from "./messager.js";
import { transform_footnote } from "./stream_jsonizer.js";
let messagers_container = $("#messagers-container");
let available_models_select = $("#available-models-select");
let temperature_select = $("#temperature-select");
let messager_list = new MessagerList(messagers_container);
let chat_history = [messager_list];
let md_to_html_converter = new showdown.Converter();
md_to_html_converter.setFlavor("github");
export function get_active_messager_list() {
return chat_history[chat_history.length - 1];
}
export function get_latest_messager() {
return get_active_messager_list().messagers.slice(-1)[0];
}
export function create_messager(
role,
content = "",
model = "",
temperature = ""
) {
let message = {
role: role,
content: content,
model: model,
temperature: temperature,
};
let messager = new Messager(message);
get_active_messager_list().push(messager);
}
export function get_selected_llm_model() {
return available_models_select.val();
}
export function get_selected_temperature() {
return Number(temperature_select.val());
}
export function get_latest_messager_container() {
return get_active_messager_list().messagers_container.children().last();
}
export function get_latest_message_content_displayer() {
return get_latest_messager_container().find(".content-displayer");
}
export function get_latest_user_messager() {
return $(".message-user").last();
}
export function start_latest_message_animation() {
get_latest_messager_container()
.find(".content-displayer")
.addClass("blinking");
get_latest_user_messager()
.find(".button-group")
.find(".regenerate-button")
.find("i")
.addClass("fa-spin-fast");
}
export function stop_latest_message_animation() {
get_latest_messager_container()
.find(".content-displayer")
.removeClass("blinking");
get_latest_user_messager()
.find(".button-group")
.find(".regenerate-button")
.find("i")
.removeClass("fa-spin-fast");
}
export function get_request_messages() {
return get_active_messager_list().get_request_messages();
}
export function pop_messager(n = 2) {
return get_active_messager_list().pop(n);
}
export function update_message(json_chunks, content_displayer = null) {
if (content_displayer === null) {
content_displayer = get_latest_message_content_displayer();
}
json_chunks.forEach(function (item) {
let choice = item.choices[0];
let content = choice.delta.content;
let role = choice.delta.role;
let finish_reason = choice.finish_reason;
if (role) {
console.log("role: " + role);
}
if (content) {
console.log(content);
content_displayer.data(
"raw_content",
content_displayer.data("raw_content") + content
);
get_active_messager_list().messagers.slice(-1)[0].message.content +=
content;
content_displayer.html(
md_to_html_converter.makeHtml(
transform_footnote(content_displayer.data("raw_content"))
)
);
content_displayer
.find("table")
.addClass("table table-bordered table-hover");
}
if (finish_reason === "stop") {
console.log("[STOP]");
}
console.log(item);
});
return json_chunks;
}
export function create_new_chat_session() {
let new_messager_list = new MessagerList(messagers_container);
chat_history.push(new_messager_list);
messagers_container.empty();
}
|