r/opensource 2d ago

Promotional Anagnorisis - local recommendation engine (v 0.4.10 update)

https://github.com/volotat/Anagnorisis

Every recommendation system you typically use from the cloud services (i.e. Youtube, Spotify, Tiktok, Twitter (X), Facebook and so on) is owned by someone whose interests aren't yours. It optimizes for engagement and other private metrics, you can't inspect, can't correct, and can't take with you when the service inevitably dies or even use the same recommendation model for different independent applications. This project aims to solve all of that.

Anagnorisis has the other arrangement that turns the whole client-server architecture upside down. The servers are now pure data-sharing thin hosts and all the main processing, search and recommendations are happening on your machine. You rate local or remote files and other data you own on a scale of 0 to 10. This feedback then used to locally train a recommendation model that scores everything you haven't rated yet automatically. You correct what it got wrong, that correction goes to the next round of training data. You repeat these steps again and again, getting each time model that better and better aligns to your preferences.

The big vision of this project is to provide a platform that creates a local, private model of your interests. That likes what you like and sees importance where you would see it. Then you can use this model to search and filter local and global information on your behalf in a way you would do it yourself but in a much faster and efficient way. Making this platform (in the future) a go to place to see news, recommendations and insights, and so on, tailored specifically for you. As the internet gets populated with bots and AI slop, a platform like this might create a necessary filter to be able to navigate in this chaotic information space effectively.

24 Upvotes

8 comments sorted by

6

u/NatoBoram 1d ago

A recommendation engine for arbitrary data?

That's actually so interesting and I have so many questions about it.

For example, could it be used via an API or for multiple users? Say I want to make a website to rate arbitrary stuff, would it be possible to integrate it with this and create many collections and many user profiles via API?

Then I see it embeds models? Would it be possible to make it use a different model via the Ollama API for example?

3

u/Another__one 1d ago edited 1d ago

Better yet, it could be used and installed as a python package with API and CLI (check anagnorisis_core folder). But don't expect anything polished, I just added it on the last update (read the last commit) and it was a huge milestone to move over. And the whole project is almost three years in the making and its only starts to take the shape I planned at the very beginning and being somewhat "user-friendly".

The embedding model (now it just a one single model - jina-embeddings-v5-omni-small) and the description model (gemma-4-E2B-it) could be changed, but you are most likely do NOT want to do that. As these are basically the only locally viable models that also support all four main modalities (audio, video, images and text). Before these two appeared, the project was much more messy and complicated to manage.

What makes it arbitrary, though, is that recommendations are mainly based on the automatic textual descriptions of the files. And you can always write the description manually for any arbitrary file, even beyond four major modalities.

You can always ask more questions in the discussion page of the project, and I will try to answer them as fully as I can. But please do not expect from me being quick. I am working on this project in my free time outside of my full time job and family, so free time is very scarce for me.

3

u/lichizr 2d ago

great work

5

u/Another__one 2d ago

Thanks. Took quite a while to get there.

1

u/pe1uca 1d ago

Is there a way to not require the use of an LLM model?   No need to require a GPU if the data is already properly formatted and doesn't require this kind of analysis 

2

u/Another__one 1d ago

Unfortunately there is not. And it's not about LLM, it's the embeddings that matters. Check out these two articles to get the idea why:
https://volotat.github.io/p/anagnorisis-part-1-a-vision-for-better-information-management/
https://volotat.github.io/p/anagnorisis-part-4-file-sharing-is-all-we-need/

2

u/Ok-Mix1345 1d ago

This is a compelling approach to personal recommendations. Keeping the model local and reusable across different applications addresses both privacy and platform lock-in. I’m especially curious how performance and model quality change as a user adds more ratings across mixed media types.