readme

翻译自: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”可以在多大程度上帮助你完成任务,可以按下面步骤开始。

  1. 选中您不理解的代码部分,然后在输入框中输入“tell me how this code works”
  2. 如果LLM解释是正确的,那么,在选中代码的同时,输入“how would you change this code to [INSERT TASK]?”
  3. 如果这个解释也是正确的,那么,在选中代码的同时,输入 /edit [INSERT TASK]
  4. 如果第一次修改的代码不起作用,请单击拒绝其建议,然后重试,通常LLM每次都会提出不同的建议
  5. 如果再次重试后LLM没有给您想要的东西,请单击“拒绝”,然后使用更具体、清晰的说明重试,并阐明你希望它做什么和不做什么
  6. 如果这仍然不起作用,那么您可能需要将任务分解为更小的子任务,并要求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”获得帮助。