:zap: [Enhance] Copy model options to new agent models select
Browse files
widgets/available_models_select_widget.js
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export class AvailableModelsSelectWidget {
|
2 |
+
constructor({ widget_id = null, widget_title = null } = {}) {
|
3 |
+
this.widget_id = widget_id;
|
4 |
+
this.widget_title = widget_title || "Available Models";
|
5 |
+
}
|
6 |
+
spawn_in_parent(parent, position = "append") {
|
7 |
+
this.create_widget();
|
8 |
+
this.update_select_options();
|
9 |
+
if (position === "prepend") {
|
10 |
+
parent.prepend(this.widget);
|
11 |
+
} else {
|
12 |
+
parent.append(this.widget);
|
13 |
+
}
|
14 |
+
}
|
15 |
+
create_widget() {
|
16 |
+
this.widget_html = `
|
17 |
+
<select class="form-select" id="${this.widget_id}-select" title="${this.widget_title}"></select>
|
18 |
+
`;
|
19 |
+
this.widget = $(this.widget_html);
|
20 |
+
}
|
21 |
+
update_select_options() {
|
22 |
+
let available_models_select = $("#available-models-select");
|
23 |
+
let options = available_models_select.find("option");
|
24 |
+
this.widget.empty();
|
25 |
+
options.each((i, option) => {
|
26 |
+
this.widget.append($(option).clone());
|
27 |
+
});
|
28 |
+
}
|
29 |
+
}
|
widgets/new_agent_modal_widget.js
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
import { RangeNumberWidget } from "./range_number_widget.js";
|
|
|
2 |
|
3 |
export class NewAgentModalWidget {
|
4 |
constructor({ widget_id = null } = {}) {
|
@@ -19,6 +20,13 @@ export class NewAgentModalWidget {
|
|
19 |
remove() {
|
20 |
this.widget.remove();
|
21 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
create_temperature_widget() {
|
23 |
this.temperature_widget = new RangeNumberWidget({
|
24 |
widget_id: this.temperature_widget_id,
|
@@ -72,8 +80,7 @@ export class NewAgentModalWidget {
|
|
72 |
<label>Description</label>
|
73 |
</div>
|
74 |
<!-- model -->
|
75 |
-
<div class="form-floating mb-2">
|
76 |
-
<select id="${this.model_widget_id}" class="form-select" type="text"></select>
|
77 |
<label class="form-label">Model</label>
|
78 |
</div>
|
79 |
<!-- temperature -->
|
@@ -100,6 +107,7 @@ export class NewAgentModalWidget {
|
|
100 |
</div>
|
101 |
`;
|
102 |
this.widget = $(this.widget_html);
|
|
|
103 |
this.create_temperature_widget();
|
104 |
this.create_max_output_tokens_widget();
|
105 |
}
|
|
|
1 |
import { RangeNumberWidget } from "./range_number_widget.js";
|
2 |
+
import { AvailableModelsSelectWidget } from "./available_models_select_widget.js";
|
3 |
|
4 |
export class NewAgentModalWidget {
|
5 |
constructor({ widget_id = null } = {}) {
|
|
|
20 |
remove() {
|
21 |
this.widget.remove();
|
22 |
}
|
23 |
+
create_model_widget() {
|
24 |
+
this.model_widget = new AvailableModelsSelectWidget({
|
25 |
+
widget_id: this.model_widget_id,
|
26 |
+
});
|
27 |
+
let model_widget_parent = this.widget.find(`#${this.model_widget_id}`);
|
28 |
+
this.model_widget.spawn_in_parent(model_widget_parent, "prepend");
|
29 |
+
}
|
30 |
create_temperature_widget() {
|
31 |
this.temperature_widget = new RangeNumberWidget({
|
32 |
widget_id: this.temperature_widget_id,
|
|
|
80 |
<label>Description</label>
|
81 |
</div>
|
82 |
<!-- model -->
|
83 |
+
<div id="${this.model_widget_id}" class="form-floating mb-2">
|
|
|
84 |
<label class="form-label">Model</label>
|
85 |
</div>
|
86 |
<!-- temperature -->
|
|
|
107 |
</div>
|
108 |
`;
|
109 |
this.widget = $(this.widget_html);
|
110 |
+
this.create_model_widget();
|
111 |
this.create_temperature_widget();
|
112 |
this.create_max_output_tokens_widget();
|
113 |
}
|