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)
检索与给定查询文本最接近的备忘录。
get_related_memos
def get_related_memos(query_text: str, n_results: int,
threshold: Union[int, float])
检索与给定查询文本在指定距离阈值内相关的备忘录。
prepopulate
def prepopulate()
向向量数据库中添加一些任意的示例,以使检索不那么简单。