{"id":50969878,"url":"https://github.com/andrewadev/recipe-insights","last_synced_at":"2026-06-19T01:01:50.526Z","repository":{"id":298378980,"uuid":"997617489","full_name":"AndrewADev/recipe-insights","owner":"AndrewADev","description":"AI-powered insights to help hobbyist chefs discover and better understand the implicit dependencies in recipes they’d like to cook or bake! Built for Hugging Face's June 2025 Agents \u0026 MCP Hackathon.","archived":false,"fork":false,"pushed_at":"2025-10-25T10:25:11.000Z","size":252,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-25T11:40:48.268Z","etag":null,"topics":["ai-agent","gradio","gradio-python-llm","hackathon","huggingface","llm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AndrewADev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-06T20:50:17.000Z","updated_at":"2025-10-25T10:25:15.000Z","dependencies_parsed_at":"2025-06-10T20:42:04.366Z","dependency_job_id":"d0457c3a-1f99-48c0-9293-839e33b3a23a","html_url":"https://github.com/AndrewADev/recipe-insights","commit_stats":null,"previous_names":["andrewadev/recipe-insights"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/AndrewADev/recipe-insights","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewADev%2Frecipe-insights","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewADev%2Frecipe-insights/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewADev%2Frecipe-insights/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewADev%2Frecipe-insights/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndrewADev","download_url":"https://codeload.github.com/AndrewADev/recipe-insights/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrewADev%2Frecipe-insights/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34513029,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-18T02:00:06.871Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","gradio","gradio-python-llm","hackathon","huggingface","llm"],"created_at":"2026-06-19T01:01:48.279Z","updated_at":"2026-06-19T01:01:50.515Z","avatar_url":"https://github.com/AndrewADev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\ntitle: Recipe Insights\nemoji: 📉\ncolorFrom: yellow\ncolorTo: purple\nsdk: gradio\nsdk_version: 5.49.1\napp_file: src/main.py\npinned: false\npython_version: 3.13\ntags:\n  - agent-demo-track\nlicense: apache-2.0\nshort_description: AI-powered insights into Recipe Dependencies!\n---\n# Recipe Insights\n\nA tool to help hobbyist chefs discover and better understand the implicit dependencies in recipes they’d like to cook or bake.\n\n**Notice**: Includes generated sample recipes that have not been tested/verified in the real world and may contain mistakes or improper instructions. Please use common sense and follow all applicable food and appliance safety recommendations when cooking!\n\n## Technical Background (Hackathon)\n\nThis project takes a hybrid approach to LLM-integration, combining structured prompting with agentic workflows for complex recipe analysis:\n\n**🔍 Two-Stage AI Pipeline:**\n- **Stage 1**: Direct LLM calls with structured prompts to extract ingredients, equipment, and cooking actions from recipe text (works well with LLM's strong semantic understanding)\n- **Stage 2**: Agentic workflow using [smolagents](https://github.com/huggingface/smolagents) framework with specialized tools to analyze dependencies between extracted entities\n\n**🛠️ Key Technical Features:**\n- **Hybrid NLP approach** combining spaCy methods with LLM reasoning for robust parsing\n- **Interactive network visualization** using graph theory to display relationships between ingredients→actions→equipment.\n- **State management** with progress tracking and error handling throughout the parsing pipeline\n\n**📋 User Experience:**\nThe \"How To\" tab provides a comprehensive walkthrough of the application flow: sample recipe selection → parsing → dependency analysis → interactive graph visualization → export capabilities. This creates an intuitive experience for hobbyist chefs to understand their recipe's hidden structure and dependencies.\n\nThe application showcases how agentic AI workflows can break down complex NLP tasks into manageable, tool-assisted steps while maintaining transparency and user control throughout the process.\n\n### Explanation videos\n\nUnfortunately sound capture wasn't working properly with Gradio capture, so these are without sound. See the above description, as well as the \"How to\" tab in the application to get an idea of how to use the app.\n\n**Part 1**\n\nhttps://github.com/user-attachments/assets/31ba6146-5570-4dd2-a1f3-6358e6c3716f\n\n\n**Part 2**\n\nhttps://github.com/user-attachments/assets/4de8d2c2-f990-4c51-9522-781b4bf948fa\n\n\n\n## Development\n\nInternally, the project uses `uv`. So setting it up looks like:\n\n```shell\n# Install dependencies\nuv sync\n\n# Run the application\nuv run recipe-insights\n```\n\nSet up pre-commit with:\n```shell\nuv run pre-commit\n```\n\nLastly, you will need to the provide at least the following variables in the `.env` file (you must create the file):\n\n```\n# API Token with permissions for inference on Hugging Face\nHF_TOKEN=\u003cyour token here\u003e\n# Name of model on Hugging Face\nHF_MODEL=\u003cmodel name here\u003e\n```\n\n### Supported models\n\nThe app was developed with `Qwen/Qwen2.5-Coder-32B-Instruct`.\n\nQwen instruct family models continue to deliver reliable results (newer ones tested to work as well, e.g. `Qwen/Qwen3-30B-A3B-Instruct-2507`).\n\nWe've also had (initial) promising results with the GPT-OSS family (though sometimes 20B seems to time out/return empty results, so you may need to try a few times).\n\n#### Identifying other models\n\nThe app is using the `chat.completion` call for inference, so you might start by looking at the models tagged \"conversational\": https://huggingface.co/models?other=conversational\n\n### Updating `requirements.txt` (after dependency updates)\n\nThe project uses `uv` for package management internally. To run on HuggingFace, however, a `requirements.txt` is required for now. You can update it with the following command:\n```shell\nuv pip freeze | grep -v \"file://\" \u003e requirements.txt\n```\n\n#### Additional updates\n\nNote that updates to `gradio` and `python` need to also be reflected in the HuggingFace Space configuration meta at the top of this file.\n\n## Additional information\n\nThe project source is [hosted on GitHub](https://github.com/AndrewADev/recipe-insights), with updates pushed to a [Hugging Face Space](https://huggingface.co/spaces/AndrewADev/recipe-insights).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewadev%2Frecipe-insights","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewadev%2Frecipe-insights","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewadev%2Frecipe-insights/lists"}