1. Copilot 为什么会给出不准的建议
刚开始用 Copilot 时,我也常碰到它推荐的内容和当前代码完全不在一个频道。你想写数据处理,它偏给你补网络请求;你在改业务逻辑,它却像没看见上下文一样往别的方向跑。
原因不复杂。Copilot 能看到的是有限的局部信息,项目里的自定义类库、内部函数、约定命名,它并不会天然理解。它更像一个读过很多公开代码的新人,能模仿常见写法,但对你们项目内部那套规则并不熟。
延迟也是另一个让人烦的点。输入之后要等几秒才出建议,节奏一断,手感就没了。常见的触发因素基本就这几类:项目太大、索引太慢、网络波动,或者 IDE 本身资源不够。
2. 先把项目上下文喂给它
2.1 写清楚文档和类型注解
想让 Copilot 少猜一点,最直接的办法就是把上下文写明白。函数、类、关键字段该补的 docstring 就补上,参数类型和返回值也别省。
def calculate_risk_score(portfolio: dict[str, float], market_data: pd.DataFrame) -> float:
"""
计算投资组合的风险评分
:param portfolio: 投资组合字典,格式为 {股票代码:权重}
:param market_data: 包含股票历史波动率的 DataFrame
:return: 0-100 之间的风险评分,值越大风险越高
"""
# 这里 Copilot 会根据注释给出更准确的建议
加了这些信息之后,它的建议通常会稳很多。至少在这个例子里,它更容易判断你要遍历的是 portfolio.items(),而不是随手给一个泛化的 for 循环。
2.2 把项目结构整理顺手
项目结构乱的时候,Copilot 也会跟着乱。文件名、目录名、模块边界越清楚,它越容易抓到你在干什么。尤其是同类功能分散在多个文件里时,最好让入口文件、工具函数、业务逻辑各归其位。这个不只是为了 Copilot,后面你自己回头看代码也省事。

