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 { OLLAMA_API_BASE_URL } from '$lib/constants'; | ||||||
|  | import { templatePrompt } from '$lib/utils'; | ||||||
| 
 | 
 | ||||||
| export const getOllamaUrls = async (token: string = '') => { | export const getOllamaUrls = async (token: string = '') => { | ||||||
| 	let error = null; | 	let error = null; | ||||||
|  | @ -144,7 +145,7 @@ export const generateTitle = async ( | ||||||
| ) => { | ) => { | ||||||
| 	let error = null; | 	let error = null; | ||||||
| 
 | 
 | ||||||
| 	template = template.replace(/{{prompt}}/g, prompt); | 	template = templatePrompt(template, prompt); | ||||||
| 
 | 
 | ||||||
| 	console.log(template); | 	console.log(template); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,5 @@ | ||||||
| import { OPENAI_API_BASE_URL } from '$lib/constants'; | import { OPENAI_API_BASE_URL } from '$lib/constants'; | ||||||
|  | import { templatePrompt } from '$lib/utils'; | ||||||
| 
 | 
 | ||||||
| export const getOpenAIUrls = async (token: string = '') => { | export const getOpenAIUrls = async (token: string = '') => { | ||||||
| 	let error = null; | 	let error = null; | ||||||
|  | @ -273,7 +274,7 @@ export const generateTitle = async ( | ||||||
| ) => { | ) => { | ||||||
| 	let error = null; | 	let error = null; | ||||||
| 
 | 
 | ||||||
| 	template = template.replace(/{{prompt}}/g, prompt); | 	template = templatePrompt(template, prompt); | ||||||
| 
 | 
 | ||||||
| 	console.log(template); | 	console.log(template); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -467,3 +467,28 @@ export const blobToFile = (blob, fileName) => { | ||||||
| 	const file = new File([blob], fileName, { type: blob.type }); | 	const file = new File([blob], fileName, { type: blob.type }); | ||||||
| 	return file; | 	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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jun Siang Cheah
						Jun Siang Cheah