跳到主要内容

QA 模块配置与使用

配置文件 (modules/qa.yml)

此文件用于配置问答 (QA) 模块的行为,包括使用的 AI 模型、引用的知识库以及检索和回答生成的参数。

default-model

  • 类型: 字符串
  • 必需:
  • 描述: 指定 QA 模块在生成答案时默认使用的 AI 模型 ID。这个 ID 必须是在 llm.yml 文件中定义的某个模型的 ID。
  • 示例: siliconflow-deepseek-v3

knowledge-bases

  • 类型: 字符串列表 (List)
  • 必需:
  • 描述: 定义 QA 模块在回答问题时会从中检索信息的知识库列表。列表中的每个字符串都必须是 knowledge.yml 文件中定义的某个知识库的名称。
  • 示例:
    knowledge-bases:
    - 默认知识库
    - 另一个知识库

retrieval

  • 类型: 对象 (Object)
  • 必需:
  • 描述: 配置知识库检索过程的参数。

检索配置项

  • limit:
    • 类型: 整数
    • 必需: 否 (可能有默认值)
    • 描述: 指定从 每个 被引用的知识库中检索出的最大相关文档(或片段)数量。
    • 示例: 5
  • min-score:
    • 类型: 浮点数 (通常在 0 到 1 之间)
    • 必需: 否 (可能有默认值)
    • 描述: 设置一个相似度阈值。只有当检索到的文档与用户问题的相关性得分高于此阈值时,该文档才会被用于生成答案。
    • 示例: 0.5
  • include-references:
    • 类型: 布尔值 (true/false)
    • 必需: 否 (可能有默认值)
    • 描述: 控制是否在 AI 生成的最终答案中包含对所引用知识库文档来源的标注或链接。
    • 示例: true

system-prompt

  • 类型: 字符串 (支持多行)
  • 必需:
  • 描述: 这是提供给 AI 模型的核心指令,用于指导其如何扮演角色、如何利用检索到的知识库信息来回答问题。你需要在这里详细定义 AI 的行为准则,例如:
    • 回答必须基于提供的知识库内容。
    • 如果知识库没有相关信息,应如何回应。
    • 回答的风格(简洁、详细等)。
    • 输出格式要求(例如,是否允许 Markdown)。
    • 需要避免提及的内容(例如,不要说“根据知识库...”)。
  • 示例: (见下面的完整示例)

示例配置

# QA问答模块配置

# 默认使用的模型
default-model: siliconflow-deepseek-v3

# 默认引用的知识库列表
# 只有在此列表中的知识库才会被QA模块引用
knowledge-bases:
- 默认知识库

# 检索配置
retrieval:
# 每个知识库检索的最大结果数
limit: 5
# 最低相似度阈值
min-score: 0.5
# 是否在回答中包含引用信息
include-references: true

# 系统提示词
system-prompt: |-
你是一个AI助手。你的核心职责是根据我提供的知识库内容,回答用户的问题。

请严格遵循以下指令:

1. **知识库是唯一信息源:** 你的所有回答必须严格基于提供的知识库内容。禁止使用任何知识库之外的信息。
2. **准确性与诚实:** 必须确保答案准确。如果知识库中明确没有相关信息来回答用户的问题,请直接、诚实地回答,例如说:“根据我现有的知识,我找不到关于这个问题的具体信息。” 或者 “我目前没有这方面的信息。” **绝对不允许猜测或编造答案。**
3. **简洁明了:** 回答应抓住核心,力求简洁、清晰。
4. **纯文本输出格式:** 所有回复必须是纯文本格式。**严禁使用任何Markdown标记**,包括但不限于:加粗 (`** **` 或 `__ __`)、斜体 (`* *` 或 `_ _`)、列表项 (`-`, `*`, `+`, `1.`, `2.` 等)、标题 (`#`, `##` 等)、代码块 (```)、行内代码 (`)、引用块 (`>`)、链接 (`[ ]( )`)、图片 (`![ ]( )`) 或水平分割线 (`---`, `***`)。
5. **自然表达,隐藏限制:** 你的回答应该听起来自然流畅,就像正常的对话。**请绝对不要在你的回复中提及任何关于“纯文本”、“无Markdown”、“知识库限制”或“Minecraft环境”等格式或背景要求。** 就像你天生就是这样回答问题一样,直接给出基于知识库的纯文本信息。

请专注于理解用户问题,并在知识库范围内提供最准确、简洁的纯文本回答。

本页介绍 Knowlith 的 QA (问答) 模块。

(待补充)