60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
|
from openai import OpenAI
|
|||
|
from Config.Config import *
|
|||
|
|
|||
|
# 一、调用OCR整理出试题
|
|||
|
client = OpenAI(
|
|||
|
api_key=LLM_API_KEY,
|
|||
|
base_url=LLM_BASE_URL,
|
|||
|
)
|
|||
|
|
|||
|
prompt = "请提取图片中的试题"
|
|||
|
completion = client.chat.completions.create(
|
|||
|
model="qwen-vl-ocr-latest",
|
|||
|
messages=[
|
|||
|
{
|
|||
|
"role": "user",
|
|||
|
"content": [
|
|||
|
{
|
|||
|
"type": "image_url",
|
|||
|
"image_url": "https://ylt.oss-cn-hangzhou.aliyuncs.com/HuangHai/Test/SourceWithPhoto.jpg",
|
|||
|
"min_pixels": 28 * 28 * 4,
|
|||
|
"max_pixels": 28 * 28 * 8192
|
|||
|
},
|
|||
|
{"type": "text", "text": prompt},
|
|||
|
]
|
|||
|
}
|
|||
|
])
|
|||
|
|
|||
|
ocr_text = completion.choices[0].message.content
|
|||
|
|
|||
|
|
|||
|
prompt = """
|
|||
|
我将提供一份markdown格式的试卷,请帮我整理出每道题的以下内容:
|
|||
|
1. 题目序号
|
|||
|
2. 题目内容(自动识别并添加$或$$包裹数学公式)
|
|||
|
3. 选项(如果有)
|
|||
|
4. 答案
|
|||
|
5. 解析
|
|||
|
|
|||
|
要求:
|
|||
|
- 一道题一道题输出,不要使用表格
|
|||
|
- 自动检测数学表达式并用$或$$正确包裹
|
|||
|
- 确保公式中的特殊字符正确转义
|
|||
|
- 除题目内容外,不要输出其它无关信息
|
|||
|
|
|||
|
内容如下:
|
|||
|
"""
|
|||
|
prompt += ocr_text
|
|||
|
completion = client.chat.completions.create(
|
|||
|
model="deepseek-v3",
|
|||
|
messages=[
|
|||
|
{"role": "system", "content": "You are a helpful assistant."},
|
|||
|
{"role": "user",
|
|||
|
"content": prompt},
|
|||
|
],
|
|||
|
)
|
|||
|
print(completion.choices[0].message.content)
|
|||
|
with open("../output/数学OCR整理后的结果.md", "w", encoding="utf-8") as f:
|
|||
|
f.write(completion.choices[0].message.content)
|
|||
|
print("保存成功!")
|