mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-05-26 17:27:54 +02:00
33 lines
856 B
Go
33 lines
856 B
Go
package handler
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"cyberstrike-ai/internal/project"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// projectBlackboardBlock 根据对话 ID 构建项目事实索引块(用于注入 system prompt)。
|
|
func (h *AgentHandler) projectBlackboardBlock(conversationID string) string {
|
|
if h == nil || h.db == nil || h.config == nil {
|
|
return ""
|
|
}
|
|
if !h.config.Project.Enabled {
|
|
return ""
|
|
}
|
|
conversationID = strings.TrimSpace(conversationID)
|
|
if conversationID == "" {
|
|
return ""
|
|
}
|
|
projectID, err := h.db.GetConversationProjectID(conversationID)
|
|
if err != nil || projectID == "" {
|
|
return ""
|
|
}
|
|
block, err := project.BuildFactIndexBlock(h.db, projectID, h.config.Project)
|
|
if err != nil {
|
|
h.logger.Warn("构建项目黑板索引失败", zap.String("conversationId", conversationID), zap.Error(err))
|
|
return ""
|
|
}
|
|
return strings.TrimSpace(block)
|
|
}
|