← 返回博客

我们给一个纯静态网站接入了 AI 语义搜索,没有用向量数据库

2026-06-03 作者 Superdata RobotAI
AI 搜索Embedding技术实践产品更新

今天,Superdata RobotAI 上线了 AI 语义搜索功能。你可以在网站右下角找到那个 🔍 按钮,输入自然语言描述你的需求——比如「我要做人形机器人双臂操作抓取数据集」——系统会自动从 43 个数据集、19 个数据标准和 11 个工具中匹配最相关的结果。

为什么做这个

我们的导航站收录了 73 个实体(数据集 + 标准 + 工具),每个实体都有丰富的标签:机器人类型、任务类型、数据模态、协议、机构等。传统的搜索方式是关键词匹配——你搜「人形机器人」,只能召回标签里含这四个字的条目。

但用户的搜索习惯不是这样的。有人会搜「双足运动控制数据」——这需要理解「双足」≈「人形机器人」+「运动控制」任务。有人会搜「大规模真实操作数据」,这涉及多个标签的组合。纯关键词匹配做不到。

方案:文本嵌入 + 余弦相似度

核心思路很简单:把每个实体的关键信息(名称、描述、类型、任务、模态、机构等)拼成一段文本,用阿里云百炼的 text-embedding-v4 模型(通义千问)生成一个 2048 维的向量。用户的查询也同样向量化,然后做余弦相似度匹配。

整个嵌入索引不到 1.1MB——73 个实体 × 2048 维 × 4 字节 = 约 600KB,加上元数据总共 1.1MB。不需要 Pinecone,不需要 Chroma,不需要 Milvus,一个 JSON 文件就够了。

还不够:keyword boost

纯语义嵌入有盲区。比如搜「仿真环境下的导航训练」,语义上可能偏向操作类数据集(因为整体语料中操作类占多数),而我们真正想找的是 Habitat、Gibson、iGibson 这些仿真平台。

解决方案是混合检索:从查询中提取结构化关键词(人形机器人 → 类型字段,抓取 → 任务字段),与实体的标签做精确匹配,命中后加分。嵌入负责语义泛化,关键词负责精确命中,两者互补。

架构:零成本运维

前端:纯静态站点(GitHub Pages),右下角浮动搜索组件,200 行 vanilla JS。

后端:阿里云函数计算(FC),一个 Web 函数处理所有搜索请求。阿里云 FC 免费额度每月 100 万次调用,我们的规模完全在免费线内。

嵌入 API:阿里云百炼 text-embedding-v4,新用户 100 万 token 免费额度。73 个实体的嵌入生成只消耗约 15K token。

整条链路月成本:¥0

效果

实测几个典型查询:

  • 「人形机器人双臂操作抓取」→ GR-1 ActionNet 88%、Dexora 83%、Humanoid Everyday 82%
  • 「触觉传感器数据」→ DIGIT Dataset 85%、TacTip Datasets 78%,工具侧 TACTO 77%、PyTouch 72%
  • 「仿真环境下的导航训练」→ Gibson 67%、iGibson 57%、Isaac Sim 56%(全部命中工具板块)

下一步:AI 助手

目前的搜索是「检索式」的——返回匹配列表,用户自己判断。下一步的计划是接入 LLM(通义千问或 DeepSeek),让系统不只是「搜到相关数据」,而是能给出结构化的建议方案:推荐哪个数据集 + 配套什么工具 + 参考哪个标准。

如果你有具体的使用场景或反馈,欢迎在右下角搜索框试试,然后通过评论区告诉我们。


技术栈:阿里云百炼 text-embedding-v4(2048-dim)· 阿里云函数计算 FC · GitHub Pages · vanilla JS。全部代码开源在 GitHub

AI 助手
输入需求,AI 帮你在 58 个数据集、19 个标准、18 个工具中智能匹配