"git@developer.sourcefind.cn:OpenDAS/ollama.git" did not exist on "37a570f962a300b45c40d1f81beeeeb026dd0776"
Commit fffd42e4 authored by Jun Siang Cheah's avatar Jun Siang Cheah
Browse files

fix: replace all instances of prompt:start and prompt:end

parent db817fcf
...@@ -473,19 +473,21 @@ export const blobToFile = (blob, fileName) => { ...@@ -473,19 +473,21 @@ export const blobToFile = (blob, fileName) => {
// {{prompt:start:<length>}} will be replaced with the first <length> characters of 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 // {{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 // Character length is used as we don't have the ability to tokenize the prompt
export const templatePrompt = (template, prompt) => { export const templatePrompt = (template: string, prompt: string) => {
template = template.replace(/{{prompt}}/g, prompt); template = template.replace(/{{prompt}}/g, prompt);
// Replace {{prompt:start:<length>}} with the first <length> characters of the prompt // Replace all instances of {{prompt:start:<length>}} with the first <length> characters of the prompt
const startMatch = template.match(/{{prompt:start:(\d+)}}/); const startRegex = /{{prompt:start:(\d+)}}/g;
if (startMatch) { let startMatch: RegExpMatchArray | null;
while ((startMatch = startRegex.exec(template)) !== null) {
const length = parseInt(startMatch[1]); const length = parseInt(startMatch[1]);
template = template.replace(startMatch[0], prompt.substring(0, length)); template = template.replace(startMatch[0], prompt.substring(0, length));
} }
// Replace {{prompt:end:<length>}} with the last <length> characters of the prompt // Replace all instances of {{prompt:end:<length>}} with the last <length> characters of the prompt
const endMatch = template.match(/{{prompt:end:(\d+)}}/); const endRegex = /{{prompt:end:(\d+)}}/g;
if (endMatch) { let endMatch: RegExpMatchArray | null;
while ((endMatch = endRegex.exec(template)) !== null) {
const length = parseInt(endMatch[1]); const length = parseInt(endMatch[1]);
template = template.replace(endMatch[0], prompt.substring(prompt.length - length)); template = template.replace(endMatch[0], prompt.substring(prompt.length - length));
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment