main
HuangHai 2 weeks ago
parent 1542a6d6a4
commit 2dba372235

@ -0,0 +1,46 @@
#### 一、依赖环境
- 1、$Libreoffice$
https://zh-cn.libreoffice.org/
```sh
# 下载的版本:
https://mirrors.nju.edu.cn/tdf/libreoffice/stable/25.2.4/win/x86_64/LibreOffice_25.2.4_Win_x86-64.msi
```
> **注**:因为后面要使用的$MinerU$能力是将$PDF$转为$markdown$,所以需要一个将$Office$转成$PDF$的功能
下载完成后,安装即可。
- 2、$RAGAnything$
```cmd
# 安装RagAnything
pip install raganything pycocotools timm detectron2 sse_starlette
# 安装包
# pip install detectron2 --extra-index-url https://myhloli.github.io/wheels/
# 下载模型
mineru-models-download
```
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250706152846354.png)
#### 二、代码调试
- 将soffice.exe添加到环境变量
- ```
C:\Program Files\LibreOffice\program
D:\anaconda3\envs\py310\Scripts
```
![](https://dsideal.obs.cn-north-1.myhuaweicloud.com/HuangHai/BlogImages/%7Byear%7D/%7Bmonth%7D/%7Bmd5%7D.%7BextName%7D/20250707135645685.png)
- **注意**:需要提前配置好环境变量后,再进入$PyCharm$进行调试,因为我发现,如果是在打开$PyCharm$的前提下,添加了环境就是$PyCharm$里面的代码是检测不到的。

@ -0,0 +1,83 @@
import asyncio
import os
import shutil
from raganything import RAGAnything, RAGAnythingConfig
from Util.RagUtil import create_llm_model_func, create_vision_model_func, create_embedding_func
import logging
# 在程序开始时添加以下配置
logging.basicConfig(
level=logging.INFO, # 设置日志级别为INFO
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
# 或者如果你想更详细地控制日志输出
logger = logging.getLogger('lightrag')
logger.setLevel(logging.INFO)
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger.addHandler(handler)
async def main():
# 要处理的文件路径
# file_path = "static/Txt/化学方程式_CHEMISTRY_1.docx"
# file_path = "static/Txt/小学数学教学中的若干问题_MATH_1.docx"
file_path = "static/Txt/Math.png"
WORKING_DIR = "./Topic/MathOcr"
# 删除output目录下的所有文件
output_dir = "./output"
shutil.rmtree(output_dir, ignore_errors=True)
os.makedirs(output_dir, exist_ok=True)
# 删除WORKING_DIR下的所有文件
shutil.rmtree(WORKING_DIR, ignore_errors=True)
os.makedirs(WORKING_DIR, exist_ok=True)
# 指定最终的索引生成目录,启动索引生成
config = RAGAnythingConfig(
working_dir=WORKING_DIR,
mineru_parse_method="auto",
enable_image_processing=True, # 处理图片
enable_table_processing=True, # 处理表格
enable_equation_processing=True, # 处理公式
)
# 自定义的大模型函数
llm_model_func = create_llm_model_func()
# 自定义的可视模型函数
vision_model_func = create_vision_model_func(llm_model_func)
# 自定义的嵌入函数
embedding_func = create_embedding_func()
rag = RAGAnything(
config=config,
llm_model_func=llm_model_func,
vision_model_func=vision_model_func,
embedding_func=embedding_func,
)
await rag.process_document_complete(
file_path=file_path,
output_dir=output_dir,
parse_method="auto",
# MinerU特殊参数 - 支持的所有kwargs
lang="ch", # 文档语言优化(如:"ch", "en", "ja"
# device="cuda:0", # 推理设备:"cpu", "cuda", "cuda:0", "npu", "mps"
# start_page=0, # 起始页码0为基准适用于PDF
# end_page=10, # 结束页码0为基准适用于PDF
formula=True, # 启用公式解析
table=True, # 启用表格解析
backend="pipeline", # 解析后端:"pipeline", "vlm-transformers"等
source="local", # 模型源:"huggingface", "modelscope", "local"
# RAGAnything标准参数
display_stats=True, # 显示内容统计信息
split_by_character=None, # 可选的文本分割字符
doc_id=None, # 可选的文档ID
)
if __name__ == "__main__":
asyncio.run(main())

@ -0,0 +1,31 @@
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量请用百炼API Key将下行替换为api_key="sk-xxx",
api_key='sk-f6da0c787eff4b0389e4ad03a35a911f',
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-vl-ocr-latest",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": "https://img.alicdn.com/imgextra/i2/O1CN01ktT8451iQutqReELT_!!6000000004408-0-tps-689-487.jpg",
# 输入图像的最小像素阈值小于该值图像会按原比例放大直到总像素大于min_pixels
"min_pixels": 28 * 28 * 4,
# 输入图像的最大像素阈值超过该值图像会按原比例缩小直到总像素低于max_pixels
"max_pixels": 28 * 28 * 8192
},
# qwen-vl-ocr-latest支持在以下text字段中传入Prompt若未传入则会使用默认的PromptPlease output only the text content from the image without any additional descriptions or formatting.
# 如调用qwen-vl-ocr-1028模型会使用固定PromptRead all the text in the image.不支持用户在text中传入自定义Prompt
{"type": "text",
"text": "请提取车票图像中的发票号码、车次、起始站、终点站、发车日期和时间点、座位号、席别类型、票价、身份证号码、购票人姓名。要求准确无误的提取上述关键信息、不要遗漏和捏造虚假信息,模糊或者强光遮挡的单个文字可以用英文问号?代替。返回数据格式以json方式输出格式为{'发票号码''xxx', '车次''xxx', '起始站''xxx', '终点站''xxx', '发车日期和时间点''xxx', '座位号''xxx', '席别类型''xxx','票价':'xxx', '身份证号码''xxx', '购票人姓名''xxx'"},
]
}
])
print(completion.choices[0].message.content)

@ -0,0 +1,89 @@
# 024年普通高等学校招生全国统一考试
# 数学
本试卷共4页22小题满分150分。考试用时120分钟。
意事项1答题前请务必将自已的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题卡上。用2B铅笔将试卷类型A填涂在答题卡相应位置上。将条形码横贴在答题卡右上角“条形码粘贴处”。2.作答选择题时选出每小题答案后用2B铅笔把答题卡上对应题目选项的答案信息点涂黑如需改动用橡皮擦干净后再选涂其他答案答案不能答在试卷上。3.非选择题必须用黑色字迹钢笔或签字笔作答答案必须写在答题卡各题目指定区域内相应位置上如需改动先划掉原来的答案然后再写上新的答案不准使用铅笔和涂改液。不按以上要求作答的答案无效。4.考生必须保持答题卡的整洁。考试结束后,将试卷和答题卡一并交回。
# 一、选择题本大题共8小题每小题5分共计40分.每小题给出的四个选项中,只有一个选项是正确的,请把正确的选项填涂在答题卡相应的位置上.
1.已知集合A={x|5<x<5}B={3,1,0,2,3}则A∩B=
A.(-1.0) B.(2.3} C.(-3,-1.0) D.(-1,0,2 2.三 =1+i则z=
A.-1-i B.-1+i C.1-i D.1+i3.已知向量a=(0,1)b=(2,x)若b⊥(b4a)则x=
A.-2 B.-1 C.1 D.2 4.已知cos(α+β)=mtanαtanβ=2则cos(α−β)=
A.-3m B.\a\$ c. m D.3m ,已知圆柱和圆锥的底面半径相等,侧面积相等,且它们的高均为√,则圆锥的体积为
A.2√\}\$ \$B.3√\n}\$ \$C.6\\$ D.9\\$
6.已知函数f(x)= -x-2ax-a,x<0Rale+ln(x+1).x0
A.(-20,0] B. [-1.0] C. [-1.1] D.[0,+)
7.当xe[0.2n]时曲线y=sinx与y=2sin(3x-)的交点个数为
A.3 B.4 C.6 D.8
8.已知函数f(x)的定义域为Rf(x)>f(x1)+f(x2)且当x<3f(x)=xA.f(10)>100 B.f(20)>1000 C.f(10)<1000D.f(20)<100003618.60
9.为了解推动出口后的亩收入单位万元情况从该种植区抽取样本得到推动出口后亩收入的样本均值2.1,样本方差=0.01已知该种植区以往的亩收入X服从正态分布N(1.8,0.1²)假设推动出口后的亩收入Y服从正态分布(x,)若随机变量Z服从正态分布N(μσ)则P(Z<+)≈0.8413
A.P(X>2)>0.2 B.P(X>2)<0.5
C.P(Y>2)>0.5 D.P(Y>2)<0.8
10.设函数f(x)=(x1)(x4),则
A.x=3是f(x)的极小值点 B.当0<x<1f(x)<f(x)C.1<x<2-4<f(2x-1)<0 D.-1<x<0f(2x)>f(x)
11.造型可以做成关丽的丝带将其看作图中曲线C的一部分.已知C过坐标原点O且C上的点满足横坐标大于-2到点F(2,0)的距离与到定直线x=a(a<0)4
![](images/59086cc384346487ce511d49671d1292dc0c811a3ee51527fda22ad5320566cc.jpg)
A.a=-2
B.点(2√2,0)在C上
C.C在第一象限的点的纵坐标的最大值为1
D.当点(x3)在C上时≤x+2
# 三、填空题本大题共3小题每小题5分共计15分
12.设双曲线C =>0,b>0)的左右焦点分别为FF2过作平行于y轴的直 }\$ 线交C于A、B两点若|FA=13|AB|=10则C的离心率为_ 13.若曲线在点(0,1)处的切线也是曲线y=ln(x+1)+a的切线则a=_
14.甲乙两人各有四张卡片每张卡片上标有一个数字假的卡片上分别标有数字1357乙的卡片上分别标有数字2468.两人进行四轮比赛在每轮比赛中两人各自从自己持有的卡片中随机选一张并比较所选卡片上的数字大小数字大的人得1分数字小的人得0分然后各白弃置此轮所选的卡片弃置的卡片在此后的轮次中不能使用则四轮比赛后甲的总得分不小于2的概率为
# 四、解答题本题共6小题共70分。解答应写出文字说明、证明过程或演算步骤。15.13分
记△ABC的内角ABC的对边分别为abc已知sinC=√coB。
^{+b²-c{=√2ab.
1求B
2若△ABC的面积为3+√求c.
16.15分
=1(a>b>0)上两点.\$b{r}\$
1求C的离心率
2若过P的直线I交C于另一点B且△ABP的面积为9求I的方程.
17.15分
如图四棱锥P-ABCD中PA⊥底面ABCDPA=AC=2BC=1AB=√.1若AD⊥PB证明AD//平面PBC(2)若AD⊥DC且二面角A-CP-D的正弦值为√2\$7求AD.
![](images/68816d467f0086c289a436af04fad25fde27512b22554b1094715129ecce776e.jpg)
18.17分
已知函数f(x)=lnx +αx+b(x1).2-x
1若b=0且f(x)≥0求a的最小值
2证明曲线y=f(x)是中心对称图形;
3若f(x)>2当且仅当1<x<2b.
19.17分
设m为正整数数列aq2"2是公差不为0的等差数列若从中删去两项a 和a(i<j)4mm4 aq2dm2(i,j).
(1)写出所有的(i)1≤i<j6使aq2"a(i,j)2m3aqq2m2(2,13)(3124m+2ij(i<)aq2q2(,)PP_

@ -0,0 +1,221 @@
[
{
"type": "text",
"text": "024年普通高等学校招生全国统一考试",
"text_level": 1,
"page_idx": 0
},
{
"type": "text",
"text": "数学",
"text_level": 1,
"page_idx": 0
},
{
"type": "text",
"text": "本试卷共4页22小题满分150分。考试用时120分钟。",
"page_idx": 0
},
{
"type": "text",
"text": "意事项1答题前请务必将自已的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题卡上。用2B铅笔将试卷类型A填涂在答题卡相应位置上。将条形码横贴在答题卡右上角“条形码粘贴处”。2.作答选择题时选出每小题答案后用2B铅笔把答题卡上对应题目选项的答案信息点涂黑如需改动用橡皮擦干净后再选涂其他答案答案不能答在试卷上。3.非选择题必须用黑色字迹钢笔或签字笔作答答案必须写在答题卡各题目指定区域内相应位置上如需改动先划掉原来的答案然后再写上新的答案不准使用铅笔和涂改液。不按以上要求作答的答案无效。4.考生必须保持答题卡的整洁。考试结束后,将试卷和答题卡一并交回。",
"page_idx": 0
},
{
"type": "text",
"text": "一、选择题本大题共8小题每小题5分共计40分.每小题给出的四个选项中,只有一个选项是正确的,请把正确的选项填涂在答题卡相应的位置上.",
"text_level": 1,
"page_idx": 0
},
{
"type": "text",
"text": "1.已知集合A={x|5<x<5}B={3,1,0,2,3}则A∩B= ",
"page_idx": 0
},
{
"type": "text",
"text": "A.(-1.0) B.(2.3} C.(-3,-1.0) D.(-1,0,2 2.三 =1+i则z= ",
"page_idx": 0
},
{
"type": "text",
"text": "A.-1-i B.-1+i C.1-i D.1+i3.已知向量a=(0,1)b=(2,x)若b⊥(b4a)则x=",
"page_idx": 0
},
{
"type": "text",
"text": "A.-2 B.-1 C.1 D.2 4.已知cos(α+β)=mtanαtanβ=2则cos(α−β)= ",
"page_idx": 0
},
{
"type": "text",
"text": "A.-3m B.\\a\\$ c. m D.3m ,已知圆柱和圆锥的底面半径相等,侧面积相等,且它们的高均为√,则圆锥的体积为 ",
"page_idx": 0
},
{
"type": "text",
"text": "",
"page_idx": 0
},
{
"type": "text",
"text": "A.2√\\}\\$ \\$B.3√\\n}\\$ \\$C.6\\\\$ D.9\\\\$ ",
"page_idx": 0
},
{
"type": "text",
"text": "6.已知函数f(x)= -x-2ax-a,x<0₂在R上单调递增则a的取值范围是le+ln(x+1).x≥0",
"page_idx": 0
},
{
"type": "text",
"text": "A.(-20,0] B. [-1.0] C. [-1.1] D.[0,+) ",
"page_idx": 0
},
{
"type": "text",
"text": "7.当xe[0.2n]时曲线y=sinx与y=2sin(3x-)的交点个数为 ",
"page_idx": 0
},
{
"type": "text",
"text": "A.3 B.4 C.6 D.8 ",
"page_idx": 0
},
{
"type": "text",
"text": "8.已知函数f(x)的定义域为Rf(x)>f(x1)+f(x2)且当x<3时f(x)=x则下列结论中一定正确的是A.f(10)>100 B.f(20)>1000 C.f(10)<1000D.f(20)<10000二、选择题本大题共3小题每小题6分共计18分.每小题给出的四个选项中有多项符合题目要求。全部选对得6分选对但不全的得部分分有选错的得0分。",
"page_idx": 0
},
{
"type": "text",
"text": "",
"page_idx": 0
},
{
"type": "text",
"text": "9.为了解推动出口后的亩收入单位万元情况从该种植区抽取样本得到推动出口后亩收入的样本均值2.1,样本方差=0.01已知该种植区以往的亩收入X服从正态分布N(1.8,0.1²)假设推动出口后的亩收入Y服从正态分布(x,)若随机变量Z服从正态分布N(μσ)则P(Z<+)≈0.8413",
"page_idx": 0
},
{
"type": "text",
"text": "A.P(X>2)>0.2 B.P(X>2)<0.5 \nC.P(Y>2)>0.5 D.P(Y>2)<0.8",
"page_idx": 0
},
{
"type": "text",
"text": "10.设函数f(x)=(x1)(x4),则",
"page_idx": 0
},
{
"type": "text",
"text": "A.x=3是f(x)的极小值点 B.当0<x<1时f(x)<f(x)C.当1<x<2时-4<f(2x-1)<0 D.当-1<x<0时f(2x)>f(x)",
"page_idx": 0
},
{
"type": "text",
"text": "11.造型可以做成关丽的丝带将其看作图中曲线C的一部分.已知C过坐标原点O且C上的点满足横坐标大于-2到点F(2,0)的距离与到定直线x=a(a<0)的距离之积为4则",
"page_idx": 0
},
{
"type": "image",
"img_path": "images/59086cc384346487ce511d49671d1292dc0c811a3ee51527fda22ad5320566cc.jpg",
"image_caption": [],
"image_footnote": [],
"page_idx": 0
},
{
"type": "text",
"text": "A.a=-2 \nB.点(2√2,0)在C上 \nC.C在第一象限的点的纵坐标的最大值为1 \nD.当点(x3)在C上时≤x+2",
"page_idx": 0
},
{
"type": "text",
"text": "三、填空题本大题共3小题每小题5分共计15分",
"text_level": 1,
"page_idx": 0
},
{
"type": "text",
"text": "12.设双曲线C =>0,b>0)的左右焦点分别为FF2过作平行于y轴的直 }\\$ 线交C于A、B两点若|FA=13|AB|=10则C的离心率为_ 13.若曲线在点(0,1)处的切线也是曲线y=ln(x+1)+a的切线则a=_ ",
"page_idx": 0
},
{
"type": "text",
"text": "14.甲乙两人各有四张卡片每张卡片上标有一个数字假的卡片上分别标有数字1357乙的卡片上分别标有数字2468.两人进行四轮比赛在每轮比赛中两人各自从自己持有的卡片中随机选一张并比较所选卡片上的数字大小数字大的人得1分数字小的人得0分然后各白弃置此轮所选的卡片弃置的卡片在此后的轮次中不能使用则四轮比赛后甲的总得分不小于2的概率为",
"page_idx": 0
},
{
"type": "text",
"text": "四、解答题本题共6小题共70分。解答应写出文字说明、证明过程或演算步骤。15.13分",
"text_level": 1,
"page_idx": 0
},
{
"type": "text",
"text": "记△ABC的内角ABC的对边分别为abc已知sinC=√coB。",
"page_idx": 0
},
{
"type": "text",
"text": "^{+b²-c{=√2ab. ",
"page_idx": 0
},
{
"type": "text",
"text": "1求B \n2若△ABC的面积为3+√求c.",
"page_idx": 0
},
{
"type": "text",
"text": "16.15分",
"page_idx": 0
},
{
"type": "text",
"text": "=1(a>b>0)上两点.\\$b{r}\\$ \n1求C的离心率 \n2若过P的直线I交C于另一点B且△ABP的面积为9求I的方程.",
"page_idx": 0
},
{
"type": "text",
"text": "17.15分",
"page_idx": 0
},
{
"type": "text",
"text": "如图四棱锥P-ABCD中PA⊥底面ABCDPA=AC=2BC=1AB=√.1若AD⊥PB证明AD//平面PBC(2)若AD⊥DC且二面角A-CP-D的正弦值为√2\\$7求AD.",
"page_idx": 0
},
{
"type": "image",
"img_path": "images/68816d467f0086c289a436af04fad25fde27512b22554b1094715129ecce776e.jpg",
"image_caption": [],
"image_footnote": [],
"page_idx": 0
},
{
"type": "text",
"text": "18.17分",
"page_idx": 0
},
{
"type": "text",
"text": "已知函数f(x)=lnx +αx+b(x1).2-x \n1若b=0且f(x)≥0求a的最小值 \n2证明曲线y=f(x)是中心对称图形; \n3若f(x)>2当且仅当1<x<2求b的取值范围.",
"page_idx": 0
},
{
"type": "text",
"text": "19.17分",
"page_idx": 0
},
{
"type": "text",
"text": "设m为正整数数列aq2\"2是公差不为0的等差数列若从中删去两项a 和a(i<j)后剩余的4m项可被平均分为m组且每组的4个数都能构成等差数列则称数 列aq2dm2是(i,j)—可分数列. ",
"page_idx": 0
},
{
"type": "text",
"text": "(1)写出所有的(i)1≤i<j≤6使得数列aq2\"a是(i,j)一可分数列2当m≥3时证明数列aqq2m2是(2,13)—可分数列:(3从124m+2中一次任取两个数i和j(i<)记数列aq2q2是(,)可分数列的概率为P证明P_",
"page_idx": 0
}
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save