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

A woman reading a book with a disappointed expression, the Goodreads logo in the background, and several thumbs down emojis around. Credit: Lucas Gouveia/How-To Geek | Antonio Guillem/Shutterstock

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

A Raspberry Pi in a case lying on top of a Beelink Mini S12 Pro mini PC. Credit: Adam Davidson / How-To Geek

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 Mini S13 Pro PC.

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. 


How I built my personal librarian

Candidate books are compared to my taste profiles

The Ollama logo. Credit: Corbin Davenport / How-To Geek / Ollama

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.


visual-studio-code-chatbot-interface-open


I finally found a local coding LLM that I actually want to use

Local AI coding assistants are actually useful now.

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.

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.



Source link

Leave a Reply

Subscribe to Our Newsletter

Get our latest articles delivered straight to your inbox. No spam, we promise.

Recent Reviews


Summer is kicking in with full force, and with the temperature rising, Netflix’s summer slate of releases, too, picks up heat. It’s time for your watch list to get a new look, whether you’re looking forward to a cozy romance watch or an addictive new series.

Between long-awaited returning series, nostalgic movie additions, true-crime documentaries, and originals that are sure to stun, there’s a little bit of everything arriving on Netflix. The second season of the highly awaited live-action series, Avatar: The Last Airbender, returns at the end of the month.

Other titles coming this month include The Witness (a true-crime show), Office Romance (a rom-com starring Jennifer Lopez), and I Will Find You (another Harlan Coben thriller).

Plus, licensed additions like Poor Things and Little Miss Sunshine will be available to stream from the beginning of the month. Here’s the Netflix schedule for June.

Everything coming to Netflix in June 2026

Your watchlist gets a summer refresh

Arrival Date

Title

June 1

Bee Movie

Creed I-III

Father of the Bride: Part I & II

Friday Night Lights

Fried Green Tomatoes

Hawaii Five-0: Seasons 1-5

Inside Man 1 & 2

Little Miss Sunshine

Miracle

Muriel’s Wedding

My Best Friend’s Wedding

Rocky 1-5

Rudy

Runaway Bride

Scooby-Doo 1 & 2

The Big Lebowski

The Karate Kid Part I-III

The Wedding Planner

June 4

The Murder of Rachel Nickell

The Witness

June 5

Office Romance

June 6

Grey’s Anatomy: Season 22

Resident Alien: Season 4

June 7

Poor Things

June 8

Shrill: Seasons 1-3

June 10

Outlast: The Jungle

The Rest is Football

June 11

Sweet Magnolias: Season 5

June 12

Maternal Instinct

June 13

Song Sung Blue

June 15

Percy Jackson 1 & 2

June 16

America’s Sweethearts: Dallas Cowboys Cheerleaders: Season 3

Beavis and Butt-Head: The Mike Judge Collection Vol. 1-3

Mike Judge’s Beavis and Butt-Head: Seasons 1-2

June 18

I Will Find You

June 19

Color Book

Voicemails for Isabelle

June 24

The American Experiment

In the Hand of Dante

June 25

Avatar: The Last Airbender: Season 2

June 26

Chris & Martina: The Final Set

Little Brother

June 30

Sullivan’s Crossing: Season 4


If you’re on the lookout for new Netflix titles, make sure you enable desktop or mobile app notifications. You can also browse the “New and Popular” tab regularly to refresh your watchlist with new titles.

Subscription with ads

Yes, $8/month

Simultaneous streams

Two or four

Stream licensed and original programming with a monthly Netflix subscription.




Source link