上个月帮一个做法律科技的朋友调试产品,他的工具需要一次性分析完整的合同文档——少的二三十页,多的上百页。用的OpenAI API,每次都得手动切段落、分块处理、最后再拼起来。拼的时候经常丢信息,尤其是合同里的相互引用条款,“见第三条第二款”这种,分块后第三条在上一块,第二款在下一块,模型直接就懵了。
他问我有没有更好的方案,我说你试试Claude。他第一反应是:“又要换API?别折腾了。”

结果试完之后,他给我发了一条消息:“这个上下文窗口,确实有点东西。”
200K到底能塞多少东西?
换算成实际文件:一次能处理大约15万个英文单词,或者8万个中文字符。什么概念?《三体》第一部全本大约20万字,Claude一口能吞下大半本。放到实际工作场景:
-
一份100页的招股书PDF
-
一个中等规模代码仓库的全部核心文件
-
一场3小时访谈的逐字稿
-
50封邮件往来的完整线程
这些都能一次性丢进去,不需要切,不需要预处理。
OpenAI的GPT-4 Turbo是128K,差了约56%。听起来不多?但实际操作中,128K意味着你得卡着边界切,而200K意味着“基本不用想边界问题”。
但问题来了:窗口大就一定好用吗?
我实测了两个场景,结果挺有意思。
场景一:长文档QA(问答系统)
拿一份82页的上市公司年报(PDF转txt后大约7万中文字符)做测试。问同一个问题:“公司2023年海外收入的占比是多少?海外市场增长率对比国内市场如何?”
-
OpenAI方案(128K):一次性塞进去没问题,但回答时漏掉了“对比国内市场”这部分,只给出了海外收入占比。跑了三次,两次漏信息。
-
Claude方案(200K):完整给出了三个数据点,还额外标注了每个数据所在的页码。
差异原因不在模型能力上,在注意力机制上。窗口越大,模型在回答时需要“回溯”的范围越大。OpenAI的处理方式是均匀分配注意力,Claude在长文本上做了优化,会更关注开头、结尾和明显的数据段落。
场景二:代码库理解
丢了一个中小型Python项目(约50个文件,总计1.2万行代码)让两个API分别回答:“哪些函数调用了database.py里的get_connection()?”
-
OpenAI:需要先把代码库概要提取出来再问,直接一次性丢进去会超128K,即使不超也容易漏掉跨文件的调用关系。
-
Claude:200K足够塞下全部文件,回答时列出了7个调用位置,对了6个。
说实话,OpenAI在这个场景吃亏在“窗口刚好卡在边界上”。如果代码库更大,两边都得切,差距就没那么大了。
那到底该怎么选?
我的个人判断(用了半年多的实际感受):
-
Claude更适合:法律文书分析、长访谈整理、完整代码库理解、学术论文审稿。这些场景的共同点是“需要一次性看到全貌”,切分后信息损耗严重。
-
OpenAI更适合:多轮对话、短文本生成、需要频繁调参的场景。它的响应速度更快,生态工具更成熟(函数调用、JSON mode这些)。
-
两者都行:常规文档(10页以内)、客服对话、一般性的内容生成——这种场景下128K和200K的差距你基本感受不到。
一个被忽视的成本问题
200K窗口看着爽,但消耗的token数是实打实的。一次请求塞200K,即使只回来500个token,你也得付200K的输入费用。
Claude的价格:输入$3/1M tokens,输出$15/1M tokens。一次200K的输入成本大约$0.6。OpenAI是$10/1M输入(GPT-4 Turbo),同样200K要$2。
但OpenAI的128K实际用起来,你可能得发2-3次请求才能完成Claude一次能搞定的事。总成本算下来,各有千秋。不过如果你按“每成功完成任务”来计算,Claude在长文本场景下更划算。
我的建议是:别被参数带偏。先问问自己“我的任务需不需要一次性看完整上下文”。需要,就上Claude;不需要,两个都能用,哪个顺手用哪个。
上周那个法律科技的朋友最后还是换了Claude。他说了一句话我印象很深:“我不需要知道API怎么切分文档,我需要的是把合同丢进去,它告诉我这里有没有坑。”
这才是上下文窗口的真相——它不是给开发者炫技的,是给用户省事的。


