chatllm-vscode:与大模型API交互VSCode插件


ChatLLM 是一个 VSCode 扩展,用于以灵活且长格式的方式与 LLM API 进行交互。它利用 VSCode 笔记本支持来实现此目的,创建一种新型笔记本 (.chatllm) 文件,您可以在其中通过长文档与(基于 API 的)LLM 系统进行交互。 

注意:此插件要求您拥有自己的 OpenAI API 密钥(或其他 LLM API 密钥);它不适用于免费版本的 ChatGPT。

现在并不缺乏“与ChatGPT交谈”风格的VSCode插件扩展,但这些扩展通常鼓励短期的、特定的交互,而不是长期的、持久的项目。 幸运的是,VSCode中已经有了一个非常好的长格式内容用户体验:Notebook界面。这个扩展只是创建一个新的“.chatllm”笔记本文件,其中“code”单元格是提示符(您还可以包括markdown单元格),并且您可以在整个文档中与LLM交互(上下文长度允许)。

您的聊天都保存在本地,而不是在您不拥有的云服务上(例如,ChatGPT的Web界面开始变得非常慢,非常长的聊天)。您也可以轻松地交换模型后端。此版本支持OpenAI,

对令牌截断的显式控制。 您可以指定要向API发送多长时间的聊天历史记录(同时始终保留系统提示符等元素)

提示中包含动态文件。 ChatGPT对于编码项目的一个常见烦恼是,当您编辑时,您的实际代码开始偏离输出(但我仍然比Copilot更喜欢它)。 在这里,您可以直接在提示中包含(始终更新)源代码。

这个扩展是故意最小化的,但我发现它比很多“AI编码助手”更有用。 其他人可能也会发现它很有用。

特点包括:

  • 利用现有的笔记本用户体验,直接在 VSCode IDE 中进行聊天对话。
  • 在本地存储和操作长格式聊天对话,无需依赖云存储。
  • 将文件动态展开为提示,以更新提示以响应编辑。
  • 支持不同的LLM API(目前是OpenAI、Together、Google),支持多种不同的模型。

快速开始:

  • 安装扩展。
  • 运行“ChatLLM:编辑设置”命令。
  • 在默认的 GPT-4-Turbo 模型中,添加您的 OpenAI API 密钥。
  • 创建一个扩展名为“.chatllm”的新笔记本文件。
  • 添加代码单元格,键入提示符,然后运行该单元格。响应将流回单元输出。

动机
在大多数情况下,我认为人们使用 LLM 的方式并不理想,尤其是在集成开发环境的集成方面。VSCode 上不乏 "与 ChatGPT 对话 "类型的插件,GitHub Co-pilot 也有聊天功能,但这些方法似乎都优先考虑短期的一次性问题和代码生成,而不是长期的互动。

根据我的经验,利用 LLM 的最佳方式(适用于大多数任务,但以编码为例)是通过长式互动,将聊天记录视为长期发展的 "项目"。但与此同时,大多数用于 LLM 的公共接口在这方面的设置都很糟糕:许多接口根本无法处理长项目(它们无法处理截断等问题),即使是我通常会使用的 ChatGPT 接口,在构建长聊天记录时也会变得非常滞后。

幸运的是,我们几乎都在使用的集成开发环境已经有了实现这一目标的完美界面:笔记本界面。这个插件定义了一种新的笔记本类型--".chatllm "笔记本,让你可以使用这个接口与 LLM 进行长篇讨论互动。我将其写成 VSCode 插件,而不是 Jupyter notebook cell magic(顺便说一句,它也存在),主要是因为我想在实际的集成开发环境中进行开发。虽然将这些插件嵌入带有实际 Python 内核的 Jupyter 笔记本中可能很有意义,但实际上我并不希望大部分开发工作都在笔记本中进行,我更希望有一个只处理 LLM 的更具体的接口。