djsudduth / keep-it-markdown

Convert Google Keep notes dynamically to markdown for Obsidian, Logseq, Joplin and Notion using the unofficial Keep API. Also, import simple markdown notes back into Google Keep.
Apache License 2.0
473 stars 31 forks source link

Anyone need sync structure based on llama or something? #83

Open icewind666 opened 2 days ago

icewind666 commented 2 days ago

Thanks for a good tool! I'm planning to add connection to local llama instance - to feed it with current obsidian vault folder tree - and make llama decide to which folder each note should go (based on its content). Wondering - is it ok to do a pull request with that feature? or no one needs this ?)

djsudduth commented 2 days ago

@icewind666 I was thinking of something similar but haven't had time to work on it. I'm ok with a pull request but, if you can, try to make the changes incremental vs one big bang update.

Can you explain more in detail on what you would be adding or changing? Thanks!!!

icewind666 commented 2 days ago

@djsudduth For now I have 2 variations in mind. First - providing existing folder structure (get it in runtime) to llama, with a note content. And let it decide.

Second - make a config where I can describe what folder is what for (cause I think llama will do strange choices based only on folder names:) Or maybe it shoould be not a config but a text description of vault structure.

Will make it an option along with other options. If request to llama failed - fallback to usual behavior

djsudduth commented 2 days ago

@icewind666 I'm not quite following - what do you mean by "folder structure"? Where would that be defined (since Keep has no folder identification).

Also, you'll want to be careful since KIM is mainly for Obsidian, Logseq and Joplin (and, possibly others). So, you'll want to either flag Obsidian specific choices or make it work generically for all three. If it isn't really a Keep function then maybe you should have code outside of kim.py to do the functions you need.

icewind666 commented 2 days ago

@djsudduth let me explain on example. I have obsidian vault with structure like Home -- hobby -- wishlists Work -- projects -- tips

And when I do sync from Keep to Obsidian- I want llama to decide that one note goes to Home-hobby and another to Work-projects by their content

djsudduth commented 2 days ago

@icewind666 ok, that makes sense. The decision of the llama code seems like a post-export function vs. something happening dynamically. I would have KIM export to a working folder and then have llama do it's work to parse, classify and sort.

For example, using Keep and KIM you can create folder namespaces in Logseq by naming Keep notes something like home/hobby/llama rag databases and dynamic code might mess with that.

I'm still feeling like the code should be outside of kim.py and it's own function. Maybe I'm not seeing the entire picture you're envisioning? How about you outline the process steps using some examples?