/** * This utility is to extract cortexso model description from README.md file * @returns */ export const extractDescription = (text?: string) => { if (!text) return text const normalizedText = removeYamlFrontMatter(text) const overviewPattern = /(?:##\s*Overview\s*\n)([\s\S]*?)(?=\n\s*##|$)/ const matches = normalizedText?.match(overviewPattern) if (matches && matches[1]) { return matches[1].trim() } return normalizedText?.slice(0, 500).trim() } /** * Remove YAML (HF metadata) front matter from content * @param content * @returns */ export const removeYamlFrontMatter = (content: string): string => { return content.replace(/^---\n([\s\S]*?)\n---\n/, '') } /** * Extract model name from repo path, e.g. cortexso/tinyllama -> tinyllama * @param modelId * @returns */ export const extractModelName = (model?: string) => { return model?.split('/')[1] ?? model } /** * Extract model name from repo path, e.g. https://huggingface.co/cortexso/tinyllama -> cortexso/tinyllama * @param modelId * @returns */ export const extractModelRepo = (model?: string) => { return model?.replace('https://huggingface.co/', '') }