Skip to main content

teachability

可教性

class Teachability(AgentCapability)

可教性(Teachability)使用向量数据库为代理提供记忆用户教导的能力,其中用户可以是向可教导代理发送消息的任何调用者(人类或非人类)。可教性被设计为可与其他代理能力组合使用。要使任何可对话的代理具有可教性,实例化代理和Teachability类,然后将代理传递给teachability.add_to_agent(agent)。请注意,在群聊中的可教导代理必须具有唯一的path_to_db_dir值。

在向代理添加可教性时,会进行以下修改:

  • 代理的系统消息会附加一个关于代理新能力的说明。
  • 在代理的process_last_received_message可挂钩方法中添加了一个挂钩,该挂钩可能会修改最后接收到的消息,以包含与消息相关的早期教导。添加的教导不会传播到存储的消息历史记录中。如果检测到新的用户教导,它们将被添加到向量数据库中的新备忘录中。

__init__

def __init__(verbosity: Optional[int] = 0,
reset_db: Optional[bool] = False,
path_to_db_dir: Optional[str] = "./tmp/teachable_agent_db",
recall_threshold: Optional[float] = 1.5,
max_num_retrievals: Optional[int] = 10,
llm_config: Optional[Union[Dict, bool]] = None)

参数

  • verbosity 可选,int - # 0(默认)为基本信息,1为添加内存操作,2为分析器消息,3为备忘录列表。
  • reset_db 可选,bool - True表示在启动之前清除数据库。默认为False。
  • path_to_db_dir 可选,str - 存储此特定代理的数据库的目录路径。默认为"./tmp/teachable_agent_db"。
  • recall_threshold 可选,float - 检索备忘录的最大距离,其中0.0表示完全匹配。默认为1.5。较大的值允许检索更多(但不相关)的备忘录。
  • max_num_retrievals 可选,int - 从数据库中检索的备忘录的最大数量。默认为10。
  • llm_config dict或False - 传递给TextAnalyzerAgent的llm推理配置。如果为None,则TextAnalyzerAgent使用可教代理的llm_config。

add_to_agent

def add_to_agent(agent: ConversableAgent)

将可教性添加到给定的代理中。

prepopulate_db

def prepopulate_db()

向数据库添加一些任意备忘录。

process_last_received_message

def process_last_received_message(text: Union[Dict, str])

将任何相关的备忘录附加到消息文本中,并将任何明显的教导存储在新的备忘录中。使用TextAnalyzerAgent来决定备忘录的存储和检索。

MemoStore

class MemoStore()

使用向量数据库为可教代理提供内存存储和检索。 每个数据库条目(称为备忘录)都是一对字符串:输入文本和输出文本。 输入文本可以是一个问题或一个要执行的任务。 输出文本可以是对问题的回答或执行任务的建议。 目前,矢量嵌入由Chroma的默认句子转换器提供。

__init__

def __init__(verbosity: Optional[int] = 0,
reset: Optional[bool] = False,
path_to_db_dir: Optional[str] = "./tmp/teachable_agent_db")

参数

  • verbosity(可选,整数):1表示打印内存操作,0表示省略。3+表示打印备忘录列表。
  • reset(可选,布尔值):True表示在启动之前清除数据库。默认为False。
  • path_to_db_dir(可选,字符串):存储数据库的目录路径。

list_memos

def list_memos()

打印MemoStore的内容。

reset_db

def reset_db()

立即强制删除数据库的内容,包括内存和磁盘上的内容。

add_input_output_pair

def add_input_output_pair(input_text: str, output_text: str)

将输入输出对添加到向量数据库中。

get_nearest_memo

def get_nearest_memo(query_text: str)

检索与给定查询文本最接近的备忘录。

def get_related_memos(query_text: str, n_results: int,
threshold: Union[int, float])

检索与给定查询文本在指定距离阈值内相关的备忘录。

prepopulate

def prepopulate()

向向量数据库中添加一些任意的示例,以使检索不那么简单。