Spaces:
Running
Running
import { MessageBase } from './types'; | |
import { CLEANED_SEPARATOR } from './constants'; | |
const PAIRS: Record<string, string> = { | |
'β': 'β', | |
'β': 'β₯', | |
'β': 'β€', | |
'β': 'β', | |
}; | |
const MIDDLE_STARTER = 'β'; | |
const MIDDLE_SEPARATOR = 'βΏ'; | |
const ANSWERS_PREFIX = 'answers'; | |
const INPUT_PREFIX = 'input'; | |
export const generateAnswersImageMarkdown = (index: number, url: string) => { | |
return ``; | |
}; | |
export const generateInputImageMarkdown = (url: string, index = 0) => { | |
if (url.toLowerCase().endsWith('.mp4')) { | |
const prefix = 'input-video'; | |
return ``; | |
} else { | |
const prefix = 'input'; | |
return ``; | |
} | |
}; | |
export const cleanInputMessage = (content: string) => { | |
return content | |
.replace(/!\[input-.*?\)/g, '') | |
.replace(/<video[^>]*>.*?<\/video>/g, ''); | |
}; | |
export const cleanAnswerMessage = (content: string) => { | |
return content.replace(/!\[answers.*?\.png\)/g, ''); | |
}; | |
export const getCleanedUpMessages = ({ | |
content, | |
role, | |
}: Pick<MessageBase, 'role' | 'content'>) => { | |
if (content.split(CLEANED_SEPARATOR).length === 2) { | |
return { | |
logs: content.split(CLEANED_SEPARATOR)[0], | |
content: content.split(CLEANED_SEPARATOR)[1], | |
}; | |
} | |
const [logs = '', answer = ''] = content.split('<ANSWER>'); | |
// console.log(logs); | |
// const cleanedLogs = []; | |
// let left = 0; | |
// let right = 0; | |
// while (right < logs.length) { | |
// if (Object.keys(PAIRS).includes(content[right])) { | |
// cleanedLogs.push(content.substring(left, right)); | |
// left = right++; | |
// while ( | |
// right < content.length && | |
// PAIRS[content[left]] !== content[right] | |
// ) { | |
// right++; | |
// } | |
// if (content[left] === MIDDLE_STARTER) { | |
// // add the text alignment so it can be shown as a table | |
// const separators = logs | |
// .substring(left, right) | |
// .split(MIDDLE_SEPARATOR).length; | |
// if (separators > 0) { | |
// cleanedLogs.push( | |
// Array(separators + 1) | |
// .fill('|') | |
// .join(' :- '), | |
// ); | |
// } | |
// } | |
// left = ++right; | |
// } else { | |
// right++; | |
// } | |
// } | |
// cleanedLogs.push(content.substring(left, right)); | |
const [answerText, imagesStr = ''] = answer.split('<VIZ>'); | |
const [imagesArrayStr, ...rest] = imagesStr.split('</VIZ>'); | |
const images = imagesArrayStr | |
.split('</IMG>') | |
.map(str => str.replace('<IMG>', '')) | |
.slice(0, -1); | |
return { | |
logs: logs, | |
content: | |
answerText.replace('</</ANSWER>', '').replace('</ANSWER>', '') + | |
'\n\n' + | |
images | |
.map((_, index) => generateAnswersImageMarkdown(index, '/loading.gif')) | |
.join('') + | |
rest.join(''), | |
images: images, | |
}; | |
}; | |