compression

package
v0.35.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 29, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CompressOptions

type CompressOptions struct {
	TargetLength     int              // 目标长度(字符数)
	Mode             CompressionMode  // 压缩模式
	Level            CompressionLevel // 压缩级别
	PreserveSections []string         // 必须保留的段落标题
	Language         string           // 语言(zh/en)
	UseCache         bool             // 是否使用缓存
}

CompressOptions 压缩选项

type CompressResult

type CompressResult struct {
	Compressed       string        // 压缩后的内容
	OriginalLength   int           // 原始长度
	CompressedLength int           // 压缩后长度
	CompressionRatio float64       // 压缩率
	TokensSaved      int           // 节省的 Token 数
	Duration         time.Duration // 压缩耗时
	Mode             string        // 使用的模式
	CacheHit         bool          // 是否命中缓存
}

CompressResult 压缩结果

type CompressionCache

type CompressionCache struct {
	// contains filtered or unexported fields
}

CompressionCache 压缩缓存

func NewCompressionCache

func NewCompressionCache(maxSize int) *CompressionCache

NewCompressionCache 创建压缩缓存

func (*CompressionCache) Clear

func (c *CompressionCache) Clear()

Clear 清空缓存

func (*CompressionCache) Get

func (c *CompressionCache) Get(key string) *CompressResult

Get 获取缓存

func (*CompressionCache) Set

func (c *CompressionCache) Set(key string, result *CompressResult)

Set 设置缓存

func (*CompressionCache) Size

func (c *CompressionCache) Size() int

Size 获取缓存大小

type CompressionLevel

type CompressionLevel int

CompressionLevel 压缩级别

const (
	LevelLight      CompressionLevel = 1 // 轻度压缩(60-70%)
	LevelModerate   CompressionLevel = 2 // 中度压缩(40-50%)
	LevelAggressive CompressionLevel = 3 // 激进压缩(20-30%)
)

type CompressionMode

type CompressionMode string

CompressionMode 压缩模式

const (
	ModeSimple CompressionMode = "simple" // 基于规则的快速压缩
	ModeLLM    CompressionMode = "llm"    // LLM 驱动的智能压缩
	ModeHybrid CompressionMode = "hybrid" // 混合模式(先规则后 LLM)
)

type CompressionService

type CompressionService interface {
	// CompressSystemPrompt 压缩 System Prompt
	CompressSystemPrompt(ctx context.Context, prompt string, opts *CompressOptions) (*CompressResult, error)

	// CompressMessages 压缩消息历史(复用现有实现)
	CompressMessages(ctx context.Context, messages []types.Message, maxTokens int) ([]types.Message, error)

	// GetStats 获取统计信息
	GetStats() *CompressionStats

	// ResetStats 重置统计信息
	ResetStats()

	// ClearCache 清空缓存
	ClearCache()
}

CompressionService 统一的压缩服务接口

type CompressionStats

type CompressionStats struct {
	TotalCompressions int           // 总压缩次数
	CacheHits         int           // 缓存命中次数
	CacheMisses       int           // 缓存未命中次数
	TotalDuration     time.Duration // 总耗时
	AverageRatio      float64       // 平均压缩率
	TotalTokensSaved  int           // 总节省 Token 数
}

CompressionStats 压缩统计

type DefaultCompressionService

type DefaultCompressionService struct {
	// contains filtered or unexported fields
}

DefaultCompressionService 默认压缩服务实现

func NewDefaultCompressionService

func NewDefaultCompressionService(prov provider.Provider, cacheSize int) *DefaultCompressionService

NewDefaultCompressionService 创建默认压缩服务

func NewDefaultCompressionServiceWithOptions

func NewDefaultCompressionServiceWithOptions(prov provider.Provider, cacheSize int, language string) *DefaultCompressionService

NewDefaultCompressionServiceWithOptions 创建带选项的默认压缩服务

func (*DefaultCompressionService) ClearCache

func (s *DefaultCompressionService) ClearCache()

ClearCache 清空缓存

func (*DefaultCompressionService) CompressMessages

func (s *DefaultCompressionService) CompressMessages(ctx context.Context, messages []types.Message, maxTokens int) ([]types.Message, error)

CompressMessages 压缩消息历史(占位符,后续集成现有实现)

func (*DefaultCompressionService) CompressSystemPrompt

func (s *DefaultCompressionService) CompressSystemPrompt(ctx context.Context, prompt string, opts *CompressOptions) (*CompressResult, error)

CompressSystemPrompt 压缩 System Prompt

func (*DefaultCompressionService) GetStats

GetStats 获取统计信息

func (*DefaultCompressionService) ResetStats

func (s *DefaultCompressionService) ResetStats()

ResetStats 重置统计信息

func (*DefaultCompressionService) SetCompressor

func (s *DefaultCompressionService) SetCompressor(compressor PromptCompressor)

SetCompressor 设置底层压缩器

type PromptCompressOptions

type PromptCompressOptions struct {
	TargetLength     int
	TargetTokens     int
	Mode             string
	Level            int
	PreserveSections []string
}

PromptCompressOptions 与 agent.CompressOptions 兼容的选项

type PromptCompressResult

type PromptCompressResult struct {
	Compressed       string
	OriginalLength   int
	CompressedLength int
	OriginalTokens   int
	CompressedTokens int
	CompressionRatio float64
	TokensSaved      int
	Mode             string
}

PromptCompressResult 与 agent.CompressResult 兼容的结果

type PromptCompressor

type PromptCompressor interface {
	Compress(ctx context.Context, prompt string, opts *PromptCompressOptions) (*PromptCompressResult, error)
}

PromptCompressor 压缩器接口(与 agent.EnhancedPromptCompressor 兼容)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL