mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-10-31 04:45:23 +08:00
253 lines
8.0 KiB
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
|