实战阿里通义灵码极速编程-截屏-OCR-OLlama篇

本文涉及的产品
小语种识别,小语种识别 200次/月
票证核验,票证核验 50次/账号
通用文字识别,通用文字识别 200次/月
简介: 通过实际案例展示阿里通义灵码如何极大提高编程效率。以开发屏幕截图OCR Python程序为例,使用Win10、Anaconda3、VS Code及通义灵码插件。经过四次提问与优化,从截屏选择矩形区域到调用大模型进行OCR识别,整个过程仅耗时半小时,最终形成可运行的控制台程序。加入界面开发后,总用时2小时,显著提升开发速度和质量。

这里测试的大模型主打一个免费,阿里通义灵码免费,ollama免费。

实际举例-阿里通义灵码极大提高编程效率

以实际使用为例验证极大提高编程效率

做一个屏幕截图OCR Python程序

一.系统配置:
win10 anaconda3 python10以上虚拟环境,vs code 和 通义灵码插件最新版本,有一个ollama加载大模型的环境,大模型是llama3.2-vision:11b。

二.向通义灵码提出正确需求。

在vs code系统左下角,通义系统的对会话框向通义灵码提问。

1.提问:
python编程,在win11系统截屏,截屏方式鼠标选取矩形方框,将选取的方框形成图片文件,将文件传给大模型,
利用大模型做ocr,做文字识别.对大模型的访问方式参照ocr_test0302.py文件的内容。
你可以将程序写入你自己定义的python文件。

通义灵码回答:
为了实现你的需求,我们需要编写一个Python脚本,该脚本能够截取屏幕上的矩形区域,将截取的图像保存为文件,
然后使用大模型进行OCR文字识别。
我们可以使用pyautogui库来截取屏幕,并使用你提供的ocr_test0302.py文件中的逻辑来调用大模型。

以下是完整的Python脚本:

import pyautogui
import base64
from ollama import Client

# 初始化大模型客户端
client = Client(
    host='http://192.168.0.37:11434',
    headers={
   'x-some-header': 'some-value'}
)

def encode_image(image_path: str) -> str:
    with open(image_path, "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read()).decode("utf-8")
    return f"data:image/jpeg;base64,{encoded_string}"

def capture_screen_region():
    print("请在接下来的5秒内选择屏幕上的矩形区域...")
    pyautogui.sleep(5)  # 等待5秒,让用户选择区域
    x, y, width, height = pyautogui.prompt(text='输入矩形区域的坐标(x, y, width, height)', title='选择区域', default='0, 0, 100, 100').split(',')
    x, y, width, height = int(x), int(y), int(width), int(height)
    screenshot = pyautogui.screenshot(region=(x, y, width, height))
    screenshot_path = "screenshot.png"
    screenshot.save(screenshot_path)
    return screenshot_path

def perform_ocr(image_path: str):
    system_prompt = """Convert the provided image into Markdown format. Ensure that all content from the page is included, such as headers, footers, subtexts, images (with alt text if possible), tables, and any other elements.

    Requirements:

    - Output Only Markdown: Return solely the Markdown content without any additional explanations or comments.
    - No Delimiters: Do not use code fences or delimiters like \`\`\`markdown.
    - Complete Content: Do not omit any part of the page, including headers, footers, and subtext.
    """

    response = client.chat(
        model='llama3.2-vision:11b',
        messages=[
            {
   
                'role': 'user',
                'content': system_prompt,
                'images': [image_path],
            }
        ],
    )

    return response.message.content

if __name__ == "__main__":
    image_path = capture_screen_region()
    markdown_content = perform_ocr(image_path)
    print(markdown_content)

说明:

  1. 屏幕截取:使用pyautogui库来截取屏幕上的矩形区域。用户需要在5秒内选择屏幕上的区域,并输入该区域的坐标(x, y, width, height)。
  2. 图像编码:将截取的图像保存为文件,并使用encode_image函数将其编码为Base64格式。
  3. 大模型调用:使用ollama库中的Client类来调用大模型进行OCR文字识别。
  4. 输出结果:将大模型返回的Markdown格式内容打印出来。

安装依赖:

确保安装了pyautogui库,可以使用以下命令安装:

pip install pyautogui

这样,你就可以通过运行这个脚本来截取屏幕上的矩形区域,并使用大模型进行OCR文字识别了。

问题分析:

我对程序测试,很不靠谱,撇了一眼程序
有如下片段
def capture_screen_region():
print("请在接下来的5秒内选择屏幕上的矩形区域...")
pyautogui.sleep(5) # 等待5秒,让用户选择区域
这很不靠谱。

2 提问:不能要求使用者输入选择区域,应该是两次点按鼠标,选择区域。

阿里灵码又是疯狂输出:
有如下片段:
def capture_screen_region():
print("请在接下来的5秒内点击屏幕上的两个点来选择矩形区域...")
pyautogui.sleep(5) # 等待5秒,让用户点击

# 获取第一次点击位置
first_click = pyautogui.position()
print(f"第一次点击位置: {first_click}")

# 获取第二次点击位置
second_click = pyautogui.position()
print(f"第二次点击位置: {second_click}")

不好用,原因是现代程序都是事件驱动的,没有必须顺序执行的。

3.提问:你选择矩形框还不是win的习惯性操作,最流行的做法是按住鼠标左键,不松开,移动鼠标,松开左键,完成矩形框区域的选择。

阿里灵码又是疯狂输出:但这次还是
print("请按住鼠标左键并拖动来选择矩形区域...")

# 等待鼠标左键按下
while not pyautogui.mouseDown(button='left'):
    pass

# 获取鼠标按下位置
start_x, start_y = pyautogui.position()
print(f"鼠标按下位置: ({start_x}, {start_y})")

# 等待鼠标左键释放
while pyautogui.mouseDown(button='left'):
    pass

# 获取鼠标释放位置
end_x, end_y = pyautogui.position()
print(f"鼠标释放位置: ({end_x}, {end_y})")

不是win程序的使用习惯。

4 提问:在pyautogui中,按下左键和释放是同样的调用方式? 【注释,看程序,两次使用 while pyautogui.mouseDown(button='left'):】

阿里灵码又是疯狂输出:
这次有如下代码,应该是前进了一步
def on_click(x, y, button, pressed):
nonlocal start_x, start_y, end_x, end_y
if button == mouse.Button.left:
if pressed:
start_x, start_y = x, y
print(f"鼠标按下位置: ({start_x}, {start_y})")
else:
end_x, end_y = x, y
print(f"鼠标释放位置: ({end_x}, {end_y})")
return False # 停止监听

# 创建鼠标监听器
with mouse.Listener(on_click=on_click) as listener:
    listener.join()

至此程序可以运行,并在控制台返回识别的文本。
我一共提问4次。编码的基本框架有了,下面就是细化了。
这个过程用时半个小时,效率极高。
一般的程序员调试都不止30分钟。
现在这个程序是控制台程序,没有界面,我用灵码插件加界面一共用了2小时,小伙伴们可以一起来试试。

目录
相关文章
|
5月前
|
存储 文字识别 自然语言处理
通义大模型在文档自动化处理中的高效部署指南(OCR集成与批量处理优化)
本文深入探讨了通义大模型在文档自动化处理中的应用,重点解决传统OCR识别精度低、效率瓶颈等问题。通过多模态编码与跨模态融合技术,通义大模型实现了高精度的文本检测与版面分析。文章详细介绍了OCR集成流程、批量处理优化策略及实战案例,展示了动态批处理和分布式架构带来的性能提升。实验结果表明,优化后系统处理速度可达210页/分钟,准确率达96.8%,单文档延迟降至0.3秒,为文档处理领域提供了高效解决方案。
550 1
|
6月前
|
人工智能 自然语言处理 JavaScript
通义灵码2.5实战评测:Vue.js贪吃蛇游戏一键生成
通义灵码基于自然语言需求,快速生成完整Vue组件。例如,用Vue 2和JavaScript实现贪吃蛇游戏:包含键盘控制、得分系统、游戏结束判定与Canvas动态渲染。AI生成的代码符合规范,支持响应式数据与事件监听,还能进阶优化(如增加启停按钮、速度随分数提升)。传统需1小时的工作量,使用通义灵码仅10分钟完成,大幅提升开发效率。操作简单:安装插件、输入需求、运行项目即可实现功能。
319 4
 通义灵码2.5实战评测:Vue.js贪吃蛇游戏一键生成
|
6月前
|
人工智能 缓存 JavaScript
通义灵码深度体验:AI编程助手如何提升全栈开发效率
通义灵码是一款强大的AI编程助手,支持从代码补全到智能体自主开发的全流程辅助。在React+Node.js项目中,其实现了100%字段匹配的Mongoose Schema生成;通过`@灵码`指令,30秒内完成天气查询CLI工具开发,包含依赖管理与文档编写。其上下文记忆能力可自动关联模块逻辑,如为商品模型扩展库存校验。集成MCP服务时,不仅生成基础代码,还推荐最佳实践并添加缓存优化。测试显示,其响应速度快、复杂任务准确率高,适合中小型项目快速迭代,初期开发效率提升约40%。尽管存在文档同步延迟和TypeScript支持不足的问题,仍是一款优秀的AI编程伙伴。
330 7
|
2月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
521 0
|
5月前
|
自然语言处理 Rust Java
通义灵码编程智能体深度评测(Qwen3模型+终端操作+MCP工具调用实战)
通义灵码作为阿里云推出的智能编程解决方案,凭借Qwen3模型与MCP平台的协同,在代码生成、终端操作与工具链调用方面展现强大能力。本文从真实开发场景出发,评测其在多语言代码理解、自动化工作流及复杂工程任务中的表现,结合性能与成本数据,揭示其在提升开发效率与系统集成方面的工程价值。
493 1
|
5月前
|
人工智能 IDE 搜索推荐
通义灵码2.5评测:从编程智能体到记忆感知的AI编码革命
通义灵码2.5版本更新带来了多项新功能,包括Lingma IDE的开箱即用体验、编程智能体模式实现端到端编码任务、MCP工具集成扩展AI助手能力以及Qwen3模型升级大幅提升代码生成准确性和效率。此外,新增长期记忆与上下文感知功能,使开发更个性化和高效。尽管存在一些局限性,如复杂业务逻辑仍需人工干预,但整体显著提升了开发效率。官方还提供了高质量视频课程助力用户学习。
954 10
|
5月前
|
SQL 人工智能 自然语言处理
通义灵码2.5 | 一个更懂开发者的 AI 编程助手
通义灵码2.5版是一款强大的AI编程助手,具备智能体模式,支持自主决策、环境感知与工具使用等功能。通过工程检索、文件编辑和终端操作,可端到端完成编码任务,并深度适配Qwen3模型,大幅提升开发效率。新版新增行间建议预测、上下文分析及记忆功能,更懂开发者需求。智能体结合MCP工具,能实现从代码生成到部署的全流程自动化,如文中实例展示的数独小游戏开发与在线部署。无论是日常开发还是创意实现,通义灵码都能显著提升工作效率与能力边界。

热门文章

最新文章