By fetching not just the URL but also the Tab title from the browser and vector embedding the combination of the two via a small model (i.e. https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2 ) we can then suggest tab groupings by vector similarity.
The likely best way to go about this is to generate the vector on change and recalculate cosine similarities.
Embedding a single tab has minimal overhead as the content is quite low and calculating groups is also a fairly solved and performant issue.
Example for preparing embed:
tab.url = "https://github.com/nitzanpap/auto-tab-groups/issues/new?exampleurlparamsfluff"
tab.title = "New Issue"
embedding_string = " github.com nitzanpap auto-tab-groups issues new new issue"
cleaning up this way should reduce the overall amount of tokens to be embedded and avoid noise of processing irrelevant context that causes unwanted results.
This approach should have a drastically lower performance overhead whilst still providing semantics based tab grouping.
It should also be able to reliably run in the background without needing the user to actively promt the llm to suggest rules/groupings.
Furthermore if I understand manifest v3 correct it should not require additional permissions from the user
If there is interest for this approach I could try to create a pull request for this concept.
By fetching not just the URL but also the Tab title from the browser and vector embedding the combination of the two via a small model (i.e. https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2 ) we can then suggest tab groupings by vector similarity.
The likely best way to go about this is to generate the vector on change and recalculate cosine similarities.
Embedding a single tab has minimal overhead as the content is quite low and calculating groups is also a fairly solved and performant issue.
Example for preparing embed:
cleaning up this way should reduce the overall amount of tokens to be embedded and avoid noise of processing irrelevant context that causes unwanted results.
This approach should have a drastically lower performance overhead whilst still providing semantics based tab grouping.
It should also be able to reliably run in the background without needing the user to actively promt the llm to suggest rules/groupings.
Furthermore if I understand manifest v3 correct it should not require additional permissions from the user
If there is interest for this approach I could try to create a pull request for this concept.