翻译自:https://continue.dev/docs/how-to-use-continue#using-context-from-multiple-other-files
如果在正确的情况下利用 LLM,可以加快编码速度。然而,如果在不应该信任LLM的情况下使用,LLM输出的内容会让你感到困惑。 页概述了我们认为应该和不应该使用“Continue”的场景。
介绍
Continue 的能力取决于所使用的LLM。 LLM有时会产生幻觉,因此可能会编造一个代码库或发明一些不存在的代码语法。如果LLM建议的某些内容不起作用或对你来说似乎很奇怪,最好仔细检查一下,或在网上搜索一下。
当你更多地使用“Continue”时,将了解何时信任它。一个很好的入门方法就是直接使用它并开始了解什么有效,什么无效。 Continue 始终要求你接受/拒绝它建议的任何修改,因此如果出现问题,可以随时撤消。
如果您尝试将它用于新任务,并且不知道“Continue”可以在多大程度上帮助你完成任务,可以按下面步骤开始。
- 选中您不理解的代码部分,然后在输入框中输入“tell me how this code works”
- 如果LLM解释是正确的,那么,在选中代码的同时,输入“how would you change this code to [INSERT TASK]?”
- 如果这个解释也是正确的,那么,在选中代码的同时,输入 /edit [INSERT TASK]
- 如果第一次修改的代码不起作用,请单击拒绝其建议,然后重试,通常LLM每次都会提出不同的建议
- 如果再次重试后LLM没有给您想要的东西,请单击“拒绝”,然后使用更具体、清晰的说明重试,并阐明你希望它做什么和不做什么
- 如果这仍然不起作用,那么您可能需要将任务分解为更小的子任务,并要求LLM一次完成其中的一项任务,或者自己手动完成
注意:你对你发布的所有代码负责,无论它是由你编写还是由你指导的LLM编写。 这意味着你必须对LLM输出的建议进行严格把关。 为了使这一过程变得更容易,Continue提供了GUI,可以使用自然语言方式让LLM 进行操作。
何时使用Continue
以下是Continue 擅长帮助你完成的任务:
费力的编辑
在IDE的查找和替换功能不好用的情况下,Continue效果很好(i.e. “/edit change all of these to be like that”)
Examples
- “/edit Use ‘Union’ instead of a vertical bar here”
- “/edit Make this use more descriptive variable names”
从头开始编写文件
Continue 可以帮助你从头开始构建 React 组件、Python 脚本、Shell 脚本、Makefile、单元测试等。
Examples
- “/edit write a python script to get posthog events"
- “/edit add a react component for syntax highlighted code"
从头开始创建模板
Continue 可以做更多事情。 例如,它可以帮助构建 Python 包的框架,包括一个 cli 应用程序,用于对参数进行排序并将其打印回来。
Examples
- “/edit use this schema to write me a SQL query that gets recently churned users”
- “/edit create a shell script to back up my home dir to /tmp/"
修复选中的代码
选中代码后,可以使用“Continue”对其进行重构(e.g “/edit change the function to work like this” or “/edit do this everywhere”)
Examples
- “/edit migrate this digital ocean terraform file into one that works for GCP”
- “/edit rewrite this function to be async”
询问选中的代码或整个文件
如果你不明白某段代码是如何工作的,可以选中并询问“这段代码是如何工作的?”
Examples
- “where in the page should I be making this request to the backend?”
- “how can I communicate between these iframes?”
询问错误
Continue 还可以帮助解释错误和异常信息并提供可能的解决方案。当您在终端中遇到错误或异常时,请按 cmd+shift+r (MacOS) / ctrl+shift+r (Windows)。 这会将堆栈信息放入“Continue”中,并要求Continue解释错误或异常。
找出要运行的进程
可以问“如何找到端口 8000 上正在运行的进程?”之类的问题。
Examples
- “what is the load_dotenv library name?”
- “how do I find running process on port 8000?”
提出单轮开放式问题
你可以直接在IDE内提出单轮开放式问题,Continue 目前不支持多轮对话。
Examples
- “how can I set up a Prisma schema that cascades deletes?”
- “what is the difference between dense and sparse embeddings?”
编辑现有的小文件
你可以选中整个文件并要求Continue进行修改,注意不要修改太大的文件。
Examples
- “/edit here is a connector for postgres, now write one for kafka”
- “/edit Rewrite this API call to grab all pages”
使用多个其他文件的上下文
Continue 可以使用多个文件中有关键信息,选中多个文件需要的代码可以用作上下文,使 LLM 给出的建议更加准确。
只需几个步骤即可完成任务
Continue 可以帮助您完成更多任务。 通常,这些任务只需要几步就能完成。
Examples
- “/edit make an IAM policy that creates a user with read-only access to S3”
- “/edit change this plot into a bar chart in this dashboard component”
何时不能使用 Continue
以下是“Continue”现在还不能做到的任务:
深度Debug
如果你花了 20 分钟调试存在多个文件中的复杂问题,那么“Continue”无法帮助你将各个点联系起来。 但如果你询问在调试过程中发现的内容点,“Continue”可以提供在不同点提供一些有用的建议。
同时编辑多文件
目前,“Continue”一次只能编辑一个文件。
使用整个文件的上下文
如果文件太大,Continue 不能将所有内容放入有限的 LLM 上下文中。 应当选中相关上下文的代码部分。 一般很少需要整个文件。
编辑大文件
同样,如果你尝试一次编辑太多行,可能会遇到上下文限制。 同时 LLM 输出内容也会非常慢。
很长的一行
如果你选中很长的行(例如复杂的 SVG),也可能会遇到类似上述的问题。
具有太多步骤的任务
现在还有其他任务Continue无法完全承担。 但通常情况下,如果你弄清楚如何将任务分解为子任务,则可以从“Continue”获得帮助。