用Python本地搭建LLM+OCR图像分析系统
在AI本地化部署需求日益增长的今天,一个能协同大语言模型(LLM) 与光学字符识别(OCR) 的图像分析系统,能高效解决“图像内容理解+语义问答”的核心需求。- 设置区:配置 MCP服务脚本路径 (如 D:\workspace\code\mcp\service.py )、 LLM模型名称 (需与下载的模型一致,如 qwen3:1.7b );2. 模型选择:若电脑配置较高(16GB+内存),可尝试更
在AI本地化部署需求日益增长的今天,一个能协同大语言模型(LLM) 与光学字符识别(OCR) 的图像分析系统,能高效解决“图像内容理解+语义问答”的核心需求。本文将以最少代码量为目标,带你从零实现一个兼具前后端的本地图像分析系统,掌握后可灵活扩展至RAG、表格提取等场景。
一、核心逻辑:LLM与OCR的协同原理
系统的核心是“先识别、后推理”的两步流程,通过MCP(模型上下文协议)实现工具调用能力,具体逻辑如下:
1. 输入层:接收用户上传的图像文件与文字提问(如“总结图像内容”);
2. OCR处理:调用OCR工具提取图像中的文字信息,转化为结构化文本;
3. LLM推理:将“OCR结果+用户提问”整合为Prompt,传入本地LLM生成语义化回答;
4. 输出层:通过前端界面展示分析结果,支持日志查看与结果导出。
二、环境配置:3步搭建基础依赖
1. 创建并激活虚拟环境
使用Anaconda隔离项目依赖,避免版本冲突,执行以下命令:
bash
# 创建Python 3.10版本的虚拟环境(命名为mcp)
conda create -n mcp python=3.10
# 激活虚拟环境
conda activate mcp
2. 安装项目依赖包
进入项目路径后,通过国内镜像源快速安装依赖(需提前准备 requirements.txt ,核心依赖含mcp、paddlepaddle等):
bash
# 切换到项目目录(示例路径)
cd D:\workspace\code\mcp
# 安装依赖,指定中科大镜像源
pip install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/
3. 配置Ollama与本地LLM
Ollama是轻量型LLM管理工具,支持一键下载与调用本地模型,操作步骤如下:
1. 下载Ollama:访问Ollama官网,安装对应系统(Windows/macOS/Linux)的客户端;
2. 修改模型存储路径:打开Ollama客户端,进入 Settings ,在 Model location 处选择非C盘路径(如 D:\workspace\ollama_model ),避免占用系统盘空间;
3. 下载LLM模型:打开cmd/Anaconda Prompt,执行命令拉取轻量模型(以通义千问1.7B为例,适合本地运行):
bash
ollama run qwen3:1.7b
模型下载完成后,可在Ollama客户端的模型列表中看到 qwen3:1.7b 。
三、代码实现:3个文件构建前后端
项目核心代码分为3个文件,需先从GitHub仓库下载源码,结构如下:
plaintext
MCPDemo/
├─ client.py # 客户端代码:负责调用OCR与LLM,处理后端逻辑
├─ service.py # 服务代码:定义MCP协议接口,衔接工具与模型
└─ app.py # 前端代码:基于Streamlit实现图形化界面
1. 运行后端服务
激活虚拟环境并进入项目路径,执行以下命令启动后端,传入图像路径与用户提问:
bash
python client.py service.py --image D:\workspace\code\mcp\image.png --query "帮我总结一下这张图像"
- --image :指定待分析的图像本地路径;
- --query :用户的文字提问,如“提取图像中的日期”“总结关键信息”。
运行成功后,终端会输出OCR识别结果与LLM分析结果,示例如下(以力扣竞赛图像为例):
plaintext
# 力扣竞赛 活动信息
- 活动时间:第141场双周赛(2024-10-13 10:30-12:00)、第419场周赛(2024-10-12 22:30-00:00)
- 赛事官网:leetcode.cn/contest/
- 适用人群:对算法感兴趣的用户
- 比赛要求:题目含简单/中等/困难三级,偏求职面试风格
2. 启动前端图形化界面
后端测试通过后,执行命令启动前端,实现可视化操作:
bash
streamlit run app.py
命令执行后会自动跳转至浏览器,界面包含3个核心功能区:
- 输入区:支持上传本地图像(JPG/JPEG格式)、输入文字提问;
- 设置区:配置 MCP服务脚本路径 (如 D:\workspace\code\mcp\service.py )、 LLM模型名称 (需与下载的模型一致,如 qwen3:1.7b );
- 结果区:展示OCR标注图像、结构化分析结果、服务端日志,支持日志下载。
四、注意事项与扩展方向
1. OCR运行速度:默认使用CPU版本OCR(基于飞桨PaddlePaddle),速度较慢属正常现象;若需提速,可参考飞桨官网安装GPU版本,需匹配对应CUDA版本;
2. 模型选择:若电脑配置较高(16GB+内存),可尝试更大模型(如 qwen3:4b ),通过 ollama run qwen3:4b 下载;
3. 功能扩展:基于此框架可新增工具,如接入表格提取工具(如TableNet)实现Excel表格识别,或结合RAG技术实现“图像+本地文档”的联合问答。
五、总结
本文通过“环境配置→模型部署→代码运行”的流程,实现了一个极简的本地图像分析系统,核心是利用Ollama简化LLM部署、通过MCP协议协同OCR与LLM。该方案无需复杂的云服务依赖,适合个人开发者或小团队快速落地“图像理解+语义问答”需求,后续可根据业务场景灵活扩展工具与模型。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)