HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
adityaprasad-sudo
ExploreSingapore
Python2026–2026
adityaprasad-sudo / ExploreSingapore

ExploreSingapore

A sophisticated RAG intelligence engine for Singaporean laws, policies, and history. Comes with a triple-AI failover backend (Gemini/Llama/Groq), semantic embeddings using FAISS, and an Apple-inspired interactive UI. Designed with precision and high availability in mind.

7Distinct people
10Mentions
0Explicit recommenders
79GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A sophisticated RAG intelligence engine for Singaporean laws, policies, and history. Comes with a triple-AI failover backend (Gemini/Llama/Groq), semantic embeddings using FAISS, and an Apple-inspired interactive UI. Designed with precision and high availability in mind.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week10 dated mentions

Observed mentions: 2026-02-07 03:58:51 UTC to 2026-03-15 15:55:34 UTC. Weeks start Monday, UTC.

02462026-02-02 00:00:00 UTC to 2026-02-09 00:00:00 UTC (exclusive): 2 mentions; 2 submissions, 0 commentsFeb 22026-02-09 00:00:00 UTC to 2026-02-16 00:00:00 UTC (exclusive): 6 mentions; 5 submissions, 1 comments2026-02-16 00:00:00 UTC to 2026-02-23 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsFeb 162026-02-23 00:00:00 UTC to 2026-03-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-02 00:00:00 UTC to 2026-03-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-09 00:00:00 UTC to 2026-03-16 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 commentsMar 9

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Feb 22026-02-02 00:00:00 UTC2026-02-09 00:00:00 UTC220
Feb 92026-02-09 00:00:00 UTC2026-02-16 00:00:00 UTC651
Feb 162026-02-16 00:00:00 UTC2026-02-23 00:00:00 UTC110
Feb 232026-02-23 00:00:00 UTC2026-03-02 00:00:00 UTC000
Mar 22026-03-02 00:00:00 UTC2026-03-09 00:00:00 UTC000
Mar 92026-03-09 00:00:00 UTC2026-03-16 00:00:00 UTC110

What Hacker News says

10 sources

Show HN: The biggest achievement of my life so far

Hello everyone, I have always loved coding and in the couple I was thinking of making an open source project and it turned out to be awesome I hope you guys like it. I present Explore Singapore which I created as an open-source intelligence engine to execute retrieval-augmented generation (RAG) on Singapore's public policy documents and legal statutes and historical archives. The objective required building a domain-specific search engine which enables LLM systems to decrease errors by using government documents as their exclusive information source. What my Project does :- basically it provides legal information faster and reliable(due to RAG) without going through long PDFs of goverment websites and helps travellers get insights faster about Singapore. Target Audience:- Python developers who keep hearing about "RAG" and AI agents but ha
Read the rest
ven't build one yet or building one and are stuck somewhere also Singaporean people(obviously!) Comparison:- RAW LLM vs RAG based LLM to test the rag implementation i compared output of my logic code against the standard(gemini/Arcee AI/groq) and custom system instructions with rag(gemini/Arcee AI/groq) results were shocking query:- "can I fly in a drone in public park" standard llm response :- ""gave generic advice about "checking local laws" and safety guidelines"" Customized llm with RAG :- ""cited the air navigation act,specified the 5km no fly zones,and linked to the CAAS permit page"" the difference was clear and it was sure that the ai was not hallucinating. Ingestion:- I have the RAG Architecture about 594 PDFs about Singaporian laws and acts which rougly contains 33000 pages. How did I do it :- I used google Collab to build vector database and metadata which nearly took me 1 hour to do so ie convert PDFs to vectors. How accurate is it:- It's still in development phase but still it provides near accurate information as it contains multi query retrieval ie if a user asks ("ease of doing business in Singapore") the logic would break the keywords "ease", "business", "Singapore" and provide the required documents from the PDFs with the page number also it's a little hard to explain but you can check it on my webpage.Its not perfect but hey i am still learning. The Tech Stack: Ingestion: Python scripts using PyPDF2 to parse various PDF formats. Embeddings: Hugging Face BGE-M3(1024 dimensions) Vector Database: FAISS for similarity search. Orchestration: LangChain. Backend: Flask Frontend: React and Framer. The RAG Pipeline operates through the following process: Chunking: The source text is divided into chunks of 150 with an overlap of 50 tokens to maintain context across boundaries. Retrieval: When a user asks a question (e.g., "What is the policy on HDB grants?"), the system queries the vector database for the top k chunks (k=1). Synthesis: The system adds these chunks to the prompt of LLMs which produces the final response that includes citation information. Why did I say llms :- because I wanted the system to be as non crashable as possible so I am using gemini as my primary llm to provide responses but if it fails to do so due to api requests or any other reasons the backup model(Arcee AI trinity large) can handle the requests. Don't worry :- I have implemented different system instructions for different models so that result is a good quality product. Current Challenges: I am working on optimizing the the ranking strategy of the RAG architecture. I would value insights from anyone who has encountered RAG returning unrelevant documents. Feedbacks are the backbone of improving a platform so they are most Repository:- https://github.com/adityaprasad-sudo/Explore-Singapore
9 points · Open discussion

Show HN: I built a RAG engine to search Singaporean laws

I built a "Triple Failover" RAG for Singapore Laws, then rewrote the logic based on your feedback. Hi everyone! I’m a student developer. Recently, I created Explore Singapore, a RAG-based search engine that scrapes about 20,000 pages of Singaporean government acts and laws. I recently posted the MVP and received some tough but essential feedback about hallucinations and query depth. I took that feedback, focused on improvements, and just released Version 2. Here is how I upgraded the system from a basic RAG to a production-grade one. The Design & UI I aimed to avoid a dull government website. Design: Heavily inspired by Apple’s minimalist style. Tech: Custom frontend interacting with a Python backend. The V2 Engineering Overhaul The community challenged me on three main points. Here’s how I addressed them: 1. The "Personality" Fix Issue:
Read the rest
I use a "Triple Failover" system with three models as backup. When the main model failed, the backups sounded entirely different. The Solution: I added Dynamic System Instructions. Now, if the backend switches to Model B, it uses a specific prompt designed for Model B’s features, making it mimic the structure and tone of the primary model. The user never notices the change. 2. The "Deep Search" Fix Issue: A simple semantic search for "Starting a business" misses related laws like "Tax" or "Labor" acts. The Solution: I implemented Multi-Query Retrieval (MQR). An LLM now intercepts your query. It breaks it down into sub-intents (e.g., “Business Registration,” “Corporate Tax,” “Employment Rules”). It searches for all of them at the same time and combines the results. Result: Much richer, context-aware answers. 3. The "Hallucination" Fix Issue: Garbage In, Garbage Out. If FAISS retrieves a bad document, the LLM produces inaccurate information. The Solution: I added a Cross-Encoder Re-Ranking layer. Step 1: FAISS grabs the top 10 results. Step 2: A specialized Cross-Encoder model evaluates them for relevance. Step 3: Irrelevant parts are removed before they reach the Chat LLM. * The Tech Stack * Embeddings: BGE-M3 (Running locally) Vector DB: FAISS Backend: Python + Custom Triple-Model Failover Logic: Multi-Query + Re-Ranking (New in V2) Try it out I am still learning. I’d love to hear your thoughts on the new logic. Live Demo: https://adityaprasad-sudo.github.io/Explore-Singapore/ GitHub Repo: https://github.com/adityaprasad-sudo/Explore-Singapore Feedback, especially on the failover speed, is welcome!
5 points · Open discussion

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.