从今天开始,将 AI 视为你的合作伙伴,一起创造更多可能性!
新工具发布
Windsurf 已经发布了一段时间。前几天赶上黑色星期五,我们的用户社区还分享了优惠信息。
然而,由于羊毛党过于活跃,官方决定将试用期延长至 12 月 11 日。
相比之前的两个月试用期,这次的时间大幅缩短。11 日之后,我们的 Pro 账号是否还能继续使用,目前还是个未知数。
许多用户已经开始使用 Windsurf,并感到非常兴奋。在知识星球社区中,有星友用它开发了 Todoist 和 Obsidian 的链接插件。
更有用户进一步开发了智能 PDF 翻译应用。
看到别人玩得这么嗨,你可能也已经跃跃欲试。但很多用户尚未充分利用 Windsurf,尤其是其独特的 Windsurf Cascade 功能。
根据官方介绍,Cascade 是一个强大的推理引擎,能够进行深度的多步骤思考,并具备编辑和解释代码的能力。此外,Cascade 还具备实时感知开发者行为的能力,能够基于持续的工作内容执行、调整和继续编辑任务。
但这些定义究竟意味着什么?接下来,我们将通过一个实际案例,深入解析 Windsurf Cascade 的这些能力,助你快速开发原型系统,满足实际需求。
实际案例解析
本案例将从一个现成的 API 入手,根据需求进行调整,生成一个自定义的软件包,并让全球用户都能下载安装。此外,我们还会在本地搭建一个 Web 界面,方便用户使用。
乍一听,这似乎很复杂,但实际上并不难。
第一步:了解 API
我们使用的 API 来自 Jina AI,主要功能是长文本分片。
你可能还记得,我的 Python AI 工作流框架中就包含这一功能。由于大语言模型存在上下文限制,超出窗口范围的数据将无法处理。在 Openrouter 的模型列表左侧,你可以清楚看到 Context Length 这一项,范围从 4K 到 1M 不等。
即便模型支持较长的上下文窗口,如果不限制分片长度,模型在输出时可能会自动“精简”内容。对于长文写作和翻译来说,这会导致细节丢失。
在之前的 Python 框架中,我使用的是 Langchain 的 RecursiveCharacterTextSplitter 进行分片操作。
然而,我对 Langchain 的分片方式并不满意。分片边缘的重叠部分常常带来意想不到的问题,比如标题或首句重复。若不进行人工检查,这些问题很容易出现在最终结果中。
如果我们将重叠设置为 0,分片之间将没有任何重叠,但这也可能导致句子被截断,尤其是在缺少标点符号的情况下。
既然原有的拆分方式存在问题,我决定尝试 Jina AI 的 segmenter API。
这个 API 在中文和英文的长文本分片上表现不错,尤其是中文古文的分片效果。
然而,这种方法的分片过于稀疏,导致一段文本被拆分成多行或多句,每段字符数仅为个位数。
原本我们希望每段不超过一定数量的 token(例如 1000),但实际结果却是一行一段,甚至一句一段。这不仅降低了处理效率,还会增加成本。
于是,我决定请 Windsurf Cascade 出马,优化这一流程。