Show HN: HackYourNews – AI summaries of the top HN stories (hackyournews.com)
I wanted to share a pet project of mine. I built HackYourNews [1] to scratch a personal itch: Knowing which stories to focus on while browsing aimlessly (though there is a certain joy in that, as well!)
HackYourNews uses OpenAI's gpt-3.5-turbo to summarize the destination article as well as the comments section. Summarization of the article is always cached, while summaries of the comments are regenerated if the comments count is >10% (or >10 comments) different.
While I styled the homepage to welcome HNers, my preferred view is the Mobile view, accessed from the navbar. This no-frills view honors OS-level dark mode and is easy to skim on any device.
Tried to keep the site minimal. The only JS is Cloudflare's privacy-preserving analytics [2], just to gauge interest.
This is the first time I'm releasing something to the wild.
Hope you find this useful!
The frontend is pure HTML+CSS.
The backend is NodeJS (Puppeteer) + Python with the excellent Microsoft Guidance [3] library to interface to OpenAI's API.
169 comments
[ 3.3 ms ] story [ 243 ms ] threadI wouldn't use it for the same reason I cultivate my own RSS feed and pay very little attention to mainstream media and mainstream social media.
I don't like the risks around outside forces shaping what news I get fed to me.
To address the latter, I am considering adding control over the prompt in a testable way. The former is (still) a matter of intense debate, and unlikely to be resolved soon.
I hope you're able to spot-check a few of the summaries to see if they are sufficiently unbiased, though!
E.g. in the post "Are any words the same in all languages?" the summary concludes with: "Finally, the article reveals the two words that are the same worldwide: coffee and chocolate."
That should be the first sentence in the summary.
Congrats on launching!
Will tweak the prompt to not bury the lede.
> The Shared Words in Almost Every Language: Coffee and Chocolate
The summary is also more upfront with the findings:
> There are a few words that are shared across many languages, including words for tea, pineapple, and orange. However, the two words that are the same in almost every language are 'coffee' and 'chocolate'. These words have spread across the globe and have been adopted by different languages with slight variations in pronunciation and spelling. The word for coffee originated from the Arabic word 'qahwah' and has been borrowed into many languages, while the word for chocolate is based on a Nahuatl word that was adopted by Spanish-speaking communities and then spread worldwide. Knowing these two words can make you feel connected to speakers of almost every language.
The rating is an averaging of many dimensions of qualitative assessment like conciseness and relevance, but GPT3.5 is very nondeterministic with the values it conjures up. I may remove it or break the factors apart for scrutiny.
1. Surface-Level Content: Meme/Shallow Humor 2. Intermediate-Level Content: Opinionated/Analytical 3. In-Depth Content: Research-based / Thoughtful Discourse 4. Meta Level: Meta discussion about the platform, the discussion process itself or overarching themes
Would be interesting to see all comments given a rating icon from grey to red to green to white to make insightful comments standout more
Slight feedback:
- Many "comments" summary start with boilerplate such as "This content discusses" which a bit annoying.
- It would be good to have a sense of "controversy" in the comments summary. Like some kind of general "mood".
Will work on improving the conciseness of the summary and also surface the mood of the discussion.
In my mind, the gold standard for engaging summaries is Seeking Alpha. As a random example, see https://seekingalpha.com/article/4633758-sell-amazon-before-...
If you could train the model to come up with well structured bullet points, the summaries would be amenable to scanning before committing to fully engage. This is just an idea, I am not sure what fraction of your readers would prefer bullet points.
What I'd prefer is just a more appropriate AI generated title in as dense a sentence as possible.
OP: You should play with word lengths to see how short a title/abbreviation you can achieve.
I asked ChatGPT to 'summarize in as few words as possible' and I got this:
Citizen Lab found a zero-click vulnerability, BLASTPASS, exploiting iPhones to deliver NSO's Pegasus spyware via malicious PassKit iMessage attachments. Apple released an update; users advised to apply immediately. Discovery emphasizes advanced threats to civil societies; update protects global devices.
Shameless self-plug: We are building EvaDB [1], a query engine for shipping fast AI-powered apps with SQL. Here is an illustrative query for analyzing food reviews stored in Postgres and generating responses for negative reviews:
It would be interesting to learn about the queries needed for supporting HackYourNews application. Would love to exchange notes on this if you're up for it![1] https://github.com/georgia-tech-db/evadb
I guess this is the SQL query you have in mind that uses the LIKE operator:
From a query processing standpoint, both queries should have equivalent performance -- unless we build an index over the output of the ChatGPT query in EvaDB, in which case the former query would be faster than this one.So like, at the end of all the decoders, the model gives you an output vector; you multiply this by your embeddings to get your token probabilities, then you sample from them to choose a token.
Instead of sampling, you could just look at the probabilities for the tokens "positive" and "negative" and return whichever of those two is highest.
Doesn't this token sampling optimization require using a locally-running model like Llama?
I am presuming that OpenAI doesn't provide direct access to token probabilities in its API.
Small comment: the "dehyped" title does not seem very useful. For most articles it is almost the same as the original title, just rephrased. It should summarize the conclusion or whatever the meat of the article actually is. Repeating the same thing or similar is just a waste of time and space.
Also it seems broken on the site itself, but that could be the AI getting confused on what the actual page title should be. It picked the top story as the dehyped title, which I guess is understandable but when generating a title for a news feed, it's wrong.
The prompt for dehyping was not specific enough, but that (and a related bug) has been fixed. The dehyped titles make (more) sense now and are not the same as the HN article title.
I wondered why there is a special URL for mobile, since this could be easy done by media queries.
On a side note; I desperately need a dark mode and even installed an extension to make HN dark mode compatible.
I need to read up on media queries, thanks.
I like your project better than distill AI because I can read the summaries on the front page without clicking each one. I think that eliminating a click to investigate an uninteresting article is the magic here.
In my case, I appreciate that HN tracks “hidden” items on the back end, because I use three different devices for reading.
What are your intentions with the project, going forward?
Is there an RSS reader already with this type of summarization feature?