Ollama and Continue: Setting Up an Open-Source AI Code Assistant

Ollama 和 Continue 提供了一个框架,用于创建一个完全开源的 AI 编程助手,该助手可以在笔记本电脑或远程服务器上本地运行。这种集成允许开发者在直接于 Visual Studio Code 和 JetBrains 编辑器中使用高级自动补全和聊天功能的同时,保持对代码和数据的控制权。

Local Model Configurations for Chat and Autocomplete

开发者可以根据其可用的硬件资源(VRAM)配置不同的 LLM 来处理特定的编程任务。

High-Performance Single Model: Codestral 22B

Mistral AI 的 Codestral 22B 推荐用于希望使用单个模型同时处理自动补全和聊天的用户。虽然它在编程任务方面能力极强,但它需要大量的 VRAM,并且受限于非生产许可,其用途仅限于研究和测试。

Optimized Multi-Model Setup: DeepSeek Coder and Llama 3

对于 VRAM 有限的用户或那些更喜欢专业化模型的用户,可以采用拆分配置:

  • Autocomplete: DeepSeek Coder 6.7B 推荐用于高效的代码补全。
  • Chat: Llama 3 8B 推荐用于对话式界面。

Ollama 处理多个并发请求的能力允许这些模型在硬件支持的情况下同时运行。如果不支持,用户可以将本地模型与远程托管或 SaaS 提供商结合使用。

Local Codebase Context and Retrieval

Continue 与 Ollama 集成,提供本地 RAG (Retrieval-Augmented Generation) 能力,确保代码库上下文保持私密。

Codebase Indexing with @codebase

@codebase 上下文提供程序允许助手从本地项目中检索相关代码片段。这是通过通过 Ollama 运行的 nomic-embed-text 嵌入模型并使用 LanceDB 进行索引实现的。这使得开发者可以提出针对项目的特定问题,例如在自己的代码中查询特定模型的默认上下文长度。

Documentation Integration with @docs

@docs 提供程序允许用户索引外部文档网站。通过提供一个 URL(例如 Ollama 的 GitHub README),助手可以检索并使用特定的文档章节作为聊天查询的上下文,同时保持检索过程在本地进行。

Model Fine-Tuning and Customization

Continue 允许团队利用其自身的开发数据来改进其 AI 助手。

Fine-Tuning StarCoder 2

Continue 会自动将开发数据(包括被接受的自动补全建议)保存到 .continue/dev_data。这些数据可用于微调像 StarCoder 2 这样的模型。推荐的工作流程包括:

  1. 将被接受的 tab 建议提取到 Hugging Face Datasets。
  2. 使用 Hugging Face Supervised Fine-tuning Trainer。
  3. 将生成的微调模型推送到 Ollama 模型库,以便进行团队范围内的部署和接受率测量。

Sources

相关

  • Dispatch
  • Dispatch
  • Dispatch
  • 项目
  • 项目