RRAG (Restaurant RAG)
by Harry
What it does: 1. You give it a csv containing (restaurant name, general location of restaurant) e.g., (East is East, Vancouver Broadway) 2. You give it a series of fields you want the AI to fill out after conducting research (e.g., Menu items, price, address, website, etc) 3. For each restaurant in CSV, the AI autonomously researches that restaurant by (1) making targeted web searches (2) reading the results (3) deciding if it needs more info and do it again (4) reaching a point where it is able to synthesise the findings into an answer 4. The app returns the LLM-filled contents of the requested fields back to you in a uniform JSON structure To make a database for my main project (Voyago), I need a way to be able to quickly collect basic info for a lot of restaurants. I tried to make my own RAG (Retrieval-Augmented Generation, basically the process that goes on when you ask ChatGPT to search something up) system for this, but it frankly sucked and given the limited time I have with APs, I figured it'd be better if I cloned an existing RAG system from Github and adapted on it to fit my needs. I intended to do two main things: 1. Adapt it to Hack Club AI's API for LLM (previously it used Openai API) 2. Switch to Serper.dev API for web-searching tool (previously it used SerpAPI) 3. Make it accept bulk input of restaurant names (e.x., via CSV) and generate responses in a uniform data structure (e.x., via JSON) One of the things I had to learn and try to implement at the end of the day was a validate + retry system. This came because the RAG is really unstable previously (in one search you might get really satisfactory results, in the other you get none), and one of the biggest reasons seen through the debug prints is that the system doesn't go back and retry when it fails something. If it was able to just try once more, the RAG would've performed much better overall. **DEMO LINK COMMENT (IMPORTANT)** For this revised submission, I was asked to put my Pypi url in as the demo link. If this is another organizer and wonders where my video link is, here it is: https://youtu.be/_eLFlo78jj0 By the way, dear HCTG organiser, please note that I am 100% committed to attending HCTG, so if my projects are unable to be approved by May 8th for the 20 hour reduction, pls be soft on the deadline cuz I'll 100% be coming and I will most definitely make the 40 hours by the extended due date
Extra info
2026-05-02T23:24:12.289Z
Approved at 2026-05-04T23:49:11.800Z
User submitted
10h 10m
Reviewer approved
9h 1m
Hackatime projects: [21440]
Raw project json
{
"aasm_state": "approved",
"ai_declaration": "AI is used mainly for four things in my project:\r\n1. Debugging (adding debugging statements that helped me find where the error was several times during the making, pointing out high-level issues like the lack of a retry system that caused instability in the initial RAG system)\r\n2. Prompt development (ChatGPT wrote prompts for the LLM because its very good at prompt engineering). For instance, the structure of the Examples.md, where the prompt sets strict requirements on what the output JSON should look like\r\n3. Difficult parsing (e.g., sorting info extracted from search into buckets based on their origins for better digestion). Some of these I found to be very tedious relative to its contribution to the program\u0027s function, mainly because although there are tutorials online, adapting the parsing to my own use case is a case in itself.\r\n4. I used ChatGPT to help me summarise implementation documentation for particular APIs, namely the Serper.dev (web browsing tool) API\r\n\r\n\r\nIn making this project, I can confidently say that \u003c 30% of my code was generated using AI and that it was used in a meaningful way that does not turn the project into slop",
"approved_at": "2026-05-04T23:49:11.800Z",
"approved_seconds": 32507,
"created_at": "2026-05-02T01:30:11.230Z",
"demo_link": "https://pypi.org/project/harry-hctg-voyago-web-research-agent/1.0/",
"desc": "What it does:\r\n1. You give it a csv containing (restaurant name, general location of restaurant) e.g., (East is East, Vancouver Broadway)\r\n2. You give it a series of fields you want the AI to fill out after conducting research (e.g., Menu items, price, address, website, etc)\r\n3. For each restaurant in CSV, the AI autonomously researches that restaurant by (1) making targeted web searches (2) reading the results (3) deciding if it needs more info and do it again (4) reaching a point where it is able to synthesise the findings into an answer\r\n4. The app returns the LLM-filled contents of the requested fields back to you in a uniform JSON structure\r\n\r\nTo make a database for my main project (Voyago), I need a way to be able to quickly collect basic info for a lot of restaurants. I tried to make my own RAG (Retrieval-Augmented Generation, basically the process that goes on when you ask ChatGPT to search something up) system for this, but it frankly sucked and given the limited time I have with APs, I figured it\u0027d be better if I cloned an existing RAG system from Github and adapted on it to fit my needs. \r\n\r\nI intended to do two main things:\r\n\r\n1. Adapt it to Hack Club AI\u0027s API for LLM (previously it used Openai API)\r\n2. Switch to Serper.dev API for web-searching tool (previously it used SerpAPI)\r\n3. Make it accept bulk input of restaurant names (e.x., via CSV) and generate responses in a uniform data structure (e.x., via JSON)\r\n\r\nOne of the things I had to learn and try to implement at the end of the day was a validate + retry system. This came because the RAG is really unstable previously (in one search you might get really satisfactory results, in the other you get none), and one of the biggest reasons seen through the debug prints is that the system doesn\u0027t go back and retry when it fails something. If it was able to just try once more, the RAG would\u0027ve performed much better overall.\r\n\r\n**DEMO LINK COMMENT (IMPORTANT)**\r\nFor this revised submission, I was asked to put my Pypi url in as the demo link.\r\nIf this is another organizer and wonders where my video link is, here it is: https://youtu.be/_eLFlo78jj0\r\n\r\nBy the way, dear HCTG organiser, please note that I am 100% committed to attending HCTG, so if my projects are unable to be approved by May 8th for the 20 hour reduction, pls be soft on the deadline cuz I\u0027ll 100% be coming and I will most definitely make the 40 hours by the extended due date",
"hackatime_projects": [
21440
],
"high_quality": false,
"id": 2020,
"real_approved_seconds": 32507,
"rejected_at": "2026-05-02T21:20:07.905Z",
"repo_link": "https://github.com/fengyuan66/web-research-agent-main",
"reported_seconds": 36611,
"screenshot": "https://r2.hctg.gallery.karimeltaib.com/2020.PNG",
"status": "Approved on 2026-05-04",
"submitted_at": "2026-05-02T23:24:12.289Z",
"tags": [
6
],
"title": "RRAG (Restaurant RAG)",
"total_seconds": null,
"unread_notification_count": 0,
"updated_at": "2026-05-04T23:49:11.809Z",
"user_id": 1513,
"username": "Harry",
"ysws": null
}