mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
feature: derived templates
This PR adds a simple hash based method for picking context and instruct templates based on the chat template, when provided by the back end.
This commit is contained in:
@@ -218,6 +218,18 @@ router.post('/status', jsonParser, async function (request, response) {
|
||||
} catch (error) {
|
||||
console.error(`Failed to get TabbyAPI model info: ${error}`);
|
||||
}
|
||||
} else if (apiType == TEXTGEN_TYPES.KOBOLDCPP) {
|
||||
try {
|
||||
const chatTemplateUrl = baseUrl + '/api/extra/chat_template';
|
||||
const chatTemplateReply = await fetch(chatTemplateUrl);
|
||||
if (chatTemplateReply.ok) {
|
||||
response.setHeader('x-supports-chat-template', 'true');
|
||||
} else {
|
||||
console.log(`ct res = ${JSON.stringify(chatTemplateReply)}`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Failed to fetch chat template info: ${error}`);
|
||||
}
|
||||
}
|
||||
|
||||
return response.send({ result, data: data.data });
|
||||
@@ -227,6 +239,34 @@ router.post('/status', jsonParser, async function (request, response) {
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/chat_template', jsonParser, async function (request, response) {
|
||||
if (!request.body.api_server) return response.sendStatus(400);
|
||||
|
||||
try {
|
||||
const baseUrl = trimV1(request.body.api_server);
|
||||
const args = {
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
};
|
||||
|
||||
setAdditionalHeaders(request, args, baseUrl);
|
||||
|
||||
const chatTemplateUrl = baseUrl + '/api/extra/chat_template';
|
||||
const chatTemplateReply = await fetch(chatTemplateUrl, args);
|
||||
|
||||
if (!chatTemplateReply.ok) {
|
||||
console.log('Chat template endpoint is offline.');
|
||||
return response.status(400);
|
||||
}
|
||||
|
||||
/** @type {any} */
|
||||
const chatTemplate = await chatTemplateReply.json();
|
||||
return response.send(chatTemplate);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
return response.status(500);
|
||||
}
|
||||
});
|
||||
|
||||
router.post('/generate', jsonParser, async function (request, response) {
|
||||
if (!request.body) return response.sendStatus(400);
|
||||
|
||||
|
Reference in New Issue
Block a user