from openai import OpenAI # 一、调用OCR整理出试题 client = OpenAI( api_key='sk-f6da0c787eff4b0389e4ad03a35a911f', base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", ) 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/Source.jpg", # 输入图像的最小像素阈值,小于该值图像会按原比例放大,直到总像素大于min_pixels "min_pixels": 28 * 28 * 4, # 输入图像的最大像素阈值,超过该值图像会按原比例缩小,直到总像素低于max_pixels "max_pixels": 28 * 28 * 8192 }, # qwen-vl-ocr-latest支持在以下text字段中传入Prompt,若未传入,则会使用默认的Prompt:Please output only the text content from the image without any additional descriptions or formatting. # 如调用qwen-vl-ocr-1028,模型会使用固定Prompt:Read all the text in the image.不支持用户在text中传入自定义Prompt {"type": "text", "text": prompt}, ] } ]) print(completion.choices[0].message.content) # 二、再次调用大模型整理内容 prompt = """ 我将提供一份markdown格式的试卷,请帮我整理出每道题的以下内容: 1. 题目序号 2. 题目内容(自动识别并添加$或$$包裹数学公式) 3. 选项(如果有) 4. 答案 5. 解析 要求: - 一道题一道题输出,不要使用表格 - 自动检测数学表达式并用$或$$正确包裹 - 确保公式中的特殊字符正确转义 - 除题目内容外,不要输出其它无关信息 内容如下: """ text = completion.choices[0].message.content prompt += 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) # 将上面的返回内容写入到文件 整理后的结果.md 中 with open("Res/整理后的结果.md", "w", encoding="utf-8") as f: f.write(completion.choices[0].message.content) print("保存成功!")