diff --git a/worker.js b/worker.js index f7f2ff0..9cd7cc8 100644 --- a/worker.js +++ b/worker.js @@ -188,14 +188,15 @@ async function recognizeImage(token, imageId) { content: [ { type: 'text', - text: '请识别图片中的内容。对于数学公式和数学符号,请使用标准的LaTeX格式输出。' + - '要求:\n' + - '1. 所有数学公式和单个数学符号都要用LaTeX格式\n' + - '2. 普通文本保持原样\n' + - '3. 对于行内公式使用$单个符号$\n' + - '4. 对于独立公式块使用$$公式$$\n' + - '5. 严格保持原文的段落格式和换行\n' + - '6. 当文本明显换行时,使用\\n进行换行处理' + text: '请识别图片中的内容,并按以下要求输出:\n' + + '1. 所有数学公式和数学符号都必须使用标准的LaTeX格式\n' + + '2. 行内公式使用单个$符号包裹,如:$x^2$\n' + + '3. 独立公式块使用两个$$符号包裹,如:$$\\sum_{i=1}^n i^2$$\n' + + '4. 普通文本保持原样,不要使用LaTeX格式\n' + + '5. 保持原文的段落格式和换行\n' + + '6. 明显的换行使用\\n表示\n' + + '7. 不要输出任何额外的解释或说明\n' + + '8. 确保所有数学符号都被正确包裹在$或$$中' }, { type: 'image', image: imageId }, ], @@ -209,13 +210,17 @@ async function recognizeImage(token, imageId) { const data = await response.json(); - // 处理识别结果 + // 处理识别结果,增加额外的格式化步骤 let result = data.choices[0]?.message?.content || '识别失败'; result = result .replace(/\\(/g, '\\(') .replace(/\\)/g, '\\)') .replace(/\n{3,}/g, '\n\n') .replace(/([^\n])\n([^\n])/g, '$1\n$2') + // 确保数学公式被正确包裹 + .replace(/\$\s+/g, '$') + .replace(/\s+\$/g, '$') + .replace(/\$\$/g, '$$') .trim(); return new Response(JSON.stringify({ @@ -240,7 +245,6 @@ function getHTML() { // 添加 MathJax 支持 '', - '', '', + '', + '', '