Cursor 等 AI IDE 怎么解决单文件一万行的这种超长上下文?例如我公司有个项目后端所有业务逻辑都在 BusinessService.cs 里,里面分了六十几个 Region, Cursor 完全处理不了这个文件,一直提示网络错误

165 天前
 drymonfidelia
3344 次点击
所在节点    程序员
13 条回复
mumbler
165 天前
会把所有代码建立一个知识库,用向量查找相关代码文件,然后 50 行,50 行去定位具体位置

网络错误不是因为你代码太大了,我把整个 python3.10 的源码让 cursor 改都没问题
drymonfidelia
165 天前
@mumbler 单个文件太大了他就会一直网络错误,别的小文件从来就没有出现过
另外它也不能生成太大的文件,差不多超过 1000 行他就生成不了了,一直网络错误
wfhtqp
165 天前
拆分步骤挨个来
sss15
165 天前
一看到.cs 莫名的亲切,.net 的开发吗?
思路是利用 partial ,把一个文件拆成多个文件,对调用不影响,无需改动其他地方
把 BusinessService.cs 拆分成 BusinessService.base.cs 、BusinessService.user.cs 等等,中间那一层根据业务拆分,这样类还是 BusinessService ,调用那边没有任何修改
然后每个 BusinessService.xx.cs 的类定义前面加上 partial
类似
```
public partial class BusinessService
```
ddch1997
165 天前
@drymonfidelia 得用 agent 模式,agent 模式他他会反复编辑这个文件,而且他会拆分单次编辑任务的颗粒度,保证单次编辑在上下文的范围内,例如利用 3.7 生成原型就是他多次编辑 html 得到的一个超长大文件
Huelse
165 天前
处理不了,你想想这么大的文件拆分 Token 会形成什么数量级?目前只能分文件分模块来处理
idblife
165 天前
单文件一万行
这是谁遗留下来的。。。
cheng6563
165 天前
网络错误可能是真的网络错误。
不过超长上下文也确实搞不了。
tool2dx
165 天前
10000 行代码需要用官方的 api ,cursor 是中间商赚差价,为了省钱,会把用户代码截断。

差不多 8k token = 1000 行代码。如果要喂 AI 10000 行代码,基本上只需要 80k input tokens 就能实现,cladue 3.7 有 200k 的输入上限呢,完全支持。

仅仅看你钱包鼓不鼓。
monosolo1on1
165 天前
就如楼上所说,可能真的只是网络错误。
长一点的文件我看它都是分行读取的。
根据自己不严谨的体验,晚上网络出错的可能性小一点,可能和我自己的机场有关。
liuliuliuliu
165 天前
@sss15 正解
drymonfidelia
164 天前
@sss15 我都忘了可以用 partial 拆,确实是个好办法
rogerer
164 天前
就是得拆,太长的上下文严重影响 token 使用量以及准确率。
LLM 有 exposure bias ,意思是序列越长出错的概率越高,是指数增长的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1120821

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX