做哪一类的网站可以短时间变现/编程培训班学费一般多少钱

做哪一类的网站可以短时间变现,编程培训班学费一般多少钱,万网域名解析地址,模板免费网站基于streamlit与olmOCR大模型实现的pdf提取工具 import os import json import subprocess import pandas as pd from pathlib import Path import shutil import time import re import streamlit as st# 创建工作目录 WORKSPACE_DIR "olmocr_workspace" os.maked…

基于streamlit与olmOCR大模型实现的pdf提取工具

import os
import json
import subprocess
import pandas as pd
from pathlib import Path
import shutil
import time
import re
import streamlit as st# 创建工作目录
WORKSPACE_DIR = "olmocr_workspace"
os.makedirs(WORKSPACE_DIR, exist_ok=True)def modify_html_for_better_display(html_content):"""修改HTML以便在Streamlit中更好地显示"""if not html_content:return html_content# 增加容器宽度html_content = html_content.replace('<div class="container">', '<div class="container" style="max-width: 100%; width: 100%;">')# 增加文本大小html_content = html_content.replace('<style>', '<style>\nbody {font-size: 16px;}\n.text-content {font-size: 16px; line-height: 1.5;}\n')# 调整图像和文本部分的大小比例html_content = html_content.replace('<div class="row">', '<div class="row" style="display: flex; flex-wrap: wrap;">')html_content = html_content.replace('<div class="col-md-6">', '<div class="col-md-6" style="flex: 0 0 50%; max-width: 50%; padding: 15px;">')# 增加页面之间的间距html_content = html_content.replace('<div class="page">', '<div class="page" style="margin-bottom: 30px; border-bottom: 1px solid #ccc; padding-bottom: 20px;">')# 增加图像大小html_content = re.sub(r'<img([^>]*)style="([^"]*)"', r'<img\1style="max-width: 100%; height: auto; \2"', html_content)# 添加缩放控制zoom_controls = """<div style="position: fixed; bottom: 20px; right: 20px; background: #fff; padding: 10px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.2); z-index: 1000;"><button onclick="document.body.style.zoom = parseFloat(document.body.style.zoom || 1) + 0.1;" style="margin-right: 5px;">放大</button><button onclick="document.body.style.zoom = parseFloat(document.body.style.zoom || 1) - 0.1;">缩小</button></div>"""html_content = html_content.replace('</body>', f'{zoom_controls}</body>')return html_contentdef process_pdf(pdf_file):"""处理PDF文件并返回结果"""if pdf_file is None:return "请上传PDF文件", "", None, None# 创建一个唯一的工作目录timestamp = int(time.time())work_dir = os.path.join(WORKSPACE_DIR, f"job_{timestamp}")os.makedirs(work_dir, exist_ok=True)# 复制PDF文件pdf_path = os.path.join(work_dir, "input.pdf")with open(pdf_path, "wb") as f:f.write(pdf_file.read())# 构建命令并执行cmd = ["python", "-m", "olmocr.pipeline", work_dir, "--pdfs", pdf_path]try:# 执行命令,等待完成process = subprocess.run(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,text=True,check=True)# 命令输出log_text = process.stdout# 检查结果目录results_dir = os.path.join(work_dir, "results")if not os.path.exists(results_dir):return f"处理完成,但未生成结果目录\n\n日志输出:\n{log_text}", "", None, None# 查找输出文件output_files = list(Path(results_dir).glob("output_*.jsonl"))if not output_files:return f"处理完成,但未找到输出文件\n\n日志输出:\n{log_text}", "", None, None# 读取JSONL文件output_file = output_files[0]with open(output_file, "r") as f:content = f.read().strip()if not content:return f"输出文件为空\n\n日志输出:\n{log_text}", "", None, None# 解析JSONresult = json.loads(content)extracted_text = result.get("text", "未找到文本内容")# 生成HTML预览try:preview_cmd = ["python", "-m", "olmocr.viewer.dolmaviewer", str(output_file)]subprocess.run(preview_cmd, check=True)except Exception as e:log_text += f"\n生成HTML预览失败: {str(e)}"# 查找HTML文件html_files = list(Path("dolma_previews").glob("*.html"))html_content = ""if html_files:try:with open(html_files[0], "r", encoding="utf-8") as hf:html_content = hf.read()# 修改HTML以更好地显示html_content = modify_html_for_better_display(html_content)except Exception as e:log_text += f"\n读取HTML预览失败: {str(e)}"# 创建元数据表格metadata = result.get("metadata", {})meta_rows = []for key, value in metadata.items():meta_rows.append([key, value])df = pd.DataFrame(meta_rows, columns=["属性", "值"])return log_text, extracted_text, html_content, dfexcept subprocess.CalledProcessError as e:return f"命令执行失败: {e.stderr}", "", None, Noneexcept Exception as e:return f"处理过程中发生错误: {str(e)}", "", None, None# 设置Streamlit应用
st.title("一个黑客创业者:基于streamlit和olmOCR PDF文本提取工具")# 文件上传
uploaded_file = st.file_uploader("上传PDF文件", type="pdf")if uploaded_file is not None:st.button("处理PDF", on_click=lambda: process_and_display(uploaded_file))def process_and_display(pdf_file):log_text, extracted_text, html_content, df = process_pdf(pdf_file)st.header("处理日志")st.text(log_text)st.header("提取的文本")st.text_area("", value=extracted_text, height=200)if html_content:st.header("HTML预览")st.components.v1.html(html_content, height=800, scrolling=True)if df is not None and not df.empty:st.header("文档元数据")st.dataframe(df)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五模型对比!Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量时间序列预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 光伏功率预测&#xff01;五模型对比&#xff01;Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量时间序列预测(Matlab2023b 多输入单输出) 1.程序已经调试好&#xff0c;替换数据集后&#xff0c;仅运…

SQLMesh 系列教程:Airbnb数据分析项目实战

在本文中&#xff0c;我们将探讨如何利用dbt项目的代码库来实现一个简单的SQLMesh项目。本文的基础是基于Udemy讲师为dbt课程创建的示例项目&#xff0c;可以在这个GitHub repo中获得。这个dbt项目是相对完整的示例&#xff0c;我们将使用它作为模板来演示SQLMesh&#xff08;下…

单片机写的小液晶屏驱动+汉字滚屏

单片机写的小液晶屏驱动汉字滚屏 stm32f401freertos内置HZK16 单片机汉字滚屏

【Golang那些事】go1.22和1.23 更新重点及测评

好久没有写文章了&#xff0c;攒了一年的Golang版本特性的技术点以及踩过的坑&#xff0c;那就在新年第一篇的文章中做一个总结吧&#xff1a; 一、关于迭代器 (一)迭代器去掉了共享共享内存 一个经典的面试题 说到Golang经典的面试题&#xff0c;大家可能都刷到过很多&…

【大模型实战篇】使用GPTQ量化QwQ-32B微调后的推理模型

1. 量化背景 之所以做量化&#xff0c;就是希望在现有的硬件条件下&#xff0c;提升性能。量化能将模型权重从高精度&#xff08;如FP32&#xff09;转换为低精度&#xff08;如INT8/FP16&#xff09;&#xff0c;内存占用可减少50%~75%。低精度运算&#xff08;如INT8&#xf…

【MySQL】架构

MySQL架构 和其它数据库相比&#xff0c;MySQL有点与众不同&#xff0c;它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上&#xff0c;插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实…

国内首台太空采矿机器人亮相,宇宙资源开发迈入新阶段

随着地球资源的日益枯竭&#xff0c;人类将目光投向了浩瀚的宇宙。太空采矿作为一项前沿科技&#xff0c;正逐步从科幻走向现实。近日&#xff0c;中国矿业大学成功研制出国内首台太空采矿机器人&#xff0c;标志着我国在太空资源开发领域迈出了重要一步。 太空采矿并非新鲜概念…

Kubeasz工具快速部署K8Sv1.27版本集群(二进制方式)

文章目录 一、基本信息二、服务器初始化操作三、使用Kubeasz部署K8S集群四、验证集群 一、基本信息 1、部署需要满足前提条件&#xff1a; 注意1&#xff1a;确保各节点时区设置一致、时间同步&#xff1b;注意2&#xff1a;确保在干净的系统上开始安装&#xff1b;注意3&…

Java 文件和IO流基础(生动形象版)

系列文章目录 Java文件和IO流基础部分 文件VSIO流 文章目录 系列文章目录前言一、文件的定义和理解&#xff1a; 1.专业定义&#xff1a; 2.文件系统和路径&#xff1a; 二、IO流的定义和分类 1.定义&#xff1a;2.流的分类&#xff1a;修饰器模式的核心作用&#xff1a;基础结…

Linux驱动学习笔记(四)

高级字符设备进阶 1.一个完整的IO过程包含以下几个步骤&#xff1a;1应用程序向操作系统发起IO调用请求(系统调用)&#xff1b;2操作系统准备数据&#xff0c;把IO设备的数据加载到内核缓冲区&#xff1b;3操作系统拷贝数据&#xff0c;把内核缓冲区的数据从内核空间拷贝到应用…

2025年,电脑还需要分区吗?

随着2025年的到来&#xff0c;电脑存储空间已经不像以前那么金贵&#xff0c;固态硬盘&#xff08;SSD&#xff09;容量更大、速度更快&#xff0c;云存储也成了日常标配。许多人开始质疑&#xff1a;电脑还需要像以前那样分区吗&#xff1f; 一、分区到底是什么意思&#xff…

Springboot项目集成maven-assembly-plugin进行打包

通常我们将应用部署到服务器的某个目录下&#xff0c;一般情况下我们会提供像target&#xff08;存放应用jar包&#xff09;&#xff0c;bin&#xff08;项目启动/停止脚本&#xff09;&#xff0c;config&#xff08;项目配置文件&#xff09;&#xff0c;logs&#xff08;项目…

鸿蒙NEXT项目实战-百得知识库01

代码仓地址&#xff0c;大家记得点个star IbestKnowTeach: 百得知识库基于鸿蒙NEXT稳定版实现的一款企业级开发项目案例。 本案例涉及到多个鸿蒙相关技术知识点&#xff1a; 1、布局 2、配置文件 3、组件的封装和使用 4、路由的使用 5、请求响应拦截器的封装 6、位置服务 7、三…

【DeepSeek应用】本地部署deepseek模型后,如何在vscode中调用该模型进行代码撰写,检视和优化?

若已成功在本地部署了 DeepSeek 模型(例如通过 vscode-llm、ollama 或私有 API 服务),在 VS Code 中调用本地模型进行代码撰写、检视和优化的完整流程如下: 1. 准备工作:确认本地模型服务状态 模型服务类型: 若使用 HTTP API 服务(如 FastAPI/Flask 封装),假设服务地址…

jenkins 配置邮件问题整理

版本&#xff1a;Jenkins 2.492.1 插件&#xff1a; A.jenkins自带的&#xff0c; B.安装功能强大的插件 配置流程&#xff1a; 1. jenkins->系统配置->Jenkins Location 此处的”系统管理员邮件地址“&#xff0c;是配置之后发件人的email。 2.配置系统自带的邮件A…

Android Coil3阶梯preload批量Bitmap拼接扁平宽图,Kotlin

Android Coil3阶梯preload批量Bitmap拼接扁平宽图&#xff0c;Kotlin <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-p…

C++基础 [八] - list的使用与模拟实现

目录 list的介绍 List的迭代器失效问题 List中sort的效率测试 list 容器的模拟实现思想 模块分析 作用分析 list_node类设计 list 的迭代器类设计 迭代器类--存在的意义 迭代器类--模拟实现 模板参数 和 成员变量 构造函数 * 运算符的重载 运算符的重载 -- 运…

【系统架构设计师】操作系统 - 特殊操作系统 ③ ( 微内核操作系统 | 单体内核 操作系统 | 内核态 | 用户态 | 单体内核 与 微内核 对比 )

文章目录 一、微内核操作系统1、单体内核 操作系统2、微内核操作系统 引入3、微内核操作系统 概念4、微内核操作系统 案例 二、单体内核 与 微内核 对比1、功能对比2、单体内核 优缺点3、微内核 优缺点 一、微内核操作系统 1、单体内核 操作系统 单体内核 操作系统 工作状态 : …

系统思考:恶性循环

去年&#xff0c;我给一家知名人力资源公司交付了两个项目——一个在6月&#xff0c;另一个在8月&#xff0c;至今半年多了依然没有收到课酬。催促多次&#xff0c;得到的答复却各式各样&#xff1a;销售说老板卡了额度&#xff0c;老板说具体情况还需了解。每一次的推诿&#…

基于springboot的房屋租赁系统(008)

摘 要 社会的发展和科学技术的进步&#xff0c;互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱&#xff0c;也逐渐进入了每个用户的使用。互联网具有便利性&#xff0c;速度快&#xff0c;效率高&#xff0c;成本低等优点。 因此&#xff0c;构建符…