I turned a local LLM into a personal eBook librarian, and it gives me better recommendations than Goodreads

I've always struggled to find good books that I really love.I've read a lot of the things that regularly make lists of the best books, and it's tricky to find new things to read that aren't a little disappointing.I decided to see if I could use a local LLM to give me personalized recommendations.

Finding new books is hard I don't like giving up partway I love reading.I've devoted thousands of hours of my life to it, and there are hundreds of books in almost every room of my house.I've read a lot of great books, but finding new books that I really love can be a challenge.

Once I've started a book, I like to see it through to the end, so I end up wasting time reading books that I don't really like.The problem is that most book recommendations leave me cold.I've logged hundreds of books on Goodreads, so I would expect it to be able to give me some good recommendations based on the reading histories of the other thousands of users.

Sadly, the vast majority of the books it recommends I have no interest in at all.I wondered if I could build my own recommendation system based on my reading history.Even if it was hit-or-miss, it couldn't be any worse than Goodreads.

Building a personal librarian was a challenge Using a local LLM didn't give me much grunt I didn't want to upload my entire reading history to a cloud-based LLM.A lot of tech companies use every bit of data they can to build advertising profiles, and this felt like I would be handing a tech company a huge cache of information that says a lot about me.A local LLM felt like the safer option.

The problem is that with my no-frills mini PC, I can only run relatively small local AI models.This was going to limit how effective my recommendation system would be.I started by exporting my Goodreads history, which includes the books I've read and the ratings I've given them.

I used this to create a taste profile with a core selection of the books I loved the most to use as the basis for my recommendations.I ended up splitting this into a small number of different taste profiles, since the books in my list were so varied that it was impossible to create a profile that covered them all.I settled on five core taste profiles that I could use to find similar books.

Beelink S13 PRO CPU Celeron FCBGA1264 3.6GHz Graphics Integrated Intel Graphics 24EUs 1000MHz The Beelink Mini S13 Pro desktop PC is a ultra-compact computer powered by the Intel N150 processor.Shipping with 16GB of DDR4 RAM and a 500GB SSD, this micro desktop is perfect for a variety of workloads.From running simple server programs to replacing your old PC, the Beelink S13 Pro is up to the task.  Memory 16 GB DDR4 Storage 500GB Operating System Windows 11 Home Dimension 4.52 x 4 x 1.54 inches USB Ports 4 $299 at Amazon Expand Collapse How I built my personal librarian Candidate books are compared to my taste profiles Rather than using a standard LLM, I used a small embedding model, nomic-embed-text, running in Ollama.

This model converts book descriptions into numerical vectors so the system can compare these vectors rather than vague descriptions.A selection of candidate books is then pulled from the Open Library database, and each of the candidate books is compared with the taste profiles to find matches.A local AI model ranks the matching candidates, and the five highest-ranked candidates are returned.

Running on my mini PC, the process takes several minutes to run.It's not a time-sensitive problem, however, so this doesn't really matter.As long as it suggests good books, I don't care how long it takes.

Related I finally found a local coding LLM that I actually want to use Local AI coding assistants are actually useful now.Posts 5 By  Nick Lewis The results aren't perfect Not every suggestion is a winner, but they're still better than Goodreads As I expected, running all of this on small local models on my weak hardware is far from perfect.The whole process takes a long time, and often several of the results are poor matches for my taste, or even completely made up.

Deals Grab deals on mini PCs, laptops, and work setups Cut costs on running local AI — explore discounts on compact PCs, extra RAM, SSD storage, and workstation accessories.Find savings across computers, networking, and peripherals to speed up your setup and get more value from at-home hardware.Deals Explore Computers & Work Setup Deals There are usually at least one or two results that are genuinely useful, however.

Each run, the suggestions are added to a file so that they're not suggested again on the next run, and each time I've run it, it's unearthed at least one genuinely good selection.The reason that I know the suggestions are good is that some of them have been books I read and enjoyed before I started logging things in Goodreads.Other suggestions are books I haven't read from authors whose work I've enjoyed in the past, but whose books don't appear in my Goodreads history.

My personal librarian is far from being the perfect solution that spits out five winners every time.Even so, I've already created a list of around 20 books that I'm genuinely looking forward to reading, which is more than I've ever found in my entire time using Goodreads.You don't always need a huge model When I first tried running local AI models, I couldn't believe how slow they were to generate their responses.

I've learned that speed isn't always important; even on my modest mini PC, I've been able to build something that gives me genuinely useful suggestions.

Read More
Related Posts