Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Group tokens randomly (#964)
Browse files* Group tokens together
* remove unused comment
* Send final buffer at the end if needed
src/routes/conversation/[id]/+server.ts
CHANGED
|
@@ -409,6 +409,8 @@ export async function POST({ request, locals, params, getClientAddress }) {
|
|
| 409 |
|
| 410 |
let hasError = false;
|
| 411 |
|
|
|
|
|
|
|
| 412 |
try {
|
| 413 |
const endpoint = await model.getEndpoint();
|
| 414 |
for await (const output of await endpoint({
|
|
@@ -419,12 +421,18 @@ export async function POST({ request, locals, params, getClientAddress }) {
|
|
| 419 |
})) {
|
| 420 |
// if not generated_text is here it means the generation is not done
|
| 421 |
if (!output.generated_text) {
|
| 422 |
-
// else we get the next token
|
| 423 |
if (!output.token.special) {
|
| 424 |
-
update
|
| 425 |
-
|
| 426 |
-
|
| 427 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 428 |
// abort check
|
| 429 |
const date = abortedGenerations.get(convId.toString());
|
| 430 |
if (date && date > promptedAt) {
|
|
@@ -466,6 +474,13 @@ export async function POST({ request, locals, params, getClientAddress }) {
|
|
| 466 |
message: "No output was generated. Something went wrong.",
|
| 467 |
});
|
| 468 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 469 |
}
|
| 470 |
|
| 471 |
await collections.conversations.updateOne(
|
|
|
|
| 409 |
|
| 410 |
let hasError = false;
|
| 411 |
|
| 412 |
+
let buffer = "";
|
| 413 |
+
|
| 414 |
try {
|
| 415 |
const endpoint = await model.getEndpoint();
|
| 416 |
for await (const output of await endpoint({
|
|
|
|
| 421 |
})) {
|
| 422 |
// if not generated_text is here it means the generation is not done
|
| 423 |
if (!output.generated_text) {
|
|
|
|
| 424 |
if (!output.token.special) {
|
| 425 |
+
// 33% chance to send the stream update, with a max buffer size of 30 chars
|
| 426 |
+
buffer += output.token.text;
|
| 427 |
+
|
| 428 |
+
if (Math.random() < 0.33 || buffer.length > 30) {
|
| 429 |
+
update({
|
| 430 |
+
type: "stream",
|
| 431 |
+
token: buffer,
|
| 432 |
+
});
|
| 433 |
+
buffer = "";
|
| 434 |
+
}
|
| 435 |
+
|
| 436 |
// abort check
|
| 437 |
const date = abortedGenerations.get(convId.toString());
|
| 438 |
if (date && date > promptedAt) {
|
|
|
|
| 474 |
message: "No output was generated. Something went wrong.",
|
| 475 |
});
|
| 476 |
}
|
| 477 |
+
|
| 478 |
+
if (buffer) {
|
| 479 |
+
update({
|
| 480 |
+
type: "stream",
|
| 481 |
+
token: buffer,
|
| 482 |
+
});
|
| 483 |
+
}
|
| 484 |
}
|
| 485 |
|
| 486 |
await collections.conversations.updateOne(
|