MCPcopy Create free account
hub / github.com/53AI/53AIHub / resolveKnowledgeBaseIDs

Function resolveKnowledgeBaseIDs

api/controller/relay/relay_helper.go:496–530  ·  view source on GitHub ↗

resolveKnowledgeBaseIDs 解析知识库ID,支持 "all" 参数和加密的hashID

(eid int64, libraryHashIDs []string)

Source from the content-addressed store, hash-verified

494
495// resolveKnowledgeBaseIDs 解析知识库ID,支持 "all" 参数和加密的hashID
496func resolveKnowledgeBaseIDs(eid int64, libraryHashIDs []string) ([]int64, error) {
497 // 检查是否包含 "all" 标识
498 for _, hashID := range libraryHashIDs {
499 if hashID == "all" || hashID == "-1" {
500 // 获取所有活跃状态的知识库
501 libraries, err := model.GetLibrariesByEid(eid, nil)
502 if err != nil {
503 return nil, fmt.Errorf("获取知识库列表失败: %v", err)
504 }
505 var allIDs []int64
506 for _, lib := range libraries {
507 allIDs = append(allIDs, lib.ID)
508 }
509 return allIDs, nil
510 }
511 }
512
513 // 解析加密的hashID
514 var resolvedIDs []int64
515 for _, hashID := range libraryHashIDs {
516 // 尝试从hashID解码获取原始ID
517 if originalID, err := hashids.Decode(hashID); err == nil {
518 resolvedIDs = append(resolvedIDs, originalID)
519 } else {
520 // 如果解码失败,尝试直接解析为数字(向后兼容)
521 if id, err := strconv.ParseInt(hashID, 10, 64); err == nil {
522 resolvedIDs = append(resolvedIDs, id)
523 } else {
524 return nil, fmt.Errorf("无法解析知识库ID: %s", hashID)
525 }
526 }
527 }
528
529 return resolvedIDs, nil
530}
531
532// resolveFileIDs 解析文件ID,支持加密的hashID
533func resolveFileIDs(eid int64, fileHashIDs []string) ([]int64, error) {

Callers 2

runAgentLoopFunction · 0.85
resolveSearchTargetsFunction · 0.85

Calls 2

ErrorfMethod · 0.80
DecodeMethod · 0.80

Tested by

no test coverage detected