14 篇文章带有标签 “Continue”

开发 RAGFlow MCP Server

这是第一次开发 MCP Server,想着使用智能编码工具(GitHub Copilot、Cursor、Trae)进行氛围编程,发现真不容易,Claude 3.7 sonnet 效果不错,在 GitHub Copilot 没用多长时间超限制了;Cursor 没有达到之前那种随心的效果;Trae 要排长队,太有挫败感了。于是,开始了以人编码为主,大模型辅助的开发过程。

  1. 初始化:加载环境变量,初始化 RAGFlow 客户端。
  2. 工具注册:定义工具列表,描述工具的输入/输出。
  3. 工具逻辑:实现工具的具体调用逻辑。
  4. 服务器启动:通过 stdio 启动 MCP Server 并监听请求。
uvx create-mcp-server \
    --path ragflow-mcp-server \
    --name ragflow-mcp-server \
    --version 0.1.0 \
    --description "RAGFlow MCP Server" \
    --no-claudeapp
cd ragflow-mcp-server
uv sync --dev --all-extras
uv add ragflow-sdk

Continue Agent 使用 GitHub MCP Server

  • 访问 GitHubSettings 页面,点击 Developer settings
  • 点击 Personal access tokens,然后点击 Tokens (classic)
  • 点击 Generate new token 按钮。

config.yaml 文件配置如下:

name: Local Assistant
version: 1.0.0
schema: v1
models:
  - name: Autodetect
    provider: ollama
    model: AUTODETECT
  - name: DeepSeek Chat
    provider: deepseek
    model: deepseek-chat
    apiKey: sk-xxx
  - name: DeepSeek Coder
    provider: deepseek
    model: deepseek-coder
    apiKey: sk-xxx
// ...

GitHub 上创建一个新的仓库,命名为 RAGFlowAssistant

提示词:创建仓库: RAGFlowAssistant

到 GitHub 上查看创建的仓库:

continue: config.yaml Reference

config.yaml Reference

Continue hub 助手使用 config.yaml 规范定义。本地助手也可以通过放置在全局 .continue 文件夹中的 YAML 文件 config.yaml 进行配置(Mac 上为 ~/.continue,Windows 上为 %USERPROFILE%\.continue

:::info Config YAML 替代了 config.json。查看迁移指南。 :::

一个助手由以下部分组成:

  1. 顶级属性,用于指定助手的 nameversionconfig.yamlschema
  2. 块列表,这些是可组合的编码助手构建块数组,可供助手使用,如模型、文档和上下文提供者。

块是编码助手的一个独立构建块,例如一个模型或一个文档来源。在 config.yaml 语法中,块包含与助手相同的顶级属性(nameversionschema),但在其所属的块类型下只有一个项目。

可以在 Continue hub 上找到块和助手的示例。

助手可以显式定义块(参见下面的属性),也可以导入和配置现有的 hub 块。

Hub 块和助手通过格式为 owner-slug/block-or-assistant-slug 的标识符识别,所有者可以是用户或组织。

可以通过在块类型下添加 uses 子句将块导入到助手中。

Continue 源码分析 - 向量数据库存储位置

向量数据库存储目录名字的组成部分:

  • IndexTag.directory: /Users/junjian/GitHub/continuedev/continue-0.9.191-vscode/extensions/vscode
  • IndexTag.branch: NONE
  • IndexTag.artifactId: vectordb::_TransformersJsEmbeddingsProvider::bge-small-zh-v1.5

变量IDE ExtensionsBranchEmbedding ProviderEmbedding Model

源代码:core/indexing/refreshIndex.ts

export function tagToString(tag: IndexTag): string {
  return `${tag.directory}::${tag.branch}::${tag.artifactId}`;
}

Continue 源码分析 - 键盘快捷键

源代码:gui/src/components/mainInput/TipTapEditor.tsx

function TipTapEditor(props: TipTapEditorProps) {
  //...
  const editor: Editor = useEditor({
    extensions: [
      Document,
      History,
      Image,
      Placeholder.configure({
        placeholder: () =>
          historyLengthRef.current === 0
            ? "提出任何问题,'/' 斜杠命令,'@' 添加上下文"
            : "提出后续问题",
      }),
      Paragraph.extend({
        addKeyboardShortcuts() {
// ...

源代码:gui/src/pages/gui.tsx

Continue 源码分析 - transformers.js 大模型提供者

模型 语言 类型 URL
jina-embeddings-v2-base-zh 中文 Embedding https://huggingface.co/Xenova/jina-embeddings-v2-base-zh
bge-small-zh-v1.5 中文 Embedding https://huggingface.co/Xenova/bge-small-zh-v1.5
bge-base-zh-v1.5 中文 Embedding https://huggingface.co/Xenova/bge-base-zh-v1.5
bge-large-zh-v1.5 中文 Embedding https://huggingface.co/Xenova/bge-large-zh-v1.5
all-MiniLM-L6-v2 英文 Embedding https://huggingface.co/Xenova/all-MiniLM-L6-v2
bge-base-en-v1.5 英文 Embedding https://huggingface.co/Xenova/bge-base-en-v1.5
bge-reranker-base 英文 Reranker https://huggingface.co/Xenova/bge-reranker-base
TinyLlama-1.1B-Chat-v1.0 英文 LLM https://huggingface.co/Xenova/TinyLlama-1.1B-Chat-v1.0
phi-1_5_dev 英文 LLM https://huggingface.co/Xenova/phi-1_5_dev
Qwen1.5-0.5B 中文 LLM https://huggingface.co/Xenova/Qwen1.5-0.5B
Qwen1.5-1.8B 中文 LLM https://huggingface.co/Xenova/Qwen1.5-1.8B
Qwen1.5-0.5B-Chat 中文 LLM https://huggingface.co/Xenova/Qwen1.5-0.5B-Chat
codegen-350M-mono 英文 LLM https://huggingface.co/Xenova/codegen-350M-mono
codegen-350M-multi 多语言 Code LLM https://huggingface.co/Xenova/codegen-350M-multi
deepseek-coder-1.3b-base 中文 Code LLM https://huggingface.co/Xenova/deepseek-coder-1.3b-base
deepseek-coder-1.3b-instruct 中文 Code LLM https://huggingface.co/Xenova/deepseek-coder-1.3b-instruct

Continue 源码分析

通过配置创建新的 Extension,用于区别于 Continue 。

{
  "name": "continue",
  "icon": "media/icon.png",
  "version": "0.9.218",
  "displayName": "LNSoft Continue",
  "description": "The leading open-source AI code assistant",
  "publisher": "LNSoft Continue"
}

目录:extensions/vscode

package.json

package.json 由开发者手动创建和维护,主要用于定义项目的配置信息。

  • configuration
  • commands
  • keybindings
  • menus
  • views

package-lock.json

package-lock.json 由 npm 自动生成和更新,主要用于锁定依赖的具体版本,确保安装一致性。

可以通过使用 package.nls.json 文件来支持多语言。package.nls.

Continue

Continue 使您能够在 IDE 中创建自己的 AI 代码助手。使用 VS CodeJetBrains 插件保持开发者的流畅体验,这些插件可以连接到任何模型、任何上下文以及任何其他你需要的东西。

  • 轻松理解代码部分
  • Tab 自动完成代码建议
  • 重构您正在编码的函数
  • 询问代码库相关问题
  • 快速使用文档作为上下文
  • 使用斜线命令启动操作
  • 将类、文件等添加到上下文
  • 立即了解终端错误

Continue 使您能够使用适合工作的模型,无论是开源还是商业,本地运行还是远程运行,用于聊天、自动完成或嵌入。它提供了许多配置点,以便您可以自定义扩展以适应您现有的工作流程。

语言 占比
TypeScript 74.0%
Kotlin 11.8%
Rust 4.9%
CSS 3.6%
Scheme 2.5%
JavaScript 2.4%
Other 0.8%

Continue - It’s time to collect data on how you build software

是时候收集关于你们如何构建软件的数据了。

  • LLM more helpful with coding (LLM在编码方面更有帮助)
  • Developers use LLM while coding more (开发者在编码时更多地使用LLM)
  • Better data collected on how software is built (收集到更好的关于软件构建方式的数据)
  • Better LLM is trained or fine-tuned (训练或微调更好的LLM)

随着时间的推移,开发者的偏好和使用的工具也在不断演进。当前一代的开发者正在用大型语言模型(LLMs)取代之前的Google和Stack Overflow,就像之前的一代人用Google和Stack Overflow取代了传统的参考手册一样。 在这个过渡期中,能够保留和吸引开发者的组织将会:

首先,理解他们的开发者如何使用LLMs,并通过收集开发数据——即他们组织构建软件的方式——来展示使用LLMs的投资回报率(ROI)。 然后,利用这个基础建立一个开发数据引擎——一个确保LLMs始终拥有最新信息和代码的持续反馈循环,以他们偏好的风格呈现。 通过展示ROI来增加LLMs预算的工程组织将能够保留他们的顶尖开发者。

Continue Code LLM Autopilot

DeepSeek API 使用与 OpenAI 兼容的 API 格式,通过修改配置,您可以使用 OpenAI SDK 来访问 DeepSeek API,或使用与 OpenAI API 兼容的软件。

参数 值 base_url    https://api.deepseek.com/v1 api_key 申请 api_key

参数
base_url https://api.deepseek.com/v1
api_key YOUR_API_KEY
模型 描述 上下文长度
deepseek-coder 擅长处理编程任务 16K
deepseek-chat 擅长通用对话任务 16K