项目简介

Cartridges 是一个旨在优化大型语言模型 (LLM) 处理长文本上下文能力的开源项目。它通过训练一种名为 "Cartridge" 的紧凑型 KV 缓存来高效存储和表示大量文本信息,从而显著降低推理成本并提高吞吐量。除了核心的上下文表示优化,该项目还提供了一个独立的 MCP 服务器实现,用于将 Gmail 功能作为标准化工具暴露给 LLM 客户端。

主要功能点

  • Cartridge 训练与推理: 优化 LLM 处理长上下文的效率,减少 KV 缓存大小,从而降低推理成本并提高吞吐量。
  • 多源数据合成: 利用 LLM 自动生成高质量的训练数据,支持从文本文件、LaTeX 项目、Slack 消息、Gmail 邮件等多种数据源合成对话和问答对。
  • MCP Gmail 功能服务器: 提供一个基于 Model Context Protocol (MCP) 的后端服务,允许 LLM 客户端通过 JSON-RPC 调用 Gmail 相关功能,如列出邮件标签和获取邮件线程。这使得 LLM 应用能够安全、标准地与外部服务交互。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/HazyResearch/cartridges
    cd cartridges
  2. 安装 Python 依赖: 本项目使用 'uv' 进行包管理。如果您尚未安装 'uv',请先安装它,然后使用 'uv' 安装项目依赖:
    pip install uv
    uv pip install -e .
  3. 设置环境变量: 为了正确运行项目,需要设置以下环境变量:
    export CARTRIDGES_DIR=$(pwd) # 指向您克隆的 cartridges 仓库的根目录
    export CARTRIDGES_OUTPUT_DIR=$(pwd)/outputs # 用于存储模型检查点、数据集等输出文件的目录
    (可选)如果您希望跟踪实验数据,可以配置 Weights & Biases (wandb):
    export CARTRIDGES_WANDB_PROJECT=cartridges # 您的 wandb 项目名称
    export CARTRIDGES_WANDB_ENTITY=your_wandb_entity # 您的 wandb 实体名称

服务器配置(MCP Gmail 功能服务器)

Cartridges 仓库中包含一个专门的 MCP 服务器实现,用于提供 Gmail 相关功能。您的 MCP 客户端需要以下信息才能连接和使用此服务器:

  • 服务器名称 (Server Name): 'gmail'
  • 启动命令 (Command): 'python'
  • 参数 (Args): '-m cartridges.data.gmail.server'
  • 环境变量 (Environment Variables): 在启动服务器之前,您需要设置以下用于 Gmail API 认证的环境变量:
    • 'GOOGLE_CLIENT_SECRET_FILE': 指向您从 Google Cloud Console 下载的 OAuth 2.0 客户端 ID 凭据文件(通常命名为 'credentials.json')的绝对路径。
    • 'GOOGLE_SCOPES': 逗号分隔的 OAuth 范围,用于定义服务器可以访问的 Gmail 数据权限。例如,'https://www.googleapis.com/auth/gmail.readonly' (只读权限) 或 'https://www.googleapis.com/auth/gmail.compose' (发送邮件权限)。根据您的需求选择。
    • 'USER_EMAIL': 您希望服务器访问的 Gmail 账户的电子邮件地址。
  • 示例配置(非代码,仅为客户端配置参考): 在您的 MCP 客户端的配置文件中,类似如下的 JSON 配置段将用于启动和连接 Gmail MCP 服务器:
    {
      "servers": [
        {
          "name": "gmail",
          "command": "python",
          "args": ["-m", "cartridges.data.gmail.server"],
          "env": {
            "GOOGLE_CLIENT_SECRET_FILE": "/path/to/your/credentials.json",
            "GOOGLE_SCOPES": "https://www.googleapis.com/auth/gmail.readonly,https://www.googleapis.com/auth/gmail.compose",
            "USER_EMAIL": "[email protected]"
          }
        }
      ]
    }
  • 认证步骤 (重要): 首次运行 Gmail MCP 服务器时,它将尝试在浏览器中打开一个认证流程,请求您授权对 Gmail 账户的访问。请确保服务器运行在可访问浏览器的环境中,或预先配置必要的令牌以实现无头认证。认证成功后,令牌将保存在本地以供后续使用。

基本使用方法

  1. 启动 Gmail MCP 服务器: 在您的终端中,确保您已设置好所有必需的环境变量(如 'GOOGLE_CLIENT_SECRET_FILE' 和 'USER_EMAIL')。然后,从 'cartridges' 仓库的根目录执行以下命令:

    python -m cartridges.data.gmail.server

    服务器将通过标准 I/O (stdio) 启动,并等待 MCP 客户端的连接。在首次运行或令牌过期时,它将引导您完成认证流程。

  2. 通过 MCP 客户端连接和交互: 您的 MCP 客户端(例如一个 LLM 应用或一个自定义脚本)将使用上述“服务器配置”中提供的 'command' 和 'args' 来启动并连接到此 Gmail MCP 服务器。一旦连接建立,客户端即可通过 JSON-RPC 协议调用服务器提供的 Gmail 工具。例如,您可以调用 'list_labels' 工具来获取您的 Gmail 账户中的所有邮件标签,或者调用 'fetch_threads' 工具来获取邮件线程。

    注意: 本仓库主要侧重于提供 MCP 服务器功能以及 Cartridge 本身的训练和推理能力。MCP 客户端需要自行实现与此服务器的交互逻辑和 LLM 整合。

信息

分类

AI与计算