rizerphe / obsidian-companion

Autocomplete your obsidian notes with AI, including ChatGPT, through a copilot-like interface.
MIT License
232 stars 27 forks source link

Various QoL feature suggestions/requests #16

Open DrChristophFH opened 1 year ago

DrChristophFH commented 1 year ago

First of all thank you for this plugin, I am convinced that writing with a copilot like experience is going to be the future and enables you to focus on the more creative part of story telling rather than finding the perfect words or grammar to convey what you want to say. (I am using this as an author)

Word for word acceptance

I am sure you have worked with copilot in vscode, but if not they have this very nice feature where you can accept either everything with [Tab] or just word for word via [Ctrl] + [Right arrow] and this is really handy. Often it's just the first part you seek to incorporate in your code or text while the later is too far off your desired path. Hence this feature of having the ability to accept all along side just going word for word would be awesome. Note here: would be cool if accepting word for word wouldn't trigger another request and just leave the text there.

Dedicated Context Notes

Currently giving context to Companion is a bit pain and the workflow tedious to say the least. It would be much more streamlined if one were able to quickly select a certain note (maybe even with defined formatting) as the context information for auto completion. This for example would make it easier to extend context like world information for writing.

Side Menu for settings

A small side menu to configure the requests would be really nice to bring the workflow up to pace and enable a streamlined use of the extension. Selecting context notes, setting model and request parameters, all that could be packed into a small side menu for easy access. Having to go to the setting page for changing something that needs to be changed updated or configured regularly is not very comfortable.

Token information and pricing and statistics

To keep track of tokens and price it would be handy to have a rough indicator of how many tokens the given context information is and a setting (putting in the amount one pays for 1k tokens could also be offloaded to the user by a simple input) for how much is payed to roughly estimate costs and keep track of them.

There statistics on how many requests have been sent, how many tokens have been processed, etc. would be a nice addition but this is very high on the nitpicking scale.

Further suggestions I as a writer would appreciate

These suggestions extend the functionality of the plugin quite a bit and I totally get that these might be against the vision of it, but I include them nonetheless as this is the only plugin featuring a copilot like experience and I could see this become one of the, if not the best tool for writing as an author. There are practically no other tools that offer such a potential experience and workflow hence I am really thrilled about it.

Other modes

Being a proper companion (inspired by the copilot plugin of obsidian and other gpt plugins) I could see this plugin become a full fledged "companion", by adding the ability for custom commands that have custom contexts and seeing their answer in the side menu.

The copilot writing experience is great for flow writing, but for other tasks such as rewriting, shortening or detailing specific sections it's not so feasible. There it would be great to just highlight a portion of text and be able to execute a command with custom context and prompt that would be like " ... (context) ... Rephrase this text keeping it more concise and shorter as the original version (highlighted text)."

Or stuff like "write me other versions" ... more gory, more epic, less character focused etc.

World Building Chat

Essentially a sort of chat like feature that can use the given world context and answer certain prompts like "How would XYZ react to event ABC emotionally based on his character?".

Modular context

Keeping the entire context of a world/book or other lengthy texts in 4k or 16k tokens is a proven challenge and one approach would be to keep context modular. Say like having a highlevel world description that is short along side detailed contexts for specific topics that can be exchanged to fit the current need for context. Like when writing about a certain vehicle you only need a small portion of context for the actual world, and can use a lot of context on just information about technology and the specific vehicle.

Hence a system where selecting more than one note as context would be very handy to keep it flexible and make it easy to quickly adapt the context to what is currently needed.