Files
LangBot/plugins/KnowledgeEngine/LangRAG/components/knowledge_engine/langrag.yaml

253 lines
8.0 KiB
YAML

apiVersion: v1
kind: KnowledgeEngine
metadata:
name: langrag
label:
en_US: LangRAG
zh_Hans: LangRAG
description:
en_US: Simple Knowledge Engine with document chunking, vector, full-text, and hybrid retrieval
zh_Hans: 简单 RAG 引擎,支持文档分块及向量、全文、混合检索
spec:
creation_schema:
- name: embedding_model_uuid
label:
en_US: Embedding Model
zh_Hans: 嵌入模型
description:
en_US: Select embedding model for text vectorization
zh_Hans: 选择用于文本向量化的嵌入模型
type: embedding-model-selector
required: true
default: ''
- name: index_type
label:
en_US: Index Type
zh_Hans: 索引类型
description:
en_US: 'Chunk: flat chunking; Parent-Child: two-level chunking for richer context; QA: LLM-generated question-answer pairs for better query matching'
zh_Hans: 'Chunk:平坦分块;Parent-Child:双层分块,检索返回更丰富上下文;QA:LLM 生成问答对,提升查询匹配质量'
type: select
required: false
default: chunk
options:
- name: chunk
label:
en_US: Chunk
zh_Hans: 分块
- name: parent_child
label:
en_US: Parent-Child
zh_Hans: 父子索引
- name: qa
label:
en_US: QA Index
zh_Hans: 问答索引
- name: chunk_size
label:
en_US: Chunk Size
zh_Hans: 分块大小
type: integer
required: false
default: 512
- name: overlap
label:
en_US: Chunk Overlap
zh_Hans: 分块重叠
type: integer
required: false
default: 50
- name: parent_chunk_size
label:
en_US: Parent Chunk Size
zh_Hans: 父块大小
description:
en_US: Size of parent chunks (only used with Parent-Child index type)
zh_Hans: 父块大小(仅在 Parent-Child 索引类型下生效)
type: integer
required: false
default: 2048
show_if:
field: index_type
operator: eq
value: parent_child
- name: child_chunk_size
label:
en_US: Child Chunk Size
zh_Hans: 子块大小
description:
en_US: Size of child chunks (only used with Parent-Child index type)
zh_Hans: 子块大小(仅在 Parent-Child 索引类型下生效)
type: integer
required: false
default: 256
show_if:
field: index_type
operator: eq
value: parent_child
- name: qa_llm_model_uuid
label:
en_US: QA Generation LLM
zh_Hans: QA 生成用 LLM
description:
en_US: LLM model for generating Q&A pairs (required when index type is QA)
zh_Hans: 用于生成问答对的 LLM 模型(索引类型为 QA 时需要)
type: llm-model-selector
required: false
default: ''
show_if:
field: index_type
operator: eq
value: qa
- name: questions_per_chunk
label:
en_US: Questions Per Chunk
zh_Hans: 每块生成问题数
description:
en_US: Number of Q&A pairs to generate per chunk (only used with QA index type)
zh_Hans: 每个文本块生成的问答对数量(仅在 QA 索引类型下生效)
type: integer
required: false
default: 1
show_if:
field: index_type
operator: eq
value: qa
retrieval_schema:
- name: top_k
label:
en_US: Top K
zh_Hans: 召回数量
type: integer
required: false
default: 5
- name: search_type
label:
en_US: Search Type
zh_Hans: 检索类型
description:
en_US: 'Vector: semantic similarity; Full-text: keyword matching; Hybrid: combined'
zh_Hans: 'Vector:语义相似度;Full-text:关键词匹配;Hybrid:混合检索'
type: select
required: false
default: vector
options:
- name: vector
label:
en_US: Vector
zh_Hans: 向量检索
- name: full_text
label:
en_US: Full-text
zh_Hans: 全文检索
- name: hybrid
label:
en_US: Hybrid
zh_Hans: 混合检索
- name: vector_weight
label:
en_US: Vector Search Weight
zh_Hans: 向量搜索权重
description:
en_US: 'Balance between vector and keyword search in hybrid mode (0.0 = keyword only, 1.0 = vector only)'
zh_Hans: '混合检索中向量搜索的权重(0.0 = 仅关键词,1.0 = 仅向量)'
type: float
required: false
default: 0.7
show_if:
field: search_type
operator: eq
value: hybrid
- name: query_rewrite
label:
en_US: Query Rewriting
zh_Hans: 查询重写
description:
en_US: 'Off: direct search; HyDE: hypothetical document; Multi-Query: query expansion; Step-Back: abstract generalization'
zh_Hans: 'Off:直接检索;HyDE:假设文档嵌入;Multi-Query:多查询扩展;Step-Back:回退抽象提问'
type: select
required: false
default: "off"
options:
- name: "off"
label: { en_US: "Off", zh_Hans: "关闭" }
- name: hyde
label: { en_US: "HyDE", zh_Hans: "HyDE(假设文档)" }
- name: multi_query
label: { en_US: "Multi-Query", zh_Hans: "多查询扩展" }
- name: step_back
label: { en_US: "Step-Back", zh_Hans: "回退提问" }
- name: rewrite_llm_model_uuid
label:
en_US: Query Rewrite LLM
zh_Hans: 查询重写 LLM
description:
en_US: LLM model for query rewriting (required when query rewriting is enabled)
zh_Hans: 用于查询重写的 LLM 模型(启用查询重写时需要)
type: llm-model-selector
required: false
default: ''
show_if:
field: query_rewrite
operator: neq
value: "off"
- name: rerank
label:
en_US: Reranking
zh_Hans: 重排序
description:
en_US: 'Off: no reranking; Rerank Model: use a LangBot rerank model; LLM: use a language model to rerank candidates by relevance'
zh_Hans: 'Off:不重排序;Rerank Model:使用 LangBot 重排序模型;LLM:使用大语言模型按相关性重排候选结果'
type: select
required: false
default: "off"
options:
- name: "off"
label: { en_US: "Off", zh_Hans: "关闭" }
- name: "rerank_model"
label: { en_US: "Rerank Model", zh_Hans: "重排序模型" }
- name: "llm"
label: { en_US: "LLM", zh_Hans: "LLM 重排序" }
- name: rerank_model_uuid
label:
en_US: Rerank Model
zh_Hans: 重排序模型
description:
en_US: LangBot rerank model for reranking retrieved candidates
zh_Hans: 用于对检索候选结果重排序的 LangBot 重排序模型
type: rerank-model-selector
required: false
default: ''
show_if:
field: rerank
operator: eq
value: "rerank_model"
- name: rerank_llm_model_uuid
label:
en_US: Rerank LLM
zh_Hans: 重排序 LLM
description:
en_US: LLM model for reranking retrieved candidates
zh_Hans: 用于对检索候选结果重排序的 LLM 模型
type: llm-model-selector
required: false
default: ''
show_if:
field: rerank
operator: eq
value: "llm"
- name: context_window
label:
en_US: Context Window
zh_Hans: 上下文窗口
description:
en_US: 'Number of adjacent chunks to include as context for each hit (0 = disabled). Requires vector store ID-based lookup support.'
zh_Hans: '为每个命中 chunk 附加的相邻 chunk 数量(0 = 禁用)。需要向量库支持按 ID 查询。'
type: integer
required: false
default: 0
execution:
python:
path: langrag.py
attr: LangRAG