camel.memories.context_creators 包#
子模块#
camel.memories.context_creators.score_based 模块#
- class camel.memories.context_creators.score_based.ScoreBasedContextCreator(token_counter: BaseTokenCounter, token_limit: int)[来源]#
-
上下文创建策略的默认实现,继承自
BaseContextCreator。该类提供了一种策略,用于从聊天历史记录列表中生成对话上下文,同时确保上下文的token总数不超过指定限制。如果token总数超过限制,则会根据消息的分数进行修剪。
- Parameters:
token_counter (BaseTokenCounter) – 一个负责计算消息中token数量的实例。
token_limit (int) – 生成上下文中允许的最大token数量。
- create_context(records: List[ContextRecord]) Tuple[List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam], int][来源]#
在遵守token限制的前提下,从聊天历史记录构建对话上下文。
关键策略: 1. 系统消息始终优先保留 2. 截断操作会优先移除低分消息 3. 最终输出保持时间顺序并存入历史记忆
每条消息的分数根据keep_rate递减。消息越新,分数越高。
- Parameters:
records (List[ContextRecord]) – 带有分数和时间戳的上下文记录列表。
- Returns:
OpenAI消息的有序列表
最终上下文的token总数
- Return type:
元组[列表[OpenAIMessage], 整数]
- Raises:
RuntimeError – 如果仅系统消息就超出token限制
- property token_counter: BaseTokenCounter#
- property token_limit: int#
模块内容#
- class camel.memories.context_creators.ScoreBasedContextCreator(token_counter: BaseTokenCounter, token_limit: int)[来源]#
-
上下文创建策略的默认实现,继承自
BaseContextCreator。该类提供了一种策略,用于从聊天历史记录列表中生成对话上下文,同时确保上下文的token总数不超过指定限制。如果token总数超过限制,则会根据消息的分数进行修剪。
- Parameters:
token_counter (BaseTokenCounter) – 一个负责计算消息中token数量的实例。
token_limit (int) – 生成上下文中允许的最大token数量。
- create_context(records: List[ContextRecord]) Tuple[List[ChatCompletionDeveloperMessageParam | ChatCompletionSystemMessageParam | ChatCompletionUserMessageParam | ChatCompletionAssistantMessageParam | ChatCompletionToolMessageParam | ChatCompletionFunctionMessageParam], int][来源]#
在遵守token限制的前提下,从聊天历史记录构建对话上下文。
关键策略: 1. 系统消息始终优先并保留 2. 截断操作会先移除低分消息 3. 最终输出保持时间顺序并存入历史记忆
每条消息的分数会根据keep_rate递减。消息越新,分数越高。
- Parameters:
records (List[ContextRecord]) - 带有分数和时间戳的上下文记录列表。
- Returns:
OpenAI消息的有序列表
最终上下文的总令牌计数
- Return type:
元组[列表[OpenAIMessage], 整数]
- Raises:
RuntimeError - 如果仅系统消息就超出token限制
- property token_counter: BaseTokenCounter#
- property token_limit: int#