MCPcopy Create free account
hub / github.com/astercloud/aster / compressHybrid

Method compressHybrid

pkg/compression/service.go:534–554  ·  view source on GitHub ↗

compressHybrid 混合压缩(先规则后 LLM)

(ctx context.Context, prompt string, opts *CompressOptions)

Source from the content-addressed store, hash-verified

532
533// compressHybrid 混合压缩(先规则后 LLM)
534func (s *DefaultCompressionService) compressHybrid(ctx context.Context, prompt string, opts *CompressOptions) (*CompressResult, error) {
535 // 第一阶段:简单压缩
536 simpleResult, err := s.compressSimple(ctx, prompt, opts)
537 if err != nil {
538 return nil, err
539 }
540
541 // 检查是否达到目标长度
542 if opts.TargetLength > 0 && simpleResult.CompressedLength <= opts.TargetLength {
543 return simpleResult, nil
544 }
545
546 // 第二阶段:LLM 精压缩
547 llmResult, err := s.compressLLM(ctx, simpleResult.Compressed, opts)
548 if err != nil {
549 // LLM 压缩失败,降级到简单压缩结果
550 return simpleResult, nil
551 }
552
553 return llmResult, nil
554}
555
556// generateCacheKey 生成缓存键
557func (s *DefaultCompressionService) generateCacheKey(prompt string, opts *CompressOptions) string {

Callers 1

CompressSystemPromptMethod · 0.95

Calls 2

compressSimpleMethod · 0.95
compressLLMMethod · 0.95

Tested by

no test coverage detected