实战阿里通义灵码极速编程-截屏-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
AI 代码解读

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
AI 代码解读

if name == "main":
image_path = capture_screen_region()
markdown_content = perform_ocr(image_path)
print(markdown_content)

目录
打赏
0
9
9
0
76
分享
相关文章
高效部署通义万相Wan2.1:ComfyUI文生/图生视频实战,工作流直取!
通义万相Wan2.1开源不到一周,已登顶HuggingFace Model 和 Space 榜双榜首,在HuggingFace和ModelScope平台的累计下载量突破100万次,社区热度持续攀升!为响应小伙伴们对ComfyUI工作流运行Wan2.1的强烈需求,社区开发者整理了实战教程👇
高效部署通义万相Wan2.1:ComfyUI文生/图生视频实战,工作流直取!
高效部署通义万相Wan2.1:使用Gradio搭建WebUI体验实战
随着通义万相Wan2.1 在社区的热度持续上涨,魔搭创空间的体验Demo(https://modelscope.cn/studios/Wan-AI/Wan-2.1)已经排起长队。
通义灵码上新推理模型,快来体验数学编程双冠王 Qwen2.5-Max
近日,通义灵码上新模型选择功能,除新增 DeepSeek 满血版 V3 和 R1 外,Qwen2.5-Max 也正式上线,它使用了超过 20 万亿 token 的预训练数据及精心设计的后训练方案进行训练。
通义灵码 AI实战《手把手教你用通义灵码写一个音乐电子小闹钟》
通义灵码DeepSeek版本相比qwen2.5,增强了深度思考和上下文理解能力,显著提升了开发效率,尤其适合代码能力较弱的运维人员,真正实现了“代码即服务”。
81 1
【通义灵码】三句话生成P5.js粒子特效代码,人人都可以做交互式数字艺术
我发掘出的通义灵码AI程序员新玩法:三句话生成P5.js粒子特效代码,人人都可以做交互式数字艺术
通义灵码上线 @workspace 新能力,结合当前代码仓库理解工程、代码查询与问答等
通义灵码上线 @workspace 新能力,结合当前代码仓库理解工程、代码查询与问答等
今天的功德,在通义代码模式攒足了......
今天的功德,在通义代码模式攒足了......
今天的功德,在通义代码模式攒足了......
|
5天前
技术|通义代码模式上线了!
技术|通义代码模式上线了!

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等