:recycle: [Refactor] Clean llm_requester with imports from chat_operator
Browse files
apps/llm_mixer/index.html
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
</head>
|
13 |
<body>
|
14 |
<div class="container">
|
15 |
-
<div id="
|
16 |
<div class="fixed-bottom m-3">
|
17 |
<div class="container-fluid">
|
18 |
<div class="row no-gutters">
|
|
|
12 |
</head>
|
13 |
<body>
|
14 |
<div class="container">
|
15 |
+
<div id="messagers-container" class="mt-3"></div>
|
16 |
<div class="fixed-bottom m-3">
|
17 |
<div class="container-fluid">
|
18 |
<div class="row no-gutters">
|
apps/llm_mixer/js/buttons_binder.js
CHANGED
@@ -51,9 +51,9 @@ export class ButtonsBinder {
|
|
51 |
}
|
52 |
}
|
53 |
async post_user_input() {
|
54 |
-
let
|
55 |
-
console.log(
|
56 |
-
this.requester = new ChatCompletionsRequester(
|
57 |
await this.requester.post();
|
58 |
}
|
59 |
bind() {
|
|
|
51 |
}
|
52 |
}
|
53 |
async post_user_input() {
|
54 |
+
let user_input_content = $("#user-input").val();
|
55 |
+
console.log(user_input_content);
|
56 |
+
this.requester = new ChatCompletionsRequester(user_input_content);
|
57 |
await this.requester.post();
|
58 |
}
|
59 |
bind() {
|
apps/llm_mixer/js/llm_requester.js
CHANGED
@@ -3,31 +3,16 @@ import {
|
|
3 |
stringify_stream_bytes,
|
4 |
} from "./stream_jsonizer.js";
|
5 |
import * as secrets from "./secrets.js";
|
6 |
-
import {
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
this.messages = messages;
|
12 |
-
}
|
13 |
-
add_message(message) {
|
14 |
-
this.messages.push(message);
|
15 |
-
}
|
16 |
-
pop_messages(n = 1) {
|
17 |
-
return this.messages.splice(-n, n);
|
18 |
-
}
|
19 |
-
extend_messages(messages) {
|
20 |
-
this.messages = this.messages.concat(messages);
|
21 |
-
}
|
22 |
-
clear() {
|
23 |
-
this.messages = [];
|
24 |
-
}
|
25 |
-
}
|
26 |
|
27 |
export class ChatCompletionsRequester {
|
28 |
constructor(
|
29 |
prompt,
|
30 |
-
model = "
|
31 |
temperature = 0,
|
32 |
messages = [],
|
33 |
endpoint,
|
@@ -41,20 +26,9 @@ export class ChatCompletionsRequester {
|
|
41 |
this.cors_proxy = cors_proxy || secrets.cors_proxy;
|
42 |
this.request_endpoint = this.cors_proxy + this.endpoint;
|
43 |
this.controller = new AbortController();
|
44 |
-
this.construct_request_params();
|
45 |
}
|
46 |
construct_request_messages() {
|
47 |
-
|
48 |
-
role: "user",
|
49 |
-
content: this.prompt,
|
50 |
-
model: this.model,
|
51 |
-
temperature: this.temperature,
|
52 |
-
};
|
53 |
-
this.messages = this.messages.concat(message);
|
54 |
-
this.request_messages = this.messages.map(({ role, content }) => ({
|
55 |
-
role,
|
56 |
-
content,
|
57 |
-
}));
|
58 |
}
|
59 |
construct_request_headers() {
|
60 |
this.request_headers = {
|
@@ -63,6 +37,7 @@ export class ChatCompletionsRequester {
|
|
63 |
};
|
64 |
}
|
65 |
construct_request_body() {
|
|
|
66 |
this.request_body = {
|
67 |
model: this.model,
|
68 |
messages: this.request_messages,
|
@@ -71,7 +46,6 @@ export class ChatCompletionsRequester {
|
|
71 |
};
|
72 |
}
|
73 |
construct_request_params() {
|
74 |
-
this.construct_request_messages();
|
75 |
this.construct_request_headers();
|
76 |
this.construct_request_body();
|
77 |
this.request_params = {
|
@@ -82,8 +56,9 @@ export class ChatCompletionsRequester {
|
|
82 |
};
|
83 |
}
|
84 |
post() {
|
85 |
-
|
86 |
-
|
|
|
87 |
return fetch(this.request_endpoint, this.request_params)
|
88 |
.then((response) => response.body)
|
89 |
.then((rb) => {
|
@@ -95,7 +70,7 @@ export class ChatCompletionsRequester {
|
|
95 |
let json_chunks = jsonize_stream_data(
|
96 |
stringify_stream_bytes(value)
|
97 |
);
|
98 |
-
|
99 |
return reader.read().then(process);
|
100 |
});
|
101 |
})
|
|
|
3 |
stringify_stream_bytes,
|
4 |
} from "./stream_jsonizer.js";
|
5 |
import * as secrets from "./secrets.js";
|
6 |
+
import {
|
7 |
+
update_message,
|
8 |
+
create_messager,
|
9 |
+
get_request_messages,
|
10 |
+
} from "./chat_operator.js";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
export class ChatCompletionsRequester {
|
13 |
constructor(
|
14 |
prompt,
|
15 |
+
model = "gpt-3.5-turbo",
|
16 |
temperature = 0,
|
17 |
messages = [],
|
18 |
endpoint,
|
|
|
26 |
this.cors_proxy = cors_proxy || secrets.cors_proxy;
|
27 |
this.request_endpoint = this.cors_proxy + this.endpoint;
|
28 |
this.controller = new AbortController();
|
|
|
29 |
}
|
30 |
construct_request_messages() {
|
31 |
+
this.request_messages = get_request_messages();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
}
|
33 |
construct_request_headers() {
|
34 |
this.request_headers = {
|
|
|
37 |
};
|
38 |
}
|
39 |
construct_request_body() {
|
40 |
+
this.construct_request_messages();
|
41 |
this.request_body = {
|
42 |
model: this.model,
|
43 |
messages: this.request_messages,
|
|
|
46 |
};
|
47 |
}
|
48 |
construct_request_params() {
|
|
|
49 |
this.construct_request_headers();
|
50 |
this.construct_request_body();
|
51 |
this.request_params = {
|
|
|
56 |
};
|
57 |
}
|
58 |
post() {
|
59 |
+
create_messager("user", this.prompt);
|
60 |
+
create_messager("assistant", "", this.model, this.temperature);
|
61 |
+
this.construct_request_params();
|
62 |
return fetch(this.request_endpoint, this.request_params)
|
63 |
.then((response) => response.body)
|
64 |
.then((rb) => {
|
|
|
70 |
let json_chunks = jsonize_stream_data(
|
71 |
stringify_stream_bytes(value)
|
72 |
);
|
73 |
+
update_message(json_chunks);
|
74 |
return reader.read().then(process);
|
75 |
});
|
76 |
})
|