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

简介: 该代码实现了一个截屏测试工具,结合了鼠标事件监听、屏幕截图和OCR功能。用户可通过拖动鼠标选择屏幕区域进行截图,并将截图转换为Markdown格式的文本内容。具体步骤包括:初始化大模型客户端、编码图像为Base64格式、捕获指定屏幕区域并保存截图、调用大模型API进行OCR识别并输出Markdown格式的内容。

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

截屏测试

import pyautogui
import base64
from ollama import Client
from pynput import mouse

初始化大模型客户端

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("请按住鼠标左键并拖动来选择矩形区域...")

start_x, start_y = None, None
end_x, end_y = None, None

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()

# 计算矩形区域的左上角和右下角坐标
left = min(start_x, end_x)
top = min(start_y, end_y)
width = abs(end_x - start_x)
height = abs(end_y - start_y)

screenshot = pyautogui.screenshot(region=(left, top, width, height))
screenshot_path = "screenshot.png"
screenshot.save(screenshot_path)
return screenshot_path

def perform_ocr(image_path: str):

# system_prompt = "Convert the content of the image into text."
system_prompt = """Convert the provided image into Markdown format. 

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)

目录
相关文章
|
28天前
|
JSON 文字识别 数据可视化
Qwen2-VL微调实战:LaTex公式OCR识别任务(完整代码)
《SwanLab机器学习实战教程》推出了一项基于Qwen2-VL大语言模型的LaTeX OCR任务,通过指令微调实现多模态LLM的应用。本教程详述了环境配置、数据集准备、模型加载、SwanLab集成及微调训练等步骤,旨在帮助开发者轻松上手视觉大模型的微调实践。
|
2月前
|
自然语言处理 IDE 测试技术
通义灵码——有了它让我的编程效率和质量直线上升!
作为一名大数据开发工程师,我每天与代码和数据打交道,享受解决复杂问题的乐趣。最近,我遇到了一位超级“码”力助手——通义灵码。它不仅是一个简单的代码补全工具,更像是一个拥有高度智慧的编程伙伴,能够理解我的编程意图,给出最合适的建议,大大提升了我的工作效率和编程体验。本文将分享如何在VsCode中安装和使用通义灵码,以及它在我的实际编程工作中发挥的重要作用。
|
2月前
|
人工智能 自然语言处理 前端开发
用通义灵码,从 0 开始打造一个完整APP,无需编程经验就可以完成
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,而且为大家准备了 100 个降噪蓝牙耳机,送给前 100 个完成的粉丝。获奖的方式非常简单,只要你跟着教程完成第一课的内容就能获得。
11029 17
|
3天前
|
文字识别 程序员 C++
实战阿里通义灵码极速编程-截屏-OCR-OLlama篇
通过实际案例展示阿里通义灵码如何极大提高编程效率。以开发屏幕截图OCR Python程序为例,使用Win10、Anaconda3、VS Code及通义灵码插件。经过四次提问与优化,从截屏选择矩形区域到调用大模型进行OCR识别,整个过程仅耗时半小时,最终形成可运行的控制台程序。加入界面开发后,总用时2小时,显著提升开发速度和质量。
35 5
|
22天前
|
人工智能 搜索推荐 安全
数百名研发人员用通义灵码,33%新增代码由AI生成,信也科技研发模式焕新升级
目前,信也科技数百名研发人员正在使用通义灵码,周活跃用户占比70%,新增代码中有33%由通义灵码编写,整体研发效率提升了11%,真正实现了数百研发人员开发效能的全面提升。
|
1月前
|
自然语言处理 前端开发 Serverless
基于阿里云通义千问开发编程辅助与代码生成工具
随着软件开发需求的增加,编程辅助与代码生成工具成为开发者提高效率的利器。这类工具能够根据用户描述生成代码片段、协助调试、生成自动化脚本等,大大减少重复性劳动。阿里云通义千问作为一款先进的大语言模型,具备强大的自然语言处理和代码生成能力,非常适合用于开发这样的工具。
64 3
|
8天前
|
人工智能 运维 自然语言处理
今晚围观—>安全运维工程师现场直播用通义灵码发现和修复代码漏洞
12 月 18 日晚 19:30 分,阿里云中小企业直播间「AI 编码助手一年养成记:从“打酱油”到企业开发“真正助手”」见。
|
2月前
|
人工智能 自然语言处理 IDE
通义灵码--我的编程好伙伴,让我晋升编程大神,从安装到使用
作为一名大数据开发工程师,我在编程过程中使用了通义灵码的@workspace与@terminal工具,这些工具极大地提高了我的工作效率,使我在处理新项目代码和实现新需求时更加得心应手。通过这些工具,我能够在不离开IDE的情况下快速解决问题,生成代码,优化现有代码,并通过智能问答功能获取即时帮助。通义灵码不仅支持多种主流编程语言,还提供了丰富的功能,如代码生成、单元测试生成、代码优化等,显著提升了我的编程体验。强烈推荐给所有希望提高编程效率的开发者。
|
2月前
|
自然语言处理 安全 搜索推荐
通义灵码帮你一键读工程代码,补全相关相似代码
当你接手他人项目代码,开发者需要大量学习项目代码、架构等,学习和上手成本高。通义灵码的@workspace可以一键读懂工程代码,生成代码逻辑流程图。