V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
drymonfidelia
V2EX  ›  程序员

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

  •  
  •   drymonfidelia · 1 天前 · 2136 次点击
    13 条回复    2025-03-25 15:44:28 +08:00
    mumbler
        1
    mumbler  
       1 天前
    会把所有代码建立一个知识库,用向量查找相关代码文件,然后 50 行,50 行去定位具体位置

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

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

    仅仅看你钱包鼓不鼓。
    monosolo1on1
        10
    monosolo1on1  
       1 天前 via iPhone
    就如楼上所说,可能真的只是网络错误。
    长一点的文件我看它都是分行读取的。
    根据自己不严谨的体验,晚上网络出错的可能性小一点,可能和我自己的机场有关。
    liuliuliuliu
        11
    liuliuliuliu  
       1 天前
    @sss15 正解
    drymonfidelia
        12
    drymonfidelia  
    OP
       1 天前
    @sss15 我都忘了可以用 partial 拆,确实是个好办法
    rogerer
        13
    rogerer  
       1 天前
    就是得拆,太长的上下文严重影响 token 使用量以及准确率。
    LLM 有 exposure bias ,意思是序列越长出错的概率越高,是指数增长的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2514 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:56 · PVG 23:56 · LAX 08:56 · JFK 11:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.