NewSummarizer 创建 Session 摘要器
(config SummarizerConfig)
| 31 | |
| 32 | // NewSummarizer 创建 Session 摘要器 |
| 33 | func NewSummarizer(config SummarizerConfig) *Summarizer { |
| 34 | if config.MaxMessagesPerCall <= 0 { |
| 35 | config.MaxMessagesPerCall = 50 |
| 36 | } |
| 37 | if config.MinMessagesToSummarize <= 0 { |
| 38 | config.MinMessagesToSummarize = 10 |
| 39 | } |
| 40 | if config.Temperature <= 0 { |
| 41 | config.Temperature = 0.3 // 摘要使用较低温度 |
| 42 | } |
| 43 | if config.SystemPrompt == "" { |
| 44 | config.SystemPrompt = defaultSummarySystemPrompt |
| 45 | } |
| 46 | |
| 47 | return &Summarizer{ |
| 48 | provider: config.Provider, |
| 49 | maxMessages: config.MaxMessagesPerCall, |
| 50 | minMessages: config.MinMessagesToSummarize, |
| 51 | temperature: config.Temperature, |
| 52 | sysPrompt: config.SystemPrompt, |
| 53 | } |
| 54 | } |
| 55 | |
| 56 | // SummarizeSession 生成 Session 摘要 |
| 57 | func (s *Summarizer) SummarizeSession(ctx context.Context, messages []types.Message) (*SessionSummary, error) { |
no outgoing calls
no test coverage detected