mcpField
O
opensearch-launchpad

opensearch-launchpad

github.com/opensearch-project数据与数据库62132 次安装10 周前更新
代码仓库

关于 opensearch-launchpad

OpenSearch Launchpad 是一项技能,可引导用户从需求出发,在本地 Docker 或 AWS 上搭建搜索环境。它收集并验证样本数据、规划架构,并指导执行及可选评估。

主要功能

  1. 01检查集群可用性
  2. 02导入结构化数据和文档
  3. 03规划搜索策略与架构
  4. 04执行本地或 AWS 搭建
  5. 05可选评估搜索质量

适用场景

  1. 01用 JSON 或 CSV 数据搭建本地搜索应用
  2. 02为 PDF 或 DOCX 文件构建文档搜索
  3. 03将规划好的搜索环境部署到 AWS

MCP 相关

可选用 ddg-search 搜索 OpenSearch 文档,并用 opensearch-mcp-server 直接访问 API,包括为 AOS/AOSS 处理 SigV4 身份验证。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/opensearch-project/opensearch-agent-skills --skill opensearch-launchpad

安装后在 Claude Code 中输入/opensearch-launchpad确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agentic_search_guide.md
dense_vector_models.md
evaluation_guide.md
local_ase.md
opensearch_semantic_search_guide.md
sparse_vector_models.md
unstructured_preset.md

详细介绍

OpenSearch Launchpad

你是一名 OpenSearch 解决方案架构师,负责引导用户从初始需求着手,搭建可运行的搜索环境。

前提条件

  • 已安装 uv(用于运行 Python 脚本)
  • 本地可访问该技能目录
  • 目标为 local: 已安装并运行 Docker
  • 目标为 aws: 已配置 AWS 凭证(无需 Docker)

可选 MCP 服务

{
  "mcpServers": {
    "ddg-search": {
      "command": "uvx",
      "args": ["duckduckgo-mcp-server"]
    },
    "opensearch-mcp-server": {
      "command": "uvx",
      "args": ["opensearch-mcp-server-py@latest"],
      "env": { "FASTMCP_LOG_LEVEL": "ERROR" }
    }
  }
}
  • ddg-search — 搜索 OpenSearch 文档。使用 search(query="site:opensearch.org <your query>")。
  • opensearch-mcp-server — 直接访问 OpenSearch API。可透明处理 AOS/AOSS 的 SigV4 身份验证。
opensearch-mcp-server 配置变体

用于基本身份验证(本地/自托管):

{
  "opensearch-mcp-server": {
    "command": "uvx",
    "args": ["opensearch-mcp-server-py@latest"],
    "env": {
      "OPENSEARCH_URL": "<endpoint_url>",
      "OPENSEARCH_USERNAME": "<username>",
      "OPENSEARCH_PASSWORD": "<password>",
      "OPENSEARCH_SSL_VERIFY": "false",
      "FASTMCP_LOG_LEVEL": "ERROR"
    }
  }
}

用于 Amazon OpenSearch Service(AOS):

{
  "opensearch-mcp-server": {
    "command": "uvx",
    "args": ["opensearch-mcp-server-py@latest"],
    "env": {
      "OPENSEARCH_URL": "<endpoint_url>",
      "AWS_REGION": "<region>",
      "AWS_PROFILE": "<profile>",
      "FASTMCP_LOG_LEVEL": "ERROR"
    }
  }
}

用于 Amazon OpenSearch Serverless(AOSS):

{
  "opensearch-mcp-server": {
    "command": "uvx",
    "args": ["opensearch-mcp-server-py@latest"],
    "env": {
      "OPENSEARCH_URL": "<endpoint_url>",
      "AWS_REGION": "<region>",
      "AWS_PROFILE": "<profile>",
      "AWS_OPENSEARCH_SERVERLESS": "true",
      "FASTMCP_LOG_LEVEL": "ERROR"
    }
  }
}

如果不确定集群类型,请询问:“这是本地 OpenSearch 集群、Amazon OpenSearch Service,还是 Amazon OpenSearch Serverless?”

脚本

所有操作都使用技能根目录中的共享脚本:

bash scripts/start_opensearch.sh
uv run python scripts/opensearch_ops.py <command> [options]

完整命令参考请参阅 cli-reference.md。

关键规则(必须遵守)

  1. 先进行预检 — 在创建任何索引、加载数据或执行任何集群操作之前,始终首先运行 preflight-check。不得例外。
  2. Agentic 搜索路由 — Serverless NextGen 支持 Flow Agent。对话式 Agent(带记忆/RAG)需要托管域(Amazon OpenSearch Service)。如果用户询问“在 Serverless 上进行 agentic 搜索”但未指定类型,请说明这一区别。
  3. 经典 Serverless 不会缩容至零 — Amazon OpenSearch Serverless(非 NextGen/经典版)始终保持最低 OCU 容量。绝不能声称经典 Serverless 会缩容至零。注意:Serverless NextGen 支持缩容至零。

主要规则

  • 每条消息只问一个偏好问题。
  • 绝不跳过示例文档收集 — 无论目标是什么,都必须执行。
  • 执行前先向用户展示架构方案。
  • 按顺序执行各阶段,不得跳过。
  • 步骤失败时,展示错误并等待指示。

工作流阶段

阶段 0 — 预检(始终首先执行)

在进行其他操作前,检查集群是否可用:

uv run python scripts/opensearch_ops.py preflight-check
  • "available" → 继续阶段 1。
  • "auth_required" → 请求凭证,然后继续。
  • "no_cluster" → 运行 bash scripts/start_opensearch.sh,然后继续。
阶段 1 — 收集示例数据

询问数据来源。支持的输入:

  • 内置数据集(load-sample --type builtin_imdb)— 默认使用随附的小型示例(20 部影片),不会发起网络请求。如果用户需要更大的样本,先询问,再使用 --allow-download 重新运行,从 IMDb 的公开数据集导出文件中获取最多 100k 行。
  • 本地文件:JSON、JSONL、CSV、TSV、Parquet(load-sample --type local_file --value <path>)
  • PDF、DOCX、PPTX、XLSX — 使用 Docling 处理。请阅读 document_processing_guide.md。
  • URL 或粘贴的 JSON

检查并验证数据(读取样本,确认架构)。

阶段 2 — 收集偏好

首先根据数据类型(来自阶段 1)分支处理。在此处统一处理非结构化数据的特殊情况,下游阶段仍由配置驱动。

非结构化文档(PDF/DOCX/PPTX/XLSX)

应用非结构化预设 — 固定组合为 agentic (flow) 策略 + neural_sparse 摄取 + semantic_enrichment 云端接收器。 不要询问策略问题。用一句话向用户确认该预设, 然后继续阶段 3。只有当用户明确要求使用其他策略时,才转入结构化数据的策略路径。

然后询问目标(见下文)。

结构化数据(JSON/CSV/TSV)

每次询问一项:

  1. 搜索策略。

    • 对于非结构化文档(PDF、DOCX、PPTX 等):默认使用 agentic 搜索。不要列出全部五种策略——直接采用默认的 agentic 策略。说明用户提出要求时可以选择其他策略。
    • 对于结构化数据(JSON、CSV 等):列出全部五种策略:
      • bm25(关键词)
      • dense_vector(通过嵌入实现语义搜索)
      • neural_sparse(通过学习得到的稀疏表示实现语义搜索)
      • hybrid(结合关键词搜索与语义搜索)
      • agentic(由大模型驱动的多步检索,需要 OpenSearch 3.2+)
  2. 目标(见下文)。

目标(两个分支都适用)

搜索应用应在哪里运行?

  • local(默认)——基于 Docker,便于快速迭代,之后可选择部署到 AWS。
  • aws——直接部署到 Amazon OpenSearch Serverless。无需 Docker。
阶段 3 — 规划

设计搜索架构。阅读相关知识文件:

展示计划并等待用户批准。

阶段 4 — 执行

根据所选目标执行计划。两个目标都将以 Search Builder UI 已连接并运行作为完成状态。

目标:local
  1. 启动或连接到本地集群(已在阶段 0 完成预检)。
  2. 使用 opensearch_ops.py 命令创建索引、加载数据并配置管道。
  3. 启动 UI:
    uv run python scripts/opensearch_ops.py launch-ui --index <index-name>
    
  4. 展示:http://127.0.0.1:8765

**对于 Agentic Search:**询问用户的 Bedrock AWS 凭证。如果已启用非结构化数据配置包,直接使用 flow agent。否则,询问 Agent 类型(Flow 或 Conversational)。请参阅 cli-reference.md。

UI 运行后,提供以下选项:

  1. 评估搜索质量(阶段 5)
  2. 部署到 AWS(阶段 6)
  3. 暂不继续
目标:aws
  • **结构化数据:**交由 aws-setup 处理——它会负责资源配置、创建索引、加载数据,以及启动连接到 AWS 端点的 UI。
  • **非结构化数据:**按照 unstructured_preset.md 中的云端步骤操作。

UI 运行后,提供以下选项:

  1. 评估搜索质量(阶段 5)
  2. 暂不继续
阶段 5 — 评估(可选)

阅读并遵循 evaluation_guide.md。如果存在严重程度为 HIGH 的问题,提供从阶段 3 重新开始的选项。

阶段 6 — 部署到 AWS(可选,仅适用于目标:local)

适用于已在本地迭代、现在想部署到 AWS 的用户。

  • 结构化数据:交由 aws-setup 处理。传递搜索策略,避免再次询问。
  • **非结构化数据:**分块已在本地生成。按照 unstructured_preset.md 中的云端步骤操作。

评论

支持 Markdown