Merge branch 'staging' of https://github.com/Yokayo/SillyTavern into staging

88ad22196c59c13638e3b29bdd9d9f42d0c80034

Yokayo <nonameutubecomm@gmail.com>

4 files changed, +10 -13Ignore whitespace
public/index.html+2 -0
@@ -2800,6 +2800,8 @@
28002800 <option value="claude-3-5-sonnet-latest">claude-3-5-sonnet-latest</option>
28012801 <option value="claude-3-5-sonnet-20241022">claude-3-5-sonnet-20241022</option>
28022802 <option value="claude-3-5-sonnet-20240620">claude-3-5-sonnet-20240620</option>
2803+ <option value="claude-3-5-haiku-latest">claude-3-5-haiku-latest</option>
2804+ <option value="claude-3-5-haiku-20241022">claude-3-5-haiku-20241022</option>
28032805 <option value="claude-3-opus-20240229">claude-3-opus-20240229</option>
28042806 <option value="claude-3-sonnet-20240229">claude-3-sonnet-20240229</option>
28052807 <option value="claude-3-haiku-20240307">claude-3-haiku-20240307</option>
public/scripts/extensions/caption/settings.html+2 -0
@@ -46,6 +46,8 @@
4646 <option data-type="anthropic" value="claude-3-5-sonnet-latest">claude-3-5-sonnet-latest</option>
4747 <option data-type="anthropic" value="claude-3-5-sonnet-20241022">claude-3-5-sonnet-20241022</option>
4848 <option data-type="anthropic" value="claude-3-5-sonnet-20240620">claude-3-5-sonnet-20240620</option>
49+ <option data-type="anthropic" value="claude-3-5-haiku-latest">claude-3-5-haiku-latest</option>
50+ <option data-type="anthropic" value="claude-3-5-haiku-20241022">claude-3-5-haiku-20241022</option>
4951 <option data-type="anthropic" value="claude-3-opus-20240229">claude-3-opus-20240229</option>
5052 <option data-type="anthropic" value="claude-3-sonnet-20240229">claude-3-sonnet-20240229</option>
5153 <option data-type="anthropic" value="claude-3-haiku-20240307">claude-3-haiku-20240307</option>
public/scripts/openai.js+4 -0
@@ -1813,6 +1813,10 @@ async function sendOpenAIRequest(type, messages, signal) {
18131813 biasCache = logit_bias;
18141814 }
18151815
1816+ if (Object.keys(logit_bias).length === 0) {
1817+ logit_bias = undefined;
1818+ }
1819+
18161820 if (isScale && oai_settings.use_alt_scale) {
18171821 return sendAltScaleRequest(messages, logit_bias, signal, type);
18181822 }
src/endpoints/backends/chat-completions.js+2 -13
@@ -1046,20 +1046,9 @@ router.post('/generate', jsonParser, function (request, response) {
10461046 const responseText = await errorResponse.text();
10471047 const errorData = tryParse(responseText);
10481048
1049- const statusMessages = {
1049+ const message = errorResponse.statusText || 'Unknown error occurred';
1050- 400: 'Bad request',
1051- 401: 'Unauthorized',
1052- 402: 'Credit limit reached',
1053- 403: 'Forbidden',
1054- 404: 'Not found',
1055- 429: 'Too many requests',
1056- 451: 'Unavailable for legal reasons',
1057- 502: 'Bad gateway',
1058- };
1059-
1060- const message = errorData?.error?.message || statusMessages[errorResponse.status] || 'Unknown error occurred';
10611050 const quota_error = errorResponse.status === 429 && errorData?.error?.type === 'insufficient_quota';
10621051 console.log(message, responseText);
10631052
10641053 if (!response.headersSent) {
10651054 response.send({ error: { message }, quota_error: quota_error });