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 支持
'',
- '',
'',
+ '',
+ '',
'