SuperAPI AI 工具集

mxbai-cli

通用与其它

查看项目

更新于 10-16 10:33

技能介绍

用途

mxbai CLI 用于从终端管理 Mixedbread 的文档存储(store):创建存储、上传文件、执行语义搜索、提问以及同步目录。根据资料,它适合 Shell 脚本、CI/CD 和一次性任务;如果需要应用代码或自定义逻辑,则建议使用 Python/TypeScript SDK。

安装与要求

全局安装:

npm install -g @mixedbread/cli

项目本地安装:

npm install --save-dev @mixedbread/cli

本地安装后使用 npx mxbai。要求 Node.js >= 20.0,可用 mxbai --version 验证。

认证

API 密钥按以下优先级解析:

  1. 命令行参数:--api-key mxb_xxxxx 或 --saved-key <name>
  2. 环境变量:export MXBAI_API_KEY=mxb_xxxxx
  3. 配置文件:mxbai config set api_key mxb_xxxxx

API 密钥获取地址:https://platform.mixedbread.com/platform?next=api-keys

主要能力与使用方式

快速开始示例:

# 创建存储并上传文档
mxbai store create "my-docs" --description "Product documentation"
mxbai store upload "my-docs" "docs/**/*.md"

# 搜索
mxbai store search "my-docs" "How does authentication work?"

# 同步变更文件(默认基于哈希检测)
mxbai store sync "my-docs" "docs/**"

上传与同步的选择:一次性或手动上传用 mxbai store upload;持续更新(尤其 CI/CD)用 mxbai store sync。

同步的变更检测方式:在已知基线提交的 git 仓库中用 --from-git HEAD~1(最快);在 git 之外或需要精确比较时用基于哈希的检测(默认,比较内容哈希)。

适用场景

  • CI/CD 文档同步:在每次 push 时把文档同步到存储,使用默认的哈希变更检测。GitHub Actions 示例:

    name: Sync Documentation on: push: branches: [main] paths: - 'docs/**'

    jobs: sync: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4

        - name: Install mxbai CLI
          run: npm install -g @mixedbread/cli
    
        - name: Sync docs to store
          env:
            MXBAI_API_KEY: ${{ secrets.MXBAI_API_KEY }}
          run: |
            mxbai store sync my-docs "docs/**/*.md" \
              --strategy high_quality \
              --yes
    

    在 git 仓库中可加 --from-git HEAD~1(需 fetch-depth: 2)或 --from-git origin/main(需 fetch-depth: 0)以加快变更检测。要点:CI 中始终传 --yes;把 API 密钥存为 MXBAI_API_KEY secret;用 --dry-run 预览变更。预览示例:mxbai store sync "my-docs" "docs/**" --dry-run

  • 多环境配置:为 staging 和 production 管理独立 API 密钥。

    mxbai config keys add mxb_xxxxx production mxbai config keys add mxb_xxxxx staging mxbai config keys set-default production mxbai store search staging-docs "query" --saved-key staging

  • 使用清单上传:为复杂上传提供每文件元数据和策略覆盖。

    upload-manifest.yaml

    version: "1" defaults: strategy: fast metadata: team: engineering files: - path: docs/getting-started.md metadata: title: Getting Started Guide priority: high - path: docs/api-reference.md strategy: high_quality metadata: title: API Reference - path: reports/*.pdf metadata: category: reports

    mxbai store upload "my-docs" --manifest upload-manifest.yaml

  • 存储别名:为常用存储创建短别名。

    mxbai config set aliases.docs "my-documentation-store" mxbai config set aliases.prod "str_abc123" mxbai store search docs "how to deploy" mxbai store upload prod "files/**/*.md"

规则与注意事项

关键:CI/CD 中始终传 --yes。否则 sync 和 delete 命令会等待交互式确认而挂起,因为 CI 环境没有 TTY。

--contextualization 在 upload/sync 上自 v2.2.0 起已弃用。应在创建存储时配置:mxbai store create --contextualization。在 upload/sync 上使用该标志会显示警告并被忽略。

重要:

  • --parallel 最大为 200,CLI 会校验并拒绝超过 200 的值,默认 100。
  • --force sync 会重新上传所有内容,绕过变更检测,应谨慎使用,通常只用于定期全量重同步(例如每周 cron)。
  • 存储名称仅允许小写字母、数字、连字符和点号,无效名称会导致创建失败。

中等:

  • 首次同步前使用 --dry-run 预览将上传、更改或删除的内容。
  • 为常用存储使用别名,避免拼写错误和过长的存储名。
  • 上传时用 --unique 跳过重复项,基于内容哈希避免重复上传已存在的文件。

故障排查

  • "Command not found":Node.js < 20 或未全局安装。验证 Node.js >= 20,项目本地安装可试 npx mxbai。
  • "No API key":未配置密钥。运行 mxbai config keys add <key> 或设置 MXBAI_API_KEY 环境变量。
  • CI 中 sync 挂起:缺少 --yes 标志。传 --yes 进入非交互模式。
  • 大文件上传超时:默认分片设置不足。调整 --multipart-threshold、--multipart-part-size、--multipart-concurrency。
  • Store not found:名称或别名错误。用 mxbai config get aliases 检查别名,并确认名称字符有效。
  • Contextualization warning:在 upload/sync 上使用了已弃用标志。应在创建存储时设置 contextualization。
  • Sync 未检测到变更:仅修改了元数据且使用哈希检测。用 --force 重新上传,或用 --from-git 通过 git 检测变更。
  • --from-git 漏掉文件:CI 中 fetch-depth 太浅。设为 fetch-depth: 0 获取完整历史,或至少为 HEAD~1 设置 fetch-depth: 2。

文档链接

  • 文档:https://www.mixedbread.com/cli.md
  • 供智能体阅读的文档:https://www.mixedbread.com/docs/llms.txt
  • 最新文档搜索:https://www.mixedbread.com/question?q=cli&section=cli