package constants

type KnowledgeId string

const (
	KnowledgeIdZltx KnowledgeId = "kb-00000001"
)

func (k KnowledgeId) String() string {
	return string(k)
}

var CallerKnowledgeIdMap = map[Caller]KnowledgeId{
	CallerZltx: KnowledgeIdZltx,
}

func GetKnowledgeId(caller Caller) KnowledgeId {
	if _, ok := CallerKnowledgeIdMap[caller]; !ok {
		return ""
	}
	return CallerKnowledgeIdMap[caller]
}

// 知识库
const (
	// KnowledgeTenantIdDefault = "default"
	KnowledgeTenantIdDefault = "sk-EfnUANKMj3DUOiEPJZ5xS8SGMsbO6be_qYAg9uZ8T3zyoFM-" // 演示，临时设置为直连天下
)

// 知识库模式
const (
	KnowledgeModeBypass = "bypass" // 绕过知识库，直接返回用户输入
	KnowledgeModeNaive  = "naive"  // 简单模式，直接返回知识库答案
	KnowledgeModeLocal  = "local"  // 本地模式，仅使用本地知识库
	KnowledgeModeGlobal = "global" // 全局模式，使用全局知识库
	KnowledgeModeHybrid = "hybrid" // 混合模式，结合本地和全局知识库
	KnowledgeModeMix    = "mix"    // 混合模式，结合本地、全局和知识库
)

// 知识库命中状态
const (
	KnowledgeRagStatusHit  = "hit"  // 知识库命中
	KnowledgeRagStatusMiss = "miss" // 知识库未命中
)
