luca2040 / foglietti-cat

Use the CheshireCat AI to explain and read medicine informations
1 stars 0 forks source link

table embedding #14

Closed luca2040 closed 3 months ago

luca2040 commented 3 months ago

aggiornato hook

@hook def before_rabbithole_insert_memory(doc, cat):

@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