Hansimov commited on
Commit
4a8deab
1 Parent(s): 077080c

:gem: [Feature] MessageViewer: Messager with role and modle name, and button

Browse files
apps/llm_mixer/js/chat_operator.js CHANGED
@@ -25,8 +25,11 @@ export function get_selected_llm_model() {
25
  return available_models_select.val();
26
  }
27
 
28
- export function get_latest_message_viewer() {
29
- return messagers_container.children().last();
 
 
 
30
  }
31
  export function get_request_messages() {
32
  return messager_list.get_request_messages();
@@ -36,9 +39,9 @@ export function pop_messager(n = 2) {
36
  return messager_list.pop(n);
37
  }
38
 
39
- export function update_message(json_chunks, message_viewer = null) {
40
- if (message_viewer === null) {
41
- message_viewer = get_latest_message_viewer();
42
  }
43
  json_chunks.forEach(function (item) {
44
  let choice = item.choices[0];
@@ -55,7 +58,7 @@ export function update_message(json_chunks, message_viewer = null) {
55
  console.log("[STOP]");
56
  }
57
  console.log(item);
58
- message_viewer.append(content);
59
  });
60
  return json_chunks;
61
  }
 
25
  return available_models_select.val();
26
  }
27
 
28
+ export function get_latest_message_content_displayer() {
29
+ return messager_list.messagers_container
30
+ .children()
31
+ .last()
32
+ .find(".content-displayer");
33
  }
34
  export function get_request_messages() {
35
  return messager_list.get_request_messages();
 
39
  return messager_list.pop(n);
40
  }
41
 
42
+ export function update_message(json_chunks, content_displayer = null) {
43
+ if (content_displayer === null) {
44
+ content_displayer = get_latest_message_content_displayer();
45
  }
46
  json_chunks.forEach(function (item) {
47
  let choice = item.choices[0];
 
58
  console.log("[STOP]");
59
  }
60
  console.log(item);
61
+ content_displayer.append(content);
62
  });
63
  return json_chunks;
64
  }
apps/llm_mixer/js/messager.js CHANGED
@@ -1,4 +1,36 @@
1
- import { get_request_messages } from "./chat_operator.js";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  export class Messager {
4
  constructor(message) {
@@ -13,8 +45,8 @@ export class Messager {
13
  };
14
  }
15
  create_viewer() {
16
- this.viewer = $("<div>").addClass(`chat-${this.message.role} mb-2 p-2`);
17
- this.viewer.append(this.message.content);
18
  }
19
  }
20
 
 
1
+ export class MessagerViewer {
2
+ constructor(message) {
3
+ this.message = message;
4
+ this.create_elements();
5
+ }
6
+ create_elements() {
7
+ this.container = $("<div>").addClass("row no-gutters message-viewer");
8
+ this.role_displayer = $("<div>").addClass("col-auto role-displayer");
9
+ if (this.message.role === "user") {
10
+ this.role_displayer.append("You");
11
+ } else {
12
+ this.role_displayer.append(this.message.model);
13
+ }
14
+ this.role_displayer.append(this.message.model);
15
+ this.content_displayer = $("<div>")
16
+ .addClass(
17
+ `col mb-2 p-2 content-displayer chat-${this.message.role}`
18
+ )
19
+ .append(this.message.content);
20
+ this.button = $("<button>").addClass(
21
+ "col-auto btn btn-primary regenerate-button"
22
+ );
23
+ if (this.message.role === "user") {
24
+ this.button.append("Edit");
25
+ } else {
26
+ this.button.append("Regenerate");
27
+ }
28
+ this.container
29
+ .append(this.role_displayer)
30
+ .append(this.content_displayer)
31
+ .append(this.button);
32
+ }
33
+ }
34
 
35
  export class Messager {
36
  constructor(message) {
 
45
  };
46
  }
47
  create_viewer() {
48
+ let messager_viewer = new MessagerViewer(this.message);
49
+ this.viewer = messager_viewer.container;
50
  }
51
  }
52