vscode + Copilot 调用 ai 大模型的时候,是如何给提示词的?

现在的 Copilot 可以对接 claude、gemini、gpt 这些大模型

我想知道的是,这个智能提示和AI自动补全是怎么实现的?

比如我的一个工程有 100 个 .py 文件,总不能是一次性把这 100 个 .py 都作为提示词传给 claude、gemini、gpt 吧?这样 token 不得爆炸了?

如果只把当前编辑的 .py 上传给 claude、gemini、gpt 做 AI自动补全,那么 claude、gemini、gpt 怎么知道复杂的 from 和 import 的上下文关系呢?

vscode + Copilot 是怎么平衡上下文信息和避免 token 爆炸的?


当然,这个问题,不局限于 vscode + Copilot ,对于 Cline、cursor 这些工具也是一样的,他们是怎么处理这个问题的?

阅读 486
2 个回答

刚刚抓包看了一下 Cline 。

首先它有一个很长的system提示词。

然后它会把当前工作空间下面的 文件列表 / 目录结构 / 当前正在编辑的文件 等等作为上下文提交(这里不包括文件的内容)。

里面有一个很重要的点是,它在提示词里面定义了一个类似 function call 的说明,比如当AI需要读取某个文件的时候,就会输出对应的函数,然后插件会重新提交完整的文件内容。


自动补全的提示词暂时没看,猜测也是AI根据上下文(目录结构),然后调用function call去查询对应的文件内容实现的。

可以看看系统提示词,上面写得很详细,应该有你要的答案。


image.png


image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏