forked from open-webui/open-webui
feat: add {{prompt:start:length}} and {{prompt🔚length}} to title gen
This commit is contained in:
parent
8e30948de9
commit
db817fcf29
3 changed files with 29 additions and 2 deletions
|
@ -1,4 +1,5 @@
|
|||
import { OLLAMA_API_BASE_URL } from '$lib/constants';
|
||||
import { templatePrompt } from '$lib/utils';
|
||||
|
||||
export const getOllamaUrls = async (token: string = '') => {
|
||||
let error = null;
|
||||
|
@ -144,7 +145,7 @@ export const generateTitle = async (
|
|||
) => {
|
||||
let error = null;
|
||||
|
||||
template = template.replace(/{{prompt}}/g, prompt);
|
||||
template = templatePrompt(template, prompt);
|
||||
|
||||
console.log(template);
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import { OPENAI_API_BASE_URL } from '$lib/constants';
|
||||
import { templatePrompt } from '$lib/utils';
|
||||
|
||||
export const getOpenAIUrls = async (token: string = '') => {
|
||||
let error = null;
|
||||
|
@ -273,7 +274,7 @@ export const generateTitle = async (
|
|||
) => {
|
||||
let error = null;
|
||||
|
||||
template = template.replace(/{{prompt}}/g, prompt);
|
||||
template = templatePrompt(template, prompt);
|
||||
|
||||
console.log(template);
|
||||
|
||||
|
|
|
@ -467,3 +467,28 @@ export const blobToFile = (blob, fileName) => {
|
|||
const file = new File([blob], fileName, { type: blob.type });
|
||||
return file;
|
||||
};
|
||||
|
||||
// templatePrompt replaces any occurrences of the following in the template with the prompt
|
||||
// {{prompt}} will be replaced with the prompt
|
||||
// {{prompt:start:<length>}} will be replaced with the first <length> characters of the prompt
|
||||
// {{prompt:end:<length>}} will be replaced with the last <length> characters of the prompt
|
||||
// Character length is used as we don't have the ability to tokenize the prompt
|
||||
export const templatePrompt = (template, prompt) => {
|
||||
template = template.replace(/{{prompt}}/g, prompt);
|
||||
|
||||
// Replace {{prompt:start:<length>}} with the first <length> characters of the prompt
|
||||
const startMatch = template.match(/{{prompt:start:(\d+)}}/);
|
||||
if (startMatch) {
|
||||
const length = parseInt(startMatch[1]);
|
||||
template = template.replace(startMatch[0], prompt.substring(0, length));
|
||||
}
|
||||
|
||||
// Replace {{prompt:end:<length>}} with the last <length> characters of the prompt
|
||||
const endMatch = template.match(/{{prompt:end:(\d+)}}/);
|
||||
if (endMatch) {
|
||||
const length = parseInt(endMatch[1]);
|
||||
template = template.replace(endMatch[0], prompt.substring(prompt.length - length));
|
||||
}
|
||||
|
||||
return template;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue