PyVisionAI:基于视觉大模型的文档内容智能提取与理解工具

news2026/5/14 11:20:47
1. 项目概述PyVisionAI一个文档内容提取与视觉理解的瑞士军刀如果你经常需要从PDF、PPT、Word文档甚至网页中提取内容并且希望AI能帮你“看懂”里面的图片和图表那么PyVisionAI这个工具你应该了解一下。它本质上是一个Python工具包核心功能就两块一是把各种格式文档里的文字和图片“扒”出来二是调用各种强大的视觉大模型VLM来“描述”这些图片里到底有什么。你可以把它想象成一个升级版的OCR光学字符识别工具但它的“眼睛”是GPT-4 Vision、Claude Vision或者本地运行的Llama Vision这类模型不仅能读字还能理解图像内容。我最初接触这个项目是因为处理大量技术白皮书和产品文档。传统的OCR工具对排版复杂的文档常常力不从心表格错位、公式丢失是家常便饭。而手动截图再丢给ChatGPT看图流程又太割裂。PyVisionAI把这两个痛点一次性解决了它提供统一的命令行和编程接口无论是单文件还是批量处理都能自动完成从解析、截图到AI描述的完整流水线。更关键的是它支持本地模型通过Ollama这意味着你完全可以在内网环境、在不泄露任何数据的前提下完成对敏感文档的智能处理。2. 核心设计思路与方案选型解析PyVisionAI的设计哲学非常清晰模块化、可插拔、兼顾云端与本地。它不是一个大而全的封闭系统而是把文档解析、图像处理、模型调用这几个关键环节解耦让你可以根据自己的需求灵活组合。2.1 为什么选择混合提取策略文档内容提取是个老难题PyVisionAI没有试图用一种方法解决所有问题而是提供了三种提取器Extractor这背后是对不同文档类型和需求场景的深刻理解。page_as_image默认把每一页文档都渲染成一张高分辨率图片然后整张图丢给视觉大模型去分析。这种方法听起来有点“笨”但实际效果往往最好。因为VLM模型天生就是为理解图像而训练的它能同时处理文字、图表、排版和颜色信息对于设计精美的海报、复杂的学术论文排版、或者扫描件这种方法能最大程度保留原始视觉上下文。代价是处理速度较慢且API调用成本如果使用云端模型较高因为每一页都是一次完整的图像分析请求。text_and_images这是更传统的思路。先用专门的库如pdfplumber处理PDFpython-docx处理Word把文本内容精确地提取出来同时把文档里嵌入的图片单独抠出来保存。然后只把图片部分送给VLM模型去描述。这种方法效率高文本提取精准成本也低只分析图片。但它有个致命弱点上下文丢失。模型看不到文字和图片的相对位置关系。比如一张图表旁边的图注文字用这种方法就无法关联起来模型只能干巴巴地描述图表本身。hybrid实验性试图结合前两者的优点比如先用传统方法提取文本和图片再对复杂页面用page_as_image做兜底分析。但根据项目文档的明确警告⚠️ EXPERIMENTAL - NOT RECOMMENDED这个方案目前存在性能和准确性问题不稳定不推荐生产环境使用。我的实操心得选哪种方法取决于你的文档类型和核心需求。追求最高保真度和上下文关联比如处理产品说明书、学术论文、设计稿无脑选page_as_image。虽然慢点、贵点但出来的结果最接近人眼阅读的体验。处理大量以文字为主、图片为辅的文档比如合同、报告、小说选text_and_images。它能快速、准确地抓取文字并对插图进行基本描述性价比最高。HTML网页处理没得选只能用page_as_image。因为网页是动态渲染的只有通过无头浏览器如Playwright截图才能捕获到JavaScript生成的内容和最终的视觉样式。2.2 视觉模型选型云端巨兽 vs. 本地小钢炮这是另一个核心设计点。PyVisionAI没有绑定死某一家厂商而是抽象出了一套统一的接口背后可以对接三种主流的视觉模型方案。OpenAI GPT-4 Vision (gpt4)这是默认选项也是综合能力最强的。GPT-4o系列模型在图像理解、文字识别尤其是手写体、艺术字、逻辑推理方面表现非常均衡。它的响应速度快API稳定适合大多数通用场景。缺点是必须联网且按Token计费处理大量图片时成本需要考虑。Anthropic Claude Vision (claude)Claude 3.5 Sonnet在视觉理解上特别是在需要细致观察、描述复杂场景或图表时常常有令人惊艳的表现。它的“思维”过程似乎更缜密对于学术图表、工程图纸的分析可能更深入。同样需要API密钥和联网。本地 Llama Vision (llama)通过Ollama部署的Llama 3.2 Vision等本地模型。最大的优势是隐私和零成本。所有数据都在本地适合处理公司内部敏感文档、医疗记录、法律卷宗等。缺点是硬件要求高建议16GB内存速度取决于你的显卡且模型能力上限目前仍与顶尖云端模型有差距对于极其复杂的图像可能力不从心。注意事项模型选择不是一次性的。我通常的做法是先用本地llama模型跑一遍批量文档进行初筛和摘要。对于其中llama描述得含糊不清或识别关键信息如数据图表中的具体数值有困难的图片再手动挑选出来用gpt4或claude进行二次精分析。这样既保证了数据安全又能在关键点上获得最佳效果。2.3 目录结构设计的巧思项目默认的content/source/,content/extracted/,content/log/目录结构体现了一种“约定大于配置”的工程思想。对于新手直接按这个结构来可以避免文件散落各处。对于有经验的使用者完全可以通过-s和-o参数指定任意路径灵活性十足。日志文件自动按时间戳命名对于事后排查问题、评估不同模型或参数的效果对比提供了极大的便利。3. 从零开始环境搭建与详细配置指南纸上得来终觉浅绝知此事要躬行。下面我以macOS系统为例带你走一遍最完整的安装配置流程并解释每一个步骤的必要性。Windows和Linux用户也可以参照思路命令有所不同但原理相通。3.1 系统级依赖安装打好地基PyVisionAI要处理多种格式文档需要调用一些成熟的底层工具。# 1. 安装Homebrew如果尚未安装 /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) # 2. 安装文档处理核心依赖 brew install --cask libreoffice # 处理DOCX和PPTX文件的核心引擎 brew install poppler # 提供pdfimages, pdftoppm等工具用于PDF渲染和图片提取LibreOffice为什么不用Python库直接读.docx因为Office文档格式复杂直接解析容易丢失样式甚至内容。通过LibreOffice在后台进行渲染或转换是最稳定、兼容性最好的方法能确保我们看到的和程序提取的是一致的。Poppler这是一个PDF处理的瑞士军刀库。pdftoppm命令可以将PDF页面高质量地转换为图片这正是page_as_image提取器所依赖的。3.2 安装PyVisionAI核心包# 使用pip安装最简单 pip install pyvisionai # 或者如果你喜欢用Poetry管理项目依赖推荐用于开发环境 pip install poetry poetry add pyvisionai3.3 配置无头浏览器用于HTML截图这是处理网页HTML文件的关键。PyVisionAI使用Playwright来控制Chromium浏览器进行截图。# 安装playwright的Python绑定 pip install playwright # 安装Chromium浏览器本体和相关驱动 playwright install chromium踩坑记录playwright install这一步很容易因为网络问题失败。如果遇到下载慢或报错可以尝试设置国内镜像源export PLAYWRIGHT_DOWNLOAD_HOSThttps://npmmirror.com/mirrors/playwright/ playwright install chromium安装完成后建议跑一个简单测试python -m playwright codegen如果能打开浏览器录制界面说明安装成功。3.4 模型端配置三选一或全都要方案A使用OpenAI GPT-4 Vision最快上手# 将你的OpenAI API密钥设置为环境变量 # 强烈建议写入shell配置文件如 ~/.zshrc 或 ~/.bashrc一劳永逸 echo export OPENAI_API_KEYsk-你的真实Key ~/.zshrc source ~/.zshrc方案B使用Anthropic Claude Vision# 同理设置Claude的API密钥 echo export ANTHROPIC_API_KEY你的Claude-Key ~/.zshrc source ~/.zshrc方案C部署本地Llama Vision追求隐私# 1. 安装Ollama brew install ollama # 2. 启动Ollama服务它会一直在后台运行 ollama serve # 3. 拉取视觉模型以Llama 3.2 Vision为例约4.7GB ollama pull llama3.2-vision # 4. 验证模型是否就绪 ollama list # 应该能看到 llama3.2-vision:latest # 5. 测试模型API是否通畅 curl http://localhost:11434/api/tags # 应该返回包含模型信息的JSON硬件建议运行llama3.2-vision这类70亿参数的视觉模型8GB内存是底线但会非常卡顿。想要流畅运行16GB内存是起步如果有独立显卡NVIDIA并配置了Ollama的GPU加速体验会好很多。纯CPU推理处理一张图可能需要10-20秒。4. 命令行实战解锁核心工作流配置完毕让我们通过几个最典型的场景看看PyVisionAI到底怎么用。我强烈建议你跟着操作一遍感受其威力。4.1 场景一快速提取单份PDF报告假设你有一份年度财报report.pdf里面有文字、表格和趋势图。# 最基本用法使用默认的 page_as_image 和 GPT-4 Vision file-extract -t pdf -s ./report.pdf -o ./output # 执行后你会看到类似下面的输出 # [INFO] 开始处理文件: ./report.pdf # [INFO] 使用提取器: page_as_image # [INFO] 使用模型: gpt-4o-mini # [INFO] 正在转换第1页/共20页... # [INFO] 正在调用视觉模型描述图像... # [INFO] 处理完成结果已保存至: ./output/report.md打开生成的report.md文件你会看到类似这样的内容# 文档提取结果report.pdf ## 第 1 页 **提取文本** 本公司2023年度营业收入为15.8亿元同比增长23.5%。净利润达到2.1亿元... **图像描述** 本页包含一个柱状图标题为“季度营收趋势”。图表展示了四个季度Q1-Q4的营收数据柱子颜色分别为蓝色、绿色、橙色和红色。Q4的柱子最高代表营收峰值。X轴为季度Y轴为营收金额单位百万元。图例位于右上角。 ## 第 2 页 ...看到了吗它不仅提取了文字还把图表的内容、颜色、坐标轴含义都描述出来了。这就是page_as_image模式的威力。4.2 场景二批量处理一个文件夹里的所有Word文档假设docs/文件夹里有一堆.docx文件。# 使用 text_and_images 提取器提高处理速度并使用本地Llama模型保护隐私 file-extract -t docx -s ./docs -o ./results -e text_and_images -m llama # 使用 -v 参数查看详细日志了解每一步在做什么 file-extract -t docx -s ./docs -o ./results -e text_and_images -m llama -v这个命令会遍历docs/文件夹下所有.docx文件。用python-docx库提取纯文本。将文档中嵌入的每张图片保存为image_001.png等文件。将每张图片发送给本地运行的llama3.2-vision模型请求描述。为每个输入文件在results/文件夹下生成一个同名的.md文件文本和图片描述穿插排列。4.3 场景三为单张图片获取AI描述这个功能独立于文档处理非常实用比如分析截图、产品照片等。# 用GPT-4分析一张产品截图 describe-image -s ./screenshot.png -p 请详细描述这个软件界面的布局、主要按钮和当前显示的数据 # 输出示例 # 这是一张数据分析平台的仪表盘截图。界面顶部是深色的导航栏包含“首页”、“数据集”、“分析”、“报告”和“设置”五个标签页当前“分析”页高亮显示。主区域分为左右两栏左侧是一个可折叠的控件面板有“数据源选择”、“筛选条件”、“图表类型”三个折叠菜单右侧是一个占据主要空间的图表展示区显示着一个多系列折线图图中有三条不同颜色的线蓝、绿、橙代表2022-2024年的销售趋势其中橙色线2024年呈现显著上升趋势。图表下方有一个数据表格展示了具体数值。右下角有“导出PNG”、“分享”和“刷新”三个按钮。 # 用本地模型分析一张风景照 describe-image -s ./landscape.jpg -m llama # 用Claude分析一张复杂的信息图 describe-image -s ./infographic.png -m claude -k $ANTHROPIC_API_KEY -p 解释这张信息图传达的核心论点并总结其中的关键数据支撑4.4 高级技巧自定义提示词Prompt的艺术提示词是控制AI输出的方向盘。PyVisionAI允许你在提取和描述时传入自定义提示词。针对page_as_image提取器的提示词因为模型看到的是整页图片你的提示词必须同时包含文本提取和图像描述指令。# 好的提示词示例 file-extract -t pdf -s paper.pdf -o out -p 请精确提取页面中的所有文字包括页眉、页脚、脚注。对于图片、图表或流程图请详细描述其类型、内容、数据趋势如果可辨以及它在上下文中的作用。 # 差的提示词示例模型可能只做其中一件事 file-extract -t pdf -s paper.pdf -o out -p 这张图里有什么 # 可能忽略文字 file-extract -t pdf -s paper.pdf -o out -p 把文字抄下来 # 可能忽略图片针对text_and_images提取器或describe-image命令的提示词此时模型只看到单独的图片提示词应聚焦于视觉内容分析。# 聚焦于特定属性 describe-image -s chart.png -p 识别图表类型柱状图/折线图/饼图等读取X轴和Y轴的标签估算各数据系列的大概数值并总结整体趋势。 # 用于UI/UX分析 describe-image -s ui_mockup.jpg -p 以用户体验设计师的角度分析这个界面的信息层级、视觉动线、主要交互元素及其可能的功能。我的经验不要指望一个“万能提示词”。根据你的文档类型调整提示词能极大提升结果质量。处理学术论文时提示词应强调“公式”、“引用标记”处理设计稿时应强调“配色方案”、“字体风格”、“间距”。5. 编程接口深度集成对于开发者PyVisionAI的库Library模式提供了更大的灵活性可以将其嵌入到你的数据流水线、自动化脚本或Web应用中。5.1 基础调用示例from pyvisionai import create_extractor, describe_image_openai, describe_image_ollama import os # 示例1提取PDF使用Claude模型 claude_extractor create_extractor( file_typepdf, modelclaude, # 指定模型 extractor_typepage_as_image, # 指定提取器 api_keyos.getenv(ANTHROPIC_API_KEY) # 可传入key不传则从环境变量读取 ) # 处理单个文件 output_md_path claude_extractor.extract(input.pdf, ./output) print(f结果保存至{output_md_path}) # 示例2批量处理目录使用本地模型 llama_extractor create_extractor(docx, modelllama, extractor_typetext_and_images) # 假设input_dir下有很多.docx for root, dirs, files in os.walk(./input_dir): for file in files: if file.endswith(.docx): full_path os.path.join(root, file) # 可以自定义每个文件的输出目录 relative_path os.path.relpath(root, ./input_dir) output_dir os.path.join(./batch_output, relative_path) os.makedirs(output_dir, exist_okTrue) try: result_path llama_extractor.extract(full_path, output_dir) print(f成功处理{file}) except Exception as e: print(f处理失败 {file}: {e}) # 示例3单独描述图片库 image_folder ./product_images for img_file in os.listdir(image_folder): if img_file.lower().endswith((.png, .jpg, .jpeg)): img_path os.path.join(image_folder, img_file) # 使用OpenAI模型 description describe_image_openai( image_pathimg_path, modelgpt-4o, # 指定更强大的模型 max_tokens500, # 允许更长的描述 prompt作为电商产品经理描述这张产品图突出卖点、材质、使用场景和可能吸引的客户群体。 ) # 将描述保存到对应的文本文件 desc_path os.path.splitext(img_path)[0] _desc.txt with open(desc_path, w, encodingutf-8) as f: f.write(description) print(f已生成描述{desc_path})5.2 错误处理与重试机制在生产环境中网络波动、API限流、模型临时错误都是家常便饭。一个健壮的集成需要包含错误处理。import time from tenacity import retry, stop_after_attempt, wait_exponential from pyvisionai import describe_image_openai from openai import RateLimitError, APIError # 使用tenacity库实现带退避的重试 retry(stopstop_after_attempt(3), waitwait_exponential(multiplier1, min4, max10)) def robust_describe_image(image_path, prompt): 一个健壮的图片描述函数包含重试和降级逻辑 try: return describe_image_openai(image_path, promptprompt) except RateLimitError as e: print(f触发速率限制等待后重试... 错误: {e}) time.sleep(60) # 等待一分钟 raise # 重新抛出异常以触发重试 except APIError as e: if context_length in str(e): # 如果是上下文过长错误降级提示词 print(模型上下文过长使用简化提示词重试...) simple_prompt 简要描述这张图片的主要内容。 return describe_image_openai(image_path, promptsimple_prompt) else: # 其他API错误记录并返回空值 print(fOpenAI API错误: {e}) return [描述失败] except Exception as e: # 处理其他意外错误如文件不存在等 print(f处理图片 {image_path} 时发生未知错误: {e}) return [描述失败] # 使用示例 description robust_describe_image(important_chart.png, 详细分析此图表...)6. 部署与扩展Docker与MCP服务器对于团队协作或需要提供服务的场景PyVisionAI提供了更高级的部署选项。6.1 使用Docker一键部署API服务如果你不想在每台机器上配置Python环境Docker是最佳选择。# 1. 克隆项目 git clone https://github.com/MDGrey33/pyvisionai.git cd pyvisionai # 2. 确保你的API密钥已在环境变量中 export OPENAI_API_KEYsk-... # 3. 使用Docker Compose启动最省心 docker compose up -d # 这会在后台启动容器将容器内的8000端口映射到主机的8001端口。 # 4. 测试API curl -X POST http://localhost:8001/api/v1/describe/openai \ -F file./content/test/source/test.jpeg \ -F modelgpt-4o \ -F prompt描述这张图片 # 你应该会收到一个JSON响应包含AI生成的描述。 # 5. 查看交互式API文档Swagger UI # 打开浏览器访问 http://localhost:8001/docs # 你可以在这里直接尝试各个端点非常方便。docker-compose.yml文件已经帮你配置好了端口映射、环境变量传递和自动重启策略。对于生产环境你可能还需要在Compose文件中添加资源限制CPU、内存和健康检查。6.2 集成MCPModel Context Protocol与AI助手协同工作这是PyVisionAI一个非常酷的功能。MCP是一个新兴协议允许像Cursor、Claude Desktop这样的AI助手直接调用外部工具。部署MCP服务器# 在项目根目录下使用专门的MCP Compose文件启动 docker compose -f docker-compose.mcp.yml up -d # MCP服务器将在 http://localhost:8002/sse 提供服务。配置Claude Desktop找到Claude Desktop的配置文件通常在~/Library/Application Support/Claude/claude_desktop_config.json或类似位置添加{ mcpServers: { pyvisionai: { command: npx, args: [ -y, modelcontextprotocol/server-pyvisionai, http://localhost:8002/sse ] } } }或者更简单的方式如果上述命令方式不工作{ mcpServers: { pyvisionai: { url: http://localhost:8002/sse } } }重启Claude Desktop后你的AI助手就获得了“视觉”能力。在Cursor或Claude Desktop中直接使用现在你可以在对话中直接说“用PyVisionAI分析一下/Users/me/Downloads/diagram.png这张图。”“请调用本地模型描述这个截图中的错误信息。”“帮我提取这份PDF合同路径是/path/to/contract.pdf里的所有条款和签名区域图片。”AI助手会在后台通过MCP协议调用PyVisionAI服务器获取图片描述或文档分析结果然后基于这些信息继续和你对话。这相当于为你的文本AI装上了一双“眼睛”。7. 性能调优与避坑指南在实际大规模使用中我积累了一些优化经验和常见问题的解决方法。7.1 性能优化策略处理超长文档对于上百页的PDF使用page_as_image模式且调用云端API成本和耗时都可能很高。一个折中方案是先用text_and_images模式快速过一遍通过简单的关键词扫描如“图”、“表”、“附录”识别出包含重要图表的关键页面。然后只对这些关键页面用page_as_image模式进行二次精细分析。批量处理的并发控制库本身没有内置并发但你可以用Python的concurrent.futures轻松实现。from concurrent.futures import ThreadPoolExecutor, as_completed from pyvisionai import create_extractor import os def process_file(file_path, output_dir): extractor create_extractor(pdf, modelllama) # 每个线程独立实例化避免冲突 return extractor.extract(file_path, output_dir) pdf_files [f for f in os.listdir(.) if f.endswith(.pdf)] with ThreadPoolExecutor(max_workers3) as executor: # 控制并发数避免本地模型过载 futures {executor.submit(process_file, f, ./out): f for f in pdf_files} for future in as_completed(futures): file futures[future] try: result future.result() print(f{file} 处理成功) except Exception as e: print(f{file} 处理失败: {e})本地模型加速如果使用Ollama确保启用了GPU加速。对于NVIDIA显卡安装正确的CUDA驱动和ollama的GPU版本运行模型时会自动利用GPU速度可提升数倍至数十倍。7.2 常见问题与解决方案问题1处理HTML文件时超时或截图空白。原因网页加载慢或包含大量动态内容Playwright默认超时时间不够。解决目前CLI可能未暴露超时参数但在库模式下你可以自行实例化Playwright并配置更长的超时时间然后再调用PyVisionAI的提取逻辑。或者确保你的HTML文件是相对简单的静态页面。问题2使用text_and_images提取PPTX时文本顺序错乱。原因PPTX中的文字框可能不是按阅读顺序存储的。解决这是底层python-pptx库的局限。对于顺序要求高的PPT建议使用page_as_image模式虽然慢但能保证视觉上的正确顺序。问题3本地Llama模型描述过于简略或胡言乱语。原因视觉模型能力有限或提示词不适合。解决优化提示词给出更具体、更结构化的指令。例如将“描述这张图”改为“请按以下要点描述1. 主体对象2. 背景环境3. 颜色色调4. 可能传达的情绪或信息。”升级模型尝试Ollama中更大的视觉模型如llava:34b如果硬件支持。后处理编写一个简单的脚本对模型的简短描述进行追问或总结。例如先让Llama描述如果描述少于50个词则自动将其描述作为新的提示词的一部分再次提问“请根据你刚才的描述再补充更多细节”。问题4API调用超频导致报错或费用激增。原因批量处理时未做限流。解决在调用云端API时务必加入速率限制。可以使用time.sleep()进行简单延迟或使用更智能的库如backoff。import time from pyvisionai import describe_image_openai def safe_describe(image_path, prompt): description describe_image_openai(image_path, promptprompt) time.sleep(1) # 每次调用后强制等待1秒确保不超过OpenAI的免费用户限制3次/分钟 return description问题5生成的Markdown文件中图片描述和文本穿插的格式不理想。原因默认模板可能不符合你的需求。解决PyVisionAI生成的Markdown结构是固定的。如果你需要不同的格式例如想把所有图片描述汇总在文档末尾最好的办法是直接处理生成的.md文件。写一个Python脚本用正则表达式或Markdown解析库如mistune读取结果文件重新组织内容结构然后再输出。这给了你最终输出格式的完全控制权。经过这几个月的深度使用PyVisionAI已经成了我处理多模态文档的得力助手。它的价值不在于用了多炫酷的技术而在于把几个成熟可靠的技术文档解析、无头浏览器、大模型API用一种简单、统一的方式粘合起来解决了真实场景下的痛点。从最初的好奇尝试到如今将它集成到我的自动化工作流中这个过程也让我深刻体会到好的工具就是那种“它就在那里安静地解决你的问题而你几乎感觉不到它的存在”的东西。如果你也有类似的需求不妨花点时间配置一下它很可能也会成为你的效率利器。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…