VideoAgentTrek Screen Filter 与Ollama集成简化本地大模型AI工作流你是不是也遇到过这样的场景开会时屏幕上密密麻麻的会议纪要你一边听讲一边手忙脚乱地截图、复制文字然后粘贴到另一个工具里才能让AI帮你总结要点。或者浏览外文网站时看到一段关键信息需要先截图、识别文字再扔给翻译工具。整个过程繁琐又割裂打断了原本流畅的工作节奏。今天我想跟你分享一个能把这些步骤串联起来的“懒人”方案。它的核心思路很简单让一个专门“看”屏幕的工具和一个专门“思考”的大脑直接对话。我们不用再当中间人手动搬运信息。这个方案的主角就是部署在星图GPU平台上的VideoAgentTrek Screen Filter服务和你本地运行的Ollama。简单来说Screen Filter就像你的“电子眼”它能实时监控屏幕精准地识别出画面里的文字区域并把文字内容提取出来。而Ollama则是你电脑里的“私人AI助理”里面装着各种你下载好的语言模型。当“眼睛”看到文字后它可以直接把内容告诉“大脑”然后“大脑”就能立刻开始工作——无论是总结摘要、翻译语言还是分析情感都能一气呵成。接下来我就带你一步步搭建这个自动化工作流看看它如何让屏幕内容理解这件事变得前所未有的简单和高效。1. 场景与痛点我们为什么要做这件事在深入技术细节之前我们先聊聊为什么需要把Screen Filter和Ollama结合起来。理解了这个“为什么”后面的“怎么做”才会更有意义。想象一下你日常工作中的这些时刻跨语言协作参加一个国际项目的视频会议共享屏幕上快速闪过几页英文技术文档。你来不及细读但需要立刻抓住核心结论。信息快速消化观看一场冗长的线上产品演示直播演讲者的PPT上布满了数据和要点。你希望会后能立刻得到一份清晰的要点总结。内容监控与分析你需要定时查看某个数据看板或社交媒体信息流并对出现的关键文本信息进行情感倾向判断。传统的做法是什么无非是“截图 - OCR识别 - 复制文本 - 打开AI工具/网页 - 粘贴 - 等待结果”。这个过程里每一步都是手动操作不仅效率低下更重要的是打断了你的注意力流。你从沉浸式的观看或会议中跳脱出来变成了一个笨拙的信息搬运工。而我们的目标就是构建一个静默的、自动化的后台服务。让它像一位贴身的副驾在你专注驾驶工作时默默帮你处理好路况信息屏幕文本。Screen Filter负责捕捉信息Ollama负责处理信息两者通过一个简单的“管道”连接结果可以实时显示也可以保存下来供你回顾。这不仅仅是节省几次点击更是对你工作心流的一种保护。2. 核心组件简介认识你的“眼睛”和“大脑”在开始连接它们之前我们先快速认识一下这两位搭档。2.1 VideoAgentTrek Screen Filter你的屏幕文本捕捉器Screen Filter的核心能力是实时屏幕文本检测与识别OCR。它不是一个简单的截图工具而是一个持续运行的服务。你可以指定屏幕上的某个区域或者全屏它会像鹰一样盯着那里一旦有新的文字内容出现或变化它就能立刻感知并提取出来。它的输出是结构化的文本数据。这意味着它不仅能给你一串字符还能告诉你这些文字在屏幕上的位置、属于哪个文本框或段落。这对于后续处理非常有价值。部署在星图GPU平台上意味着它拥有强大的计算能力来保证识别的速度和准确率尤其对于复杂排版或小字体的场景。2.2 Ollama你的本地大模型管家Ollama的出现极大简化了在个人电脑上运行大型语言模型的复杂度。你可以把它理解为一个本地化的模型商店和运行引擎。一键获取模型通过简单的命令行比如ollama pull llama3.2就能把Meta的Llama 3.2模型下载到本地。统一管理它管理着你本地所有的模型切换使用就像切换播放列表里的歌曲一样简单。提供标准APIOllama启动后会在本地提供一个类似OpenAI格式的API接口默认在http://localhost:11434。任何能调用这个接口的工具都能直接与你本地的模型对话。把大模型放在本地运行最大的好处是隐私和安全。你的所有屏幕内容、处理请求都不会离开你的电脑。同时响应速度也取决于你的本地硬件避免了网络延迟。3. 实战搭建从零构建集成工作流理论说再多不如动手做一遍。下面我们来看看如何将这两者真正连接起来形成一个可用的工作流。这里我假设你已经成功在星图平台上部署了Screen Filter服务获得了它的API访问地址并且在本地安装并运行了Ollama例如已经运行了ollama run llama3.2。整个工作流的逻辑链条是Screen Filter监听屏幕 - 发现文本 - 通过脚本将文本发送给Ollama API - Ollama调用模型处理 - 返回结果。我们需要一个“粘合剂”脚本来串联前后两端。这里我用Python写一个简单的示例因为它易于理解且库生态丰富。3.1 环境准备与依赖安装首先确保你的电脑上有Python环境。然后我们需要安装两个关键的Python库pip install requests pillow mssrequests用于向Screen Filter和Ollama的API发送HTTP请求。pillow(PIL)一个强大的图像处理库这里我们主要用它来截图。mss一个超级快的跨平台截图库比PIL自带的截图功能性能更好。3.2 编写集成脚本这个脚本将完成核心的串联工作。我写了一个基础版本你可以根据自己的需求修改和扩展。import requests import json import time from mss import mss import io from PIL import Image # 配置信息 - 需要你根据实际情况修改 SCREEN_FILTER_API_URL https://your-screen-filter-service.com/api/ocr # 替换为你的Screen Filter服务地址 OLLAMA_API_URL http://localhost:11434/api/generate # Ollama默认API地址 OLLAMA_MODEL llama3.2 # 你本地使用的模型名称 # 1. 屏幕截图作为示例我们模拟Screen Filter的输入 def capture_screen(regionNone): 捕获屏幕指定区域的截图。region格式: {top: 0, left: 0, width: 800, height: 600} with mss() as sct: # 如果未指定区域则捕获整个屏幕 if region: monitor region else: monitor sct.monitors[1] # 通常索引1是主显示器 screenshot sct.grab(monitor) # 转换为PIL Image对象 img Image.frombytes(RGB, screenshot.size, screenshot.rgb) return img # 2. 调用Screen Filter服务进行OCR识别 def screen_filter_ocr(image): 将图片发送给Screen Filter API获取识别到的文本。 # 注意这里需要根据Screen Filter服务实际的API格式进行调整 # 假设API接受multipart/form-data格式的图片文件 img_byte_arr io.BytesIO() image.save(img_byte_arr, formatPNG) img_byte_arr img_byte_arr.getvalue() files {image: (screen.png, img_byte_arr, image/png)} try: response requests.post(SCREEN_FILTER_API_URL, filesfiles) response.raise_for_status() # 检查请求是否成功 result response.json() # 假设返回的JSON中识别文本在‘text’字段或者是一个包含多个文本块的列表 # 这里需要你根据Screen Filter的实际返回数据结构来解析 extracted_text result.get(text, ) # 请根据实际情况调整 print(f[Screen Filter] 识别到文本: {extracted_text[:100]}...) # 打印前100字符 return extracted_text except requests.exceptions.RequestException as e: print(f[Screen Filter] API调用失败: {e}) return None # 3. 调用Ollama处理文本 def ask_ollama(prompt, text): 将文本和指令发送给Ollama模型进行处理。 full_prompt f{prompt}\n\n文本内容{text} payload { model: OLLAMA_MODEL, prompt: full_prompt, stream: False # 我们一次性获取完整结果 } try: response requests.post(OLLAMA_API_URL, jsonpayload) response.raise_for_status() result response.json() return result.get(response, 模型未返回有效内容。) except requests.exceptions.RequestException as e: print(f[Ollama] API调用失败: {e}) return None # 4. 主工作流 def main_workflow(prompt请总结以下文本的核心要点, capture_regionNone, interval10): 主工作流函数。 :param prompt: 给Ollama的指令如“总结”、“翻译成中文”、“分析情感”。 :param capture_region: 屏幕捕获区域None为全屏。 :param interval: 每次处理的间隔时间秒。 print(f工作流启动。指令{prompt} 间隔{interval}秒) try: while True: print(\n *50) print(f[{time.strftime(%H:%M:%S)}] 开始新一轮处理...) # 步骤1: 截图 screen_image capture_screen(capture_region) print([步骤1] 屏幕截图已捕获。) # 步骤2: 调用Screen Filter提取文本 extracted_text screen_filter_ocr(screen_image) if not extracted_text or len(extracted_text.strip()) 5: # 简单过滤掉无意义文本 print([步骤2] 未识别到有效文本跳过。) time.sleep(interval) continue # 步骤3: 调用Ollama处理文本 print(f[步骤3] 正在请求Ollama模型 {OLLAMA_MODEL} 处理...) processed_result ask_ollama(prompt, extracted_text) if processed_result: print([步骤4] 处理完成结果如下) print(- * 30) print(processed_result) print(- * 30) # 这里你可以将结果保存到文件、发送到通知等 # with open(output.txt, a, encodingutf-8) as f: # f.write(f\n\n[{time.strftime(%Y-%m-%d %H:%M:%S)}] 结果:\n{processed_result}) else: print([步骤4] 处理失败。) print(f等待 {interval} 秒后继续...) time.sleep(interval) except KeyboardInterrupt: print(\n工作流被用户中断。) # 运行示例 if __name__ __main__: # 示例1总结屏幕内容 # main_workflow(prompt请用简洁的语言总结以下文本的要点并列出不超过3条关键信息) # 示例2翻译屏幕内容假设是英文 # main_workflow(prompt请将以下英文文本翻译成流畅的中文) # 示例3只监控屏幕左上角800x600的区域 region_of_interest {top: 100, left: 100, width: 800, height: 600} main_workflow(prompt分析以下文本所表达的主要情感倾向积极/消极/中性并简要说明理由, capture_regionregion_of_interest, interval15)3.3 脚本使用与定制这个脚本提供了一个完整的骨架。要让它真正跑起来你需要做以下几件事修改配置将SCREEN_FILTER_API_URL替换为你实际部署的Screen Filter服务的API端点。你需要查阅Screen Filter的文档了解其具体的OCR接口地址、请求格式和返回数据结构并相应调整screen_filter_ocr函数中的代码。选择模型确保OLLAMA_MODEL的名称与你本地通过ollama list查看到的模型名称一致。定义指令在main_workflow函数中prompt参数就是你给AI的指令。你可以自由发挥比如“将以下内容翻译成日语。”“提取这段文本中出现的所有人名、地名和机构名。”“根据以下会议纪要生成待办事项列表。”设定区域和频率通过capture_region指定你关心的屏幕区域比如只监控某个聊天窗口通过interval设定处理的频率避免过于频繁的调用。运行脚本后它就会按照设定的时间间隔自动执行“截图-识别-处理-输出”的循环。你可以将输出重定向到文件或者集成到桌面通知系统实现真正的后台自动化。4. 应用场景扩展还能怎么玩搭建好这个基础管道后它的可能性就由你的想象力来决定了。这里有几个延伸思路多模型路由在脚本里判断文本类型比如是中文还是英文是技术文档还是对话然后自动选择Ollama中不同的专用模型来处理比如一个擅长翻译一个擅长代码。触发式处理不要一直轮询而是让Screen Filter在检测到特定关键词或文本变化模式时才触发Ollama处理。这需要Screen Filter服务提供更高级的事件回调功能。结果自动归档将Ollama处理的结果如摘要、翻译稿自动按照日期、主题分类保存到笔记软件如Obsidian、Notion或知识库中。实时字幕与翻译结合屏幕录制或特定窗口捕获实现对视频会议、外语视频的近乎实时的字幕生成和翻译。5. 总结回过头看我们把Screen Filter和Ollama集成在一起本质上是在做一件工具链自动化的事情。它把两个原本孤立的能力——视觉感知和语言理解——无缝衔接了起来。对于需要频繁从屏幕获取信息并处理的用户来说这种集成带来的效率提升和体验优化是显而易见的。整个过程的技术门槛并不高核心就是理解两个服务的API如何调用然后用一个轻量级的脚本把它们“粘”起来。最大的工作量可能在于根据Screen Filter的实际API响应格式来调整解析代码。一旦跑通你就拥有了一个高度定制化、完全本地化、隐私安全的AI屏幕助手。当然这个方案目前还是一个需要自己动手维护的“原型”。它的稳定性、错误处理、资源消耗都需要根据实际使用情况进行优化。但最重要的是它为你打开了一扇门你可以完全控制AI如何“看见”并“理解”你的数字世界。不妨就从今天这个脚本开始尝试打造一个专属于你的自动化工作流吧。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。