SuperAPI AI 工具集

vector-search

智能体与模型

查看项目

更新于 10-16 06:37

技能介绍

用途

Vector Search 是一个基于 Upstash Vector 的向量检索技能,用于为智能体实现知识检索。其上下文策略是“检索优先”(retrieval-first),智能体通过稠密与稀疏混合搜索(dense + sparse hybrid search)来查找相关上下文。该技能适用于添加 RAG、语义搜索、知识库功能,或为智能体构建上下文的场景。

主要能力

Upstash Vector 初始化

使用 @upstash/vector 的 Index 类初始化索引,通过环境变量 UPSTASH_VECTOR_URL 和 UPSTASH_VECTOR_TOKEN 提供连接信息。

文档类型

采用单一索引配合类型过滤器(type filters)管理文档。VectorDocument 接口包含 id、data(文本内容,需经 PII 脱敏)和 metadata。metadata 中的 type 可为 conversation、knowledge 或 response,并包含 appId。

  • 对话元数据:category、resolution(refund / transfer / info / escalated)、customerSentiment(positive / neutral / negative)、touchCount、resolvedAt。
  • 知识元数据:source(docs / faq / policy / canned-response)、title、lastUpdated。
  • 回复元数据:trustScore、usageCount、conversationId。

PII 脱敏(必需)

在嵌入前必须始终对 PII 进行脱敏。redactPII 函数会替换邮箱为 [EMAIL]、电话为 [PHONE]、信用卡号为 [CARD],并可将已知姓名替换为 [NAME]。

写入模式

使用 index.upsert 写入文档,传入 id、经 redactPII 处理后的 data 以及 metadata。

智能体上下文构建

buildAgentContext 函数通过并行查询(Promise.all)同时检索三类内容:

  • 相似已解决工单:topK: 3,过滤条件为 appId 匹配、type = 'conversation' 且 resolution != 'escalated'。
  • 知识库文章:topK: 5,过滤条件为 appId 匹配且 type = 'knowledge'。
  • 高信任度回复:topK: 3,过滤条件为 appId 匹配、type = 'response' 且 trustScore > 0.85。

所有查询均设置 includeData: true 和 includeMetadata: true。

可选:Cohere Rerank

为获得更高质量的结果,可使用重排序。buildAgentContextWithRerank 函数先从稠密(queryMode: 'DENSE')和稀疏(queryMode: 'SPARSE')搜索各取 topK: 30 的候选结果,按 id 去重后,使用 Cohere 的 rerank 方法(模型 rerank-v4.0-pro)对候选文档重排序,取 topN: 10,再按类型分别截取:相似工单 3 条、知识 5 条、优质回复 3 条。

使用方式

文件位置

  • 向量客户端:packages/core/src/vector/client.ts
  • 上下文构建:packages/core/src/vector/context.ts
  • PII 脱敏:packages/core/src/vector/redact.ts

参考文档

完整细节参见:

  • docs/support-app-prd/71-vector-search.md
  • docs/support-app-prd/72-context-strategy.md

适用场景

适用于需要为智能体添加 RAG、语义搜索、知识库功能或上下文构建能力的项目,尤其是客服支持类应用,需要检索相似工单、知识库文章和高信任度回复的场景。

限制

资料中未提供关于收费、价格、平台支持范围、性能效果或具体使用步骤的更多信息。PII 脱敏为必需步骤,嵌入前必须执行。