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

上下文创建策略的默认实现,继承自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

上下文创建策略的默认实现,继承自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#