mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Horde compatibility
This commit is contained in:
64
server.js
64
server.js
@ -56,7 +56,7 @@ var api_key_novel;
|
|||||||
//New chats made with characters will use this new formatting.
|
//New chats made with characters will use this new formatting.
|
||||||
//Useable variable is (( humanizedISO8601Datetime ))
|
//Useable variable is (( humanizedISO8601Datetime ))
|
||||||
|
|
||||||
|
const delay = ms => new Promise(resolve => setTimeout(resolve, ms))
|
||||||
|
|
||||||
function humanizedISO8601DateTime() {
|
function humanizedISO8601DateTime() {
|
||||||
let baseDate = new Date(Date.now());
|
let baseDate = new Date(Date.now());
|
||||||
@ -225,7 +225,7 @@ app.post("/getlastversion", jsonParser, function (request, response_getlastversi
|
|||||||
});
|
});
|
||||||
|
|
||||||
//**************Kobold api
|
//**************Kobold api
|
||||||
app.post("/generate", jsonParser, function (request, response_generate = response) {
|
app.post("/generate", jsonParser, async function (request, response_generate = response) {
|
||||||
if (!request.body) return response_generate.sendStatus(400);
|
if (!request.body) return response_generate.sendStatus(400);
|
||||||
//console.log(request.body.prompt);
|
//console.log(request.body.prompt);
|
||||||
//const dataJson = JSON.parse(request.body);
|
//const dataJson = JSON.parse(request.body);
|
||||||
@ -271,24 +271,36 @@ app.post("/generate", jsonParser, function (request, response_generate = respons
|
|||||||
data: this_settings,
|
data: this_settings,
|
||||||
headers: { "Content-Type": "application/json" }
|
headers: { "Content-Type": "application/json" }
|
||||||
};
|
};
|
||||||
client.post(api_server + "/v1/generate", args, function (data, response) {
|
|
||||||
if (response.statusCode == 200) {
|
const MAX_RETRIES = 10;
|
||||||
|
const delayAmount = 3000;
|
||||||
|
for (let i = 0; i < MAX_RETRIES; i++) {
|
||||||
|
try {
|
||||||
|
const data = await postAsync(api_server + "/v1/generate", args);
|
||||||
console.log(data);
|
console.log(data);
|
||||||
response_generate.send(data);
|
return response_generate.send(data);
|
||||||
}
|
}
|
||||||
if (response.statusCode == 422) {
|
catch (error) {
|
||||||
console.log('Validation error');
|
// data
|
||||||
response_generate.send({ error: true });
|
console.log(error[0]);
|
||||||
|
|
||||||
|
// response
|
||||||
|
if (error[1]) {
|
||||||
|
switch (error[1].statusCode) {
|
||||||
|
case 503:
|
||||||
|
await delay(delayAmount);
|
||||||
|
break;
|
||||||
|
case 422:
|
||||||
|
console.log('Validation error');
|
||||||
|
case 501:
|
||||||
|
case 507:
|
||||||
|
return response_generate.send({ error: true });
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return response_generate.send({ error: true });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (response.statusCode == 501 || response.statusCode == 503 || response.statusCode == 507) {
|
}
|
||||||
console.log(data);
|
|
||||||
response_generate.send({ error: true });
|
|
||||||
}
|
|
||||||
}).on('error', function (err) {
|
|
||||||
console.log(err);
|
|
||||||
//console.log('something went wrong on the request', err.request.options);
|
|
||||||
response_generate.send({ error: true });
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//************** Text generation web UI
|
//************** Text generation web UI
|
||||||
@ -1513,15 +1525,15 @@ function putAsync(url, args) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function postAsync(url, args) {
|
function postAsync(url, args) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
client.post(url, args, (data, response) => {
|
client.post(url, args, (data, response) => {
|
||||||
if (response.statusCode >= 400) {
|
if (response.statusCode >= 400) {
|
||||||
reject(data);
|
reject([data, response]);
|
||||||
}
|
}
|
||||||
resolve(data);
|
resolve(data);
|
||||||
}).on('error', e => reject(e));
|
}).on('error', e => reject(e));
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAsync(url, args) {
|
function getAsync(url, args) {
|
||||||
|
Reference in New Issue
Block a user