SuperAPI AI 工具集

weknora-rag-search

数据与分析

查看项目

更新于 10-16 04:02

技能介绍

用途

WeKnora 提供多种“针对知识库提问”的方式,本技能帮助你在这些方式之间做出正确选择,避免浪费轮次或返回错误的数据形态。它面向通过 weknora CLI 从 WeKnora 知识库检索或提问的场景,尤其适用于不确定该用 chat、session ask 还是 search chunks 的情况。

前置要求

必须先阅读 weknora-shared 技能,了解认证、--kb 解析、JSON 信封、退出码以及流式/NDJSON 输出等背景知识。

主要能力与命令选择

按目标选择命令:

  • 需要基于知识库的自然语言答案:chat "<q>" --kb <kb>,有 LLM 综合,返回有界答案事件;--reference 添加引用,--verbose 添加执行细节。
  • 通过自定义智能体回答(可自带知识库范围、工具、网络搜索):session ask --agent <id> "<q>",有 LLM 综合(含工具),返回有界答案事件;--reference 添加引用,--verbose 添加执行细节。
  • 需要原始上下文片段自行推理(不生成答案):search chunks "<q>" --kb <kb>,无 LLM 综合,返回排序后的片段列表。
  • 按关键词(标题/文件名)查找匹配文档:search docs "<q>" --kb <kb>,无 LLM 综合,返回文档列表。
  • 按名称查找知识库:search kb "<q>",无 LLM 综合,返回知识库列表。
  • 按标题查找历史会话:search sessions "<q>",无 LLM 综合,返回会话列表。

三个关键决策

  1. 答案 vs 原始上下文:想要书面答案用 chat / session ask;想要片段供自己推理(例如跨来源综合)用 search chunks。不要为了读取源文本而调用 chat。
  2. chat vs session ask:chat 是普通知识库 RAG 问答;session ask --agent <id> 调用已配置的自定义智能体(可能限定自己的知识库、调用工具、进行网络搜索)。如果用户为此设置了智能体,优先使用它(用 weknora agent list 查找 id);否则用 chat。
  3. 单次 vs 多轮:chat 和 session ask 在默认 JSON 输出中都会返回 data.session_id。在下一次调用时传入 --session <id> 可继续对话。在 NDJSON 模式下,从 init 中读取该 id。

使用方式与示例

# 原始检索,供自行推理
weknora search chunks "retry backoff policy" --kb engineering --limit 12

# 有依据的答案(人类可读转录)
weknora chat "How do we handle retries?" --kb engineering --format text

# 继续对话(session id 来自上面的 data.session_id)
weknora chat "And the max attempts?" --kb engineering --session sess_abc

# 通过自定义智能体回答
weknora session ask --agent ag_123 "Summarize this quarter's incidents"

安全与注意事项

  • chat、search chunks、search docs 需要知识库:传入 --kb <id-or-name>,或设置 WEKNORA_KB_ID,或对目录执行 weknora link(按此顺序解析)。若都无法解析则退出码 1(local.kb_id_required);名称错误则退出码 1(local.kb_not_found)。用 weknora kb list / search kb 解析名称。(search kb / search sessions 是租户级,不接受 --kb。)
  • chat / session ask 默认返回一个缓冲的 JSON 信封,内含答案事件。添加 --reference 获得索引引用,--verbose 获得执行细节;使用 --format ndjson 获取原始事件,或 --format text 获取实时人类可读投影。
  • 停滞的流不会被 Ctrl-C 停止(那只会断开本地连接;服务器继续生成并计费)。需在服务端停止:weknora session stop <session-id> --message <message-id>(session_id 来自 data.session_id,或在 --format ndjson 下来自 init)。用 weknora session resume <session-id> --message <message-id> 重新接入流。
  • search chunks --limit 默认 8(针对 LLM 上下文窗口调优);search docs/kb/sessions 列表默认 30。可用 --vector-threshold / --keyword-threshold 调整检索,或用 --no-vector / --no-keyword 禁用某个通道。详情见 references/search-chunks.md。

适用场景

适用于需要从 WeKnora 知识库获取有依据答案、原始检索片段、文档匹配、知识库或会话查找,以及多轮对话续接的场景。

限制

关于收费、价格、平台支持范围等具体信息,资料中暂未提供。