mirror of
https://github.com/Tencent/WeKnora.git
synced 2026-09-24 16:29:01 +08:00
refactor: Sanitize log inputs in agent and session handlers to enhance security
This commit is contained in:
@@ -14,6 +14,7 @@ import (
|
||||
"github.com/Tencent/WeKnora/internal/models/rerank"
|
||||
"github.com/Tencent/WeKnora/internal/types"
|
||||
"github.com/Tencent/WeKnora/internal/types/interfaces"
|
||||
secutils "github.com/Tencent/WeKnora/internal/utils"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
@@ -267,7 +268,7 @@ func (s *agentService) getKnowledgeBaseInfos(ctx context.Context, kbIDs []string
|
||||
// Get knowledge base details
|
||||
kb, err := s.knowledgeBaseService.GetKnowledgeBaseByID(ctx, kbID)
|
||||
if err != nil {
|
||||
logger.Warnf(ctx, "Failed to get knowledge base %s: %v", kbID, err)
|
||||
logger.Warnf(ctx, "Failed to get knowledge base %s: %v", secutils.SanitizeForLog(kbID), err)
|
||||
// Add fallback info
|
||||
kbInfos = append(kbInfos, &agent.KnowledgeBaseInfo{
|
||||
ID: kbID,
|
||||
|
||||
@@ -87,7 +87,6 @@ func (s *chunkService) GetChunkByID(ctx context.Context, id string) (*types.Chun
|
||||
chunk, err := s.chunkRepository.GetChunkByID(ctx, tenantID, id)
|
||||
if err != nil {
|
||||
logger.ErrorWithFields(ctx, err, map[string]interface{}{
|
||||
"chunk_id": id,
|
||||
"tenant_id": tenantID,
|
||||
})
|
||||
return nil, err
|
||||
@@ -213,7 +212,6 @@ func (s *chunkService) DeleteChunk(ctx context.Context, id string) error {
|
||||
err := s.chunkRepository.DeleteChunk(ctx, tenantID, id)
|
||||
if err != nil {
|
||||
logger.ErrorWithFields(ctx, err, map[string]interface{}{
|
||||
"chunk_id": id,
|
||||
"tenant_id": tenantID,
|
||||
})
|
||||
return err
|
||||
|
||||
@@ -546,8 +546,7 @@ func (s *knowledgeBaseService) HybridSearch(ctx context.Context,
|
||||
needsIterativeRetrieval := len(deduplicatedChunks) < params.MatchCount &&
|
||||
kb.Type == types.KnowledgeBaseTypeFAQ && len(matchResults) == matchCount
|
||||
if needsIterativeRetrieval {
|
||||
logger.Infof(ctx, "Not enough unique chunks (%d < %d), using iterative retrieval for FAQ",
|
||||
len(deduplicatedChunks), params.MatchCount)
|
||||
logger.Info(ctx, "Not enough unique chunks, using iterative retrieval for FAQ")
|
||||
// Use iterative retrieval to get more unique chunks (with negative question filtering inside)
|
||||
deduplicatedChunks = s.iterativeRetrieveWithDeduplication(ctx, retrieveEngine, retrieveParams, params.MatchCount, params.QueryText)
|
||||
} else if kb.Type == types.KnowledgeBaseTypeFAQ {
|
||||
|
||||
@@ -606,13 +606,13 @@ func (s *sessionService) selectChatModelID(ctx context.Context, session *types.S
|
||||
for _, kbID := range knowledgeBaseIDs {
|
||||
kb, err := s.knowledgeBaseService.GetKnowledgeBaseByID(ctx, kbID)
|
||||
if err != nil {
|
||||
logger.Warnf(ctx, "Failed to get knowledge base %s: %v", kbID, err)
|
||||
logger.Warnf(ctx, "Failed to get knowledge base: %v", err)
|
||||
continue
|
||||
}
|
||||
if kb != nil && kb.SummaryModelID != "" {
|
||||
model, err := s.modelService.GetModelByID(ctx, kb.SummaryModelID)
|
||||
if err == nil && model != nil && model.Source == types.ModelSourceRemote {
|
||||
logger.Infof(ctx, "Using Remote summary model from knowledge base %s: %s", kbID, kb.SummaryModelID)
|
||||
logger.Info(ctx, "Using Remote summary model from knowledge base")
|
||||
return kb.SummaryModelID, nil
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user