Thanks for the feedback! WebGPT is good. Looks like it is a vanilla JS? I used TensorFlow.js to offload all the troubles of working with tensors, gradients, and WebGPU integration to it. Along with a possibility to train the model in the browser it also helped to keep the actual GPT code pretty concise (<300 lines). Hopefully it will make easier to learn the model architecture itself for those who’re interested.
About how they scrape other search engines, it's really simple: HTTP calls and parsing of HTML (for most of them).
In MiniSearch, I don't need to save the results by myself. The scrape is done in real-time by SearXNG and passed to MiniSearch, which in turn runs a similarity search and filters out the textual results that don't seem that useful.
But I can say the real differential of MiniSearch is that it's mobile-first. Since the beginning, it was made to run on the browsers of Chrome/Safari/Firefox Mobile, and [Wllama](https://github.com/ngxson/wllama) together with [Web-LLM](https://github.com/mlc-ai/web-llm), along with LLMs of <1B parameters, allowed it!
Thank you for such patient and rich response. I didn't realize that's how SearXNG works.
Fully agree with you that mobile experience is the highlight of your project. It feels... not present. They way it should be - clean, intuitive and focused on results, not the tool.
It really makes me want to add it to things I self host.
Ah! It was first implemented writing only the summary of the link results, as you mentioned, but I noticed the responses were not as good as they are now.
Summarizing each link and then rewriting the response based on them made a noticeable difference for that small-sized model.
But I'll take note of that, as it can indeed be added as a configurable setting.
Regarding the search engine, currently, there's no way to use a different one. At that point, the only search engine I knew could work was DuckDuckGo, but after the suggestion from @hackideiomat in the comments, I already started looking into adding it as a customization.
My team has been doing a lot of teaming (mob programming) recently, and we've tried different tools to keep time in sync and be ready for the following driver's turn.
But the tools we used were overkill when we only needed a timer. So I prototyped a minimalist one that is always in sync for everyone connected.
It's in its early stage and needs a better design, but it's functional. So I'm sharing it here in the hope it can be helpful to others.
It's a VS Code Extension, but it can also be used via browser (https://linkedtimer.com) in case your team uses another IDE/Editor during these sessions.
I'm also considering making a browser extension when it gets more stable.
Awesome feedback!
I liked especially the suggestion about displaying easy-to-replace packages, as Similar, to vulnerable packages currently used.
I'm reworking the package similarity matcher to provide better results, and I'll take all your suggestions into account.
Thanks!
I have previously been impressed by https://github.com/0hq/WebGPT. Now, your project has rekindled hopes for a pure-JS GPT-like model.
Keep it up!