AI

AI

PixelRAG — 用截图替代文字解析,AI 读懂网页的新思路

今天看到一个很有意思的项目叫 PixelRAG,来自 Berkeley SkyLab 团队。核心想法很简单但很暴力:用截图代替文字解析来做 RAG。 问题在哪 我们平时用 AI 问问题,背后大概率在跑 RAG(Retrieval-Augmented Generation)。流程是:抓网页 → 解析成文字 → 分块 → 向量化 → 存起来 → 你问问题时检索相关文字 → AI 回答。 这套流程在大多数情况下没问题,但碰到表格、图表、排版复杂的页面就完蛋了。因为文字解析会把这些视觉结构全部丢掉。一个精心设计的定价页面,解析出来可能就是一堆没有上下文的数字。 PixelRAG 怎么做 不做文字解析,直接截图。网页 → 截图 → 图像分块 → 用专门训练的视觉 embedding 模型向量化 → 存成索引。你问问题时,检索的是图片,AI 直接从截图里读答案。 视觉结构完整保留:

By

AI

Prompt Engineering — 怎么跟 AI 说话才有效

今天学了一个概念叫 Prompt Engineering,翻译成中文就是「提示词工程」。听起来很高端,但说白了就是「怎么跟 AI 说话才能让它给出最好的回答」。 为什么这个东西值得花时间学?因为你会发现,同样一个问题,换一种问法,AI 的回答可能天差地别。不是 AI 的能力有差别,而是你给它的「信号」质量不一样。就像同一个员工,你给他模糊的指示和清晰的指示,产出完全不一样。 我把最近学到的 Prompt Engineering 技巧整理成几个原则。 第一个原则:具体 > 模糊。 「解释量子计算」和「用三个类比向一个没有物理背景的人解释量子计算的基本原理」,这两个提示词出来的结果完全不同。前者可能给你一篇学术论文式的回答,后者会用生动的比喻让你真正理解。 越具体的提示词,AI 越容易理解你想要什么。你可以指定回答的长度(「用 100 字解释」)、格式(「用列表的形式」)、受众(「假设读者是高中生」

By

AI

DALL·E 3 画图的五个实用技巧

今天花了大半天时间研究 DALL·E 3 的图片生成技巧,记录一些心得。 DALL·E 3 是 OpenAI 推出的 AI 画图工具,直接集成在 ChatGPT 里面。你不需要另外注册账号,也不需要学习新的界面,在 ChatGPT 的对话框里直接描述你想要的图片就行了。这个设计确实降低了门槛,但也容易让人低估了它的复杂性。 先说说我的使用场景。我需要用 AI 生成一些图片来配博客文章,但不想用那些免费素材网站上的通用图片。AI 生成的图片至少是独一无二的,而且可以精确控制内容。但实际操作下来,我才发现「精确控制」这四个字有多难。 第一个重要的经验:提示词的结构决定一切。 一开始我随便写提示词,比如「一只猫在城市里」,出来的图片完全不是我想要的。后来我学会了用结构化的提示词: 「主体:一只黑猫。风格:赛博朋克插画。环境:霓虹灯照亮的雨夜街道。光线:

By

AI

ChatGPT 的记忆功能,比你想像的好用

今天认真体验了一下 ChatGPT 的记忆功能,发现它比我预想的好用很多。 先说说什么是记忆功能。简单来讲,ChatGPT 可以记住你之前告诉它的信息,然后在以后的对话中自动使用这些信息。比如你告诉它「我是做前端开发的」,以后你问它任何技术问题,它都会自动调整回答的深度和方向,不会再问你「你是初学者还是有经验的开发者?」这种问题。 这个功能看起来很简单,但实际用起来的感受差距很大。 在没有记忆功能的时候,每次开新的对话都像是跟一个失忆的人聊天。你得重新介绍自己,重新描述你的需求,重新解释你的背景。虽然 ChatGPT 的对话质量很高,但每次都要花时间「建立上下文」这件事本身就让人很烦躁。 有了记忆功能之后,整个体验完全不一样了。ChatGPT 会记住你说过的事情——你的职业背景、技术栈、写作风格、甚至是你喜欢的沟通方式。这种感觉就像是从「跟陌生人聊天」变成了「跟一个了解你的朋友聊天」。 记忆功能的管理方式也很直观。你可以在设置里看到它记住了什么,也可以手动添加或删除记忆。比如你可以告诉它「请记住:我偏好使用 TypeScript 而不是 JavaScript」

By

AI

Cursor — AI 写代码的编辑器,真实使用体验

Cursor 这个工具我已经用了快一个月了,今天想认真地记录一下真实的使用体验。 先说结论:Cursor 确实提高了我写代码的效率,但它的「智能」远没有营销文章里吹的那么神。它更像是一个特别快的打字员,而不是一个真正的程序员。 Cursor 本质上是一个基于 VS Code 的代码编辑器,内置了 AI 对话功能。你可以用自然语言告诉它你想做什么,它会自动生成代码。听起来很美好,对吧?但实际用起来,你会发现问题远比你想的多。 首先是理解能力的问题。Cursor 能很好地处理简单的、明确的任务,比如「帮我写一个函数,输入一个列表,返回其中的最大值」。这种问题它基本上秒回,代码质量也不错。但一旦任务变得复杂,比如「帮我优化这个 API 的性能,目前在高并发下响应很慢」,它就开始犯迷糊了。它可能会给你一堆看起来很专业的建议,但很多是无关紧要的,甚至有些是错误的。 我印象最深的一次经历是,我让它帮我修一个 SQL 查询的性能问题。它自信满满地给了我一个「

By