autogen_ext.experimental.task_centric_memory.utils#

class Apprentice(client: ChatCompletionClient, config: ApprenticeConfig | = None, logger: PageLogger | = None)[源代码]#

基础: object

一个最小化的包装器,将任务中心化内存与代理或团队结合起来。 应用程序可以使用Apprentice类,或者直接实例化 并调用Memory Controller,使用此类作为示例。

Parameters:
  • client – 用于调用模型的客户端。

  • config

    一个可选的字典,可以用来覆盖以下值:

    • name_of_agent_or_team: 目标代理或团队的名称,用于分配任务。

    • disable_prefix_caching: 设置为True以通过在第一条消息前添加随机整数来禁用前缀缓存。

    • MemoryController: 传递给MemoryController的配置字典。

  • logger – 一个可选的日志记录器。如果为None,将创建一个默认的日志记录器。

async add_task_solution_pair_to_memory(task: str, solution: str) [源代码]#

将一个任务-解决方案对添加到记忆库中,以便以后作为组合洞察一起检索。这在洞察是展示如何解决给定类型任务时非常有用。

async assign_task(task: str, use_memory: bool = True, should_await: bool = True) str[源代码]#

将任务分配给代理,并附带任何相关的见解/记忆。

async assign_task_to_agent_or_team(task: str) 元组[str, str][源代码]#

将给定的任务传递给目标代理或团队。

async handle_user_message(text: str, should_await: bool = True) str[源代码]#

处理用户消息,提取任何建议并分配任务给代理。

reset_memory() [源代码]#

重置内存库。

async train_on_task(task: str, expected_answer: str) [源代码]#

反复将任务分配给完成代理,并通过创建有用的见解作为记忆来尝试从失败中学习。

class ChatCompletionClientRecorder(client: ChatCompletionClient, mode: 字面量['record', 'replay'], session_file_path: str, logger: PageLogger | = None)[源代码]#

基础类:ChatCompletionClient

一个支持快速、大规模测试代码调用LLM客户端的聊天完成客户端。

支持两种模式:

  1. “record”:委派给底层客户端,同时记录输入消息和响应,当调用finalize()时,这些记录将被保存到磁盘。

  2. “replay”:从磁盘加载之前记录的消息和响应,然后在每次调用时检查其消息是否与记录的消息匹配,并返回记录的响应。

记录的数据以JSON列表的形式存储。每条记录是一个字典,包含一个“mode”字段(“create”或“create_stream”)、一个序列化的消息列表,以及一个“response”(用于create调用)或一个“stream”(用于create_stream调用的流输出列表)。

ReplayChatCompletionClient和ChatCompletionCache执行类似的任务,但有显著差异: - ReplayChatCompletionClient按照指定的顺序回放预定义的响应, 不记录任何内容或检查发送到客户端的消息。 - ChatCompletionCache缓存响应,并为之前见过的消息回放它们, 无论顺序如何,并为任何未缓存的消息调用基础客户端。

actual_usage() RequestUsage[源代码]#
property capabilities: ModelCapabilities#
async close() [源代码]#
count_tokens(messages: Sequence[已注解[系统消息 | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[工具 | 工具模式] = []) int[源代码]#
async create(messages: Sequence[已注解[系统消息 | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[工具 | 工具模式] = [], json_output: bool | = None, extra_create_args: 映射[str, 任何] = {}, cancellation_token: CancellationToken | = None) CreateResult[源代码]#
create_stream(messages: Sequence[已注解[系统消息 | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[工具 | 工具模式] = [], json_output: bool | = None, extra_create_args: 映射[str, 任何] = {}, cancellation_token: CancellationToken | = None) AsyncGenerator[str | CreateResult, ][源代码]#
finalize() [源代码]#

在记录模式下,将累积的记录保存到磁盘。 在回放模式下,确保所有记录都被检查。

property model_info: ModelInfo#
remaining_tokens(messages: Sequence[已注解[系统消息 | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], *, tools: Sequence[工具 | 工具模式] = []) int[源代码]#
total_usage() RequestUsage[源代码]#
class Grader(client: ChatCompletionClient, logger: PageLogger | = None)[源代码]#

基础: object

运行基本测试,并确定任务成功,不限于字符串匹配。

Parameters:
  • client – 用于调用模型的客户端。

  • logger – 一个可选的记录器。如果为None,则不执行日志记录。

async call_model(summary: str, user_content: str | 列表[str | 图片], system_message_content: str | = None, keep_these_messages: bool = True) str[源代码]#

使用给定的输入调用模型客户端并返回响应。

async is_response_correct(task_description: str, response_to_be_graded: str, correct_answer: str) 元组[bool, str][源代码]#

确定响应是否等同于任务的正确答案。

async test_apprentice(apprentice: 学徒, task_description: str, expected_answer: str, num_trials: int, use_memory: bool, client: ChatCompletionClient) Tuple[int, int][源代码]#
class PageLogger(config: PageLoggerConfig | = None)[源代码]#

基础: object

将文本和图像记录到一组HTML页面中,每个函数/方法一个页面,在调用树中相互链接。

Parameters:

config

一个可选的字典,可用于覆盖以下值:

  • level: 日志级别,可以是DEBUG、INFO、WARNING、ERROR、CRITICAL或NONE。

  • path: 日志文件将写入的目录路径。

在页面中插入一个指向图片的缩略图链接。

critical(line: str) [源代码]#

如果调试级别 <= CRITICAL,则在当前页面添加CRITICAL文本。

debug(line: str) [源代码]#

如果调试等级 <= DEBUG,在当前页面添加DEBUG文本。

enter_function() Page | [源代码]#

为当前函数调用添加一个新页面。

error(line: str) [源代码]#

如果调试级别 <= ERROR,则向当前页面添加 ERROR 文本。

finalize() [源代码]#
flush(finished: bool = False) [源代码]#

将日志的当前状态写入磁盘。

info(line: str) [源代码]#

如果调试级别 <= INFO,向当前页面添加INFO文本。

leave_function() [源代码]#

完成与当前函数调用对应的页面。

log_dict_list(content: 列表[映射[str, 任何]], summary: str) [源代码]#

添加一个包含字典列表的页面。

返回日志中本地文件的链接。

log_message_content(message_content: str | 列表[str | 图片] | 列表[FunctionCall] | 列表[FunctionExecutionResult], summary: str) [源代码]#

添加一个包含消息内容的页面,包括任何图片。

log_model_call(summary: str, input_messages: 列表[已注解[系统消息 | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], response: CreateResult) Page | [源代码]#

将发送给模型的日志消息和TaskResult响应记录到新页面。

log_model_task(summary: str, input_messages: 列表[已注解[系统消息 | UserMessage | AssistantMessage | FunctionExecutionResultMessage, FieldInfo(annotation=NoneType, required=True, discriminator='type')]], task_result: TaskResult) Page | [源代码]#

记录发送到模型的消息和TaskResult响应到一个新页面。

warning(line: str) [源代码]#

如果调试级别小于等于 WARNING,则在当前页面添加 WARNING 文本。

class Teachability(memory_controller: MemoryController, name: str | = None)[源代码]#

基础:Memory

赋予AssistantAgent快速从用户教导、提示和建议中学习的能力。

使用步骤: 1. 实例化 MemoryController。 2. 实例化 Teachability,将内存控制器作为参数传递。 3. 实例化一个 AssistantAgent,将 teachability 实例(封装在一个列表中)作为内存参数传递。 4. 像往常一样使用 AssistantAgent,例如与用户聊天。

async add(content: MemoryContent, cancellation_token: CancellationToken | = None) [源代码]#

尝试从传递的内容中提取任何建议,并将其添加到内存中。

async clear() [源代码]#

从内存中清除所有条目。

async close() [源代码]#

清理内存资源。

property name: str#

获取内存实例标识符。

async query(query: str | MemoryContent, cancellation_token: CancellationToken | = None, **kwargs: 任何) MemoryQueryResult[源代码]#

返回似乎与查询相关的任何记忆。

async update_context(model_context: ChatCompletionContext) UpdateContextResult[源代码]#

从用户的最后一次交互中提取任何建议并存储在内存中,并将任何相关的记忆添加到模型上下文中。