
Barret李靖
@Barret_China • 81,374 subscribers
AI Engineer | Lifelong Learner | Dad of 2 | Cloud Native | Sharing insights and experiences | 小胡子哥,一个有趣的灵魂
Shorts
Videos

通过 Xcode simulator 启动一个模拟器,再加上苹果自家的 UI 测试框架 XTest,走 Accessibility API 读取 App 界面的元素树(按钮/文本框/文本内容),并模拟点击、输入、滚动,这样就可以安全地拿到很多被限制的内容了,例如微信/小红书等内容读取。 之前爬取 Linkedin 内容的时候,被平台检测到,还发出了警告,想到了这个安全的操作,让 AI Agent 尝试了下,确实可行。 iOS Simulator 里跑的是真 Safari / App,发出去的每个请求都带着合法 User-Agent、TLS 指纹,服务端看到的就一普通 iPhone 用户在刷 feed。因此技术上几乎无痕😄
Barret李靖43,102 görüntüleme • 20 gün önce

微软研发的 AutoGen 框架太强大了,它是一个多代理框架,利用它可以轻松定制一系列工作任务。 举一个常见的例子:我们要实现一个爬虫程序,抓取并保存网页图片。如果把这个任务丢给 ChatGPT,它会直接返回一串可执行代码,但是代码通常会存在问题,例如执行报错、缺少依赖等,你需要反复跟 ChatGPT 对话来完善程序。当然,我们也可以设定一个复杂 Prompt,要求它调用 ChatGPT 的代码执行插件,如果存在报错,则继续修正程序。 这个任务如果交给 AutoGen 来实现,将会变得无比简单,几行代码就可以搞定: 1)定义一个 Assistant Agent,它的任务是解决问题 2)定义一个 UserProxy Agent,它的任务是替代人询问问题,同时在本地执行程序 这两个 Agent 都不需要给他们设置 Prompt。当我们把爬虫任务交给 UserProxy 后,它会理解任务,然后询问 Assistant 应该如何做,Assistant 会把操作过程告诉 UserProxy,接着 UserProxy 会根据指示在本地安装依赖,然后创建文件执行代码,如果执行出现错误,它会把详细报错提交给 Assistant,依次循环,直到可以获取到最终的结果。任务结束的时候,你会看到目标图片已经保存到本地磁盘了。 利用这个框架可以做的事情非常多,它提供的能力也十分完善,可以在项目的 notebook 中找到很多最佳实践: P.S. 为了确保安全,还是建议你在 Docker 环境中执行程序,UserProxy 有一个 code_execution_config 配置,将 use_docker 配置为 True 即可;另外,它还有一个 human_input_mode 参数,设置为 NEVER,表示整个过程都不需要人参与,也可以设置为其他值,它会等待人的输入后再进行下一步操作,这个设计可以让人参与到任务执行过程,避免跑偏。
Barret李靖516,965 görüntüleme • 2 yıl önce

看到一个超炫酷的量子纠缠实现效果,其原理是通过 window.getScreenDetails() 获取窗口详细位置,然后通过 LocalStorage 共享窗口信息来实现的,这个创意太赞了,作者 𝕭𝖏ø𝖗𝖓 𝕾𝖙𝖆𝖆𝖑
Barret李靖388,715 görüntüleme • 2 yıl önce
1:02
Sensitive content
This media may contain sensitive content.

把耳机改成摩斯密码发送器,这个 Github 项目看起来十分极客: 原理比较简单:浏览器有一个 API 叫做 MediaSession,它允许对标准媒体行为进行自定义,例如点击 pause 键时执行什么动作可通过 JavaScript 进行重新定义,利用这个特性,根据不同的按键操作,就可以发送不同的消息指令了,手机和电脑锁屏状态都可以控制。 结合 Picture-in-Picture API 还可以做出更多有趣的事情,画中画允许浏览器打开一个系统级置顶的 Video,很多视频网站也支持了这个特性,为了增加灵活性,又新出了一个 Document Picture-in-Picture API,它支持将任意 HTML 内容放置到这个画中画窗口中,并使用 MediaSession API 来控制窗体内容的交互和呈现方式。 参考摩斯密码发送器项目的实现,能够做的有趣事情就比较多了,例如,可以将耳机改造成幻灯片控制器、游戏控制器,也可以用来控制一个全局置顶的番茄时钟、音乐播放器、视频会议等窗口的交互行为,这里有几个有趣的示例:
Barret李靖172,214 görüntüleme • 1 yıl önce

看到一个可以将文章直接转换成 PPT 演讲的工具,Paper2Video,一篇文章+一个头像+一段语音样本,它就能帮你生成一个生动的演讲解说视频。对于偏专业和学术性的场景,这个工具几乎能承担起人工完成的工作,做学术汇报和做课程的朋友有福了😄 仔细阅读了源码和论文,它的实现方式颇为精妙,整个 PPT 的渲染,主要基于 Beamer 这个声明式布局框架: 1)首先让大模型对内容做一次通篇的解说,并做好摘要分段,确保能够把核心知识表达清晰; 2)对于每页 PPT 的布局,通过视觉模型判断是否存在溢出、错位、拥挤等情况,如果存在类似的问题,就会让布局模块生成多套拼接方案,对图片和文字进行缩放后进行不同组合,再由视觉模型从中挑选出最优的一张; 3)过程中还添加了一个虚拟鼠标,方便捕获观众的注意力,也让整个呈现更具动态感与交互感; 4)口型采用的是 Hallo2,这是一种支持长时长、高分辨率、音频驱动的人像动画模型,能够让头像与语音同步地做口型/表情动画。 这个工具主要解决的还是论文汇报场景,不过有几个思路值得借鉴,包括如何将文章内容做拆解、如何做好 PPT 排版,如何做好口型等。 稍微改改,应该也能适配到更大众化的领域,例如做自动培训视频、技术方案的交互式解说,甚至产品手册的可视化呈现,把 Paper2Video 升级成 Doc2Video。
Barret李靖58,053 görüntüleme • 7 ay önce

Github 推出了 blocks, block 的能力。 Blocks 的目标是让代码仓库变得生动起来,除了代码和 README,还可以展示 3D 文件、脑图、流程图、图标、字体预览、CSS 样式预览等等,甚至还有可交互的模块,例如所见即所得的编辑器、可以排序和统计的表格、能够运行代码的沙箱等等。 只要按照对应的规范开发 block 并发布到市场(给仓库增加一个名为 github-blocks 的 tag 就行了),就可以被检索和使用,不过当前还是技术预览版本,需要本地起一个 devServer,然后借助在线网页才能渲染出来。 这个尝试感觉正在重新定义 github,以后或许不能再叫它代码仓库了,应该叫内容仓库。
Barret李靖129,874 görüntüleme • 2 yıl önce
Daha fazla içerik yok.