@hook
def before_rabbithole_insert_memory(doc, cat):
if "tables" in doc.metadata.keys():
for table in doc.metadata["tables"]:
if not table["embed"]:
table_text = table["table"]
table_embed = cat_embed.embed_table(table_text, doc.metadata["source"])
table["embed"] = table_embed
return doc
aggiunta classe optimized embedder
aggiornato hook
@hook
def after_cat_recalls_memories(cat):
def after_cat_recalls_memories(cat):
dec_mem = cat.working_memory.declarative_memories
user_message = cat.working_memory.user_message_json.text
user_query = cat.embedder.embed_query(user_message)
if dec_mem:
document = dec_mem[0][0]
metadata = document.metadata
if "tables" in metadata.keys():
max_score = 0
best_table = ""
for table in metadata["tables"]:
score = cosine_similarity(user_query, table["embed"])
if score > max_score:
max_score = score
best_table = table["table"]
dec_mem[0][0].page_content += "\n" + best_table
aggiornato hook
@hook def before_rabbithole_insert_memory(doc, cat):
aggiunta classe optimized embedder
aggiornato hook
@hook def after_cat_recalls_memories(cat):