我受够了每天问“今天吃什么”,于是做了个 AI 菜单工具
1. 引言“今天吃什么”这大概是人类历史上被问及次数最多却又最难回答的问题之一。每天中午 11:30当熟悉的饥饿感袭来我和我的同事们就会陷入一场旷日持久的哲学思辨打开外卖软件划拉半小时从“这个太油”到“那个太远”最后往往以一句“随便吧”和一份并不满意的午餐告终。我受够了这种每天的精神内耗。与其继续在无尽的选项中迷失不如让 AI 来替我决策。于是我花了几个周末动手做了一个基于大语言模型的 AI 菜单推荐工具。今天我就把这个小项目的诞生过程、技术选型和核心代码分享给大家。2. 痛点分析为什么“随便”最难选在动手之前我分析了一下“今天吃什么”这个问题的本质选择过载外卖平台上的选项成百上千人的决策能力是有限的选项越多决策成本越高。偏好模糊很多时候我们并不是真的“随便”而是没有一个清晰的、可量化的标准。比如“想吃点清淡的”但什么是清淡是少油、少盐、还是蒸菜重复记忆我们经常忘记上次吃过什么导致一周内点了三次同一家店或者总是在几家店之间来回切换缺乏新鲜感。我的目标很明确做一个工具输入我的“今日状态”比如想吃辣的、预算 30 元以内、没吃过的新店它就能直接给我一个最优解省去所有纠结。3. 技术选型为什么选择大模型传统的推荐系统通常基于协同过滤或内容过滤需要大量的用户行为数据。对于我这种个人小工具来说数据量显然不够。而大语言模型LLM的出现提供了一种全新的思路理解自然语言我可以直接说“今天想吃点暖胃的”而不是通过复杂的标签筛选。知识丰富大模型对菜系、食材、烹饪方式有广泛的理解能给出更合理的搭配建议。可解释性它能告诉我“为什么推荐这个”比如“因为您说想吃暖胃的而这家店的胡椒猪肚鸡汤是招牌非常适合”。我的技术栈如下后端Python FastAPI轻量、异步、开发快前端一个简单的 Web 页面HTML CSS JavaScript或者直接做成命令行工具。AI 引擎调用 OpenAI 兼容的 API如 GPT-4o-mini性价比高。数据源手动维护一个本地 JSON 文件记录常吃的店铺、菜品、价格、口味标签和上次吃的日期。4. 核心实现让 AI 学会“点菜”整个项目的核心逻辑并不复杂主要分为三步构建提示词Prompt、调用 AI 接口、解析结果。4.1 构建数据源首先我需要一个结构化的菜单数据库。这里我使用一个简单的 JSON 文件来存储[{name:川味小馆,dishes:[水煮鱼,麻婆豆腐,夫妻肺片],price_range:25-40,tags:[辣,川菜,下饭],last_ordered:2026-07-15},{name:粤式粥铺,dishes:[及第粥,肠粉,白灼菜心],price_range:15-25,tags:[清淡,早餐,暖胃],last_ordered:2026-07-18},{name:日式拉面,dishes:[豚骨拉面,叉烧饭,煎饺],price_range:30-50,tags:[面食,浓郁,日料],last_ordered:2026-07-10}]4.2 核心 AI 推荐函数接下来是调用 AI 的核心代码。关键在于如何设计 Prompt让 AI 像一个贴心的美食顾问一样工作。importjsonfromopenaiimportOpenAIfromdatetimeimportdatetime# 初始化客户端clientOpenAI(api_keyyour-api-key,base_urlyour-base-url)defget_ai_recommendation(user_input:str,menu_data:list)-str: 根据用户输入和菜单数据让 AI 推荐今日菜单。 # 1. 构建上下文信息todaydatetime.now().strftime(%Y-%m-%d)menu_strjson.dumps(menu_data,ensure_asciiFalse,indent2)# 2. 设计 Promptpromptf 你是一个贴心的美食推荐助手。今天是{today}。 以下是用户常去的餐厅和菜单数据{menu_str}用户的需求是{user_input}请根据以下规则为用户推荐一个最佳选择 1. 优先推荐用户很久没吃过的店。 2. 结合用户的口味偏好如辣、清淡、暖胃等。 3. 考虑价格是否在用户预算内。 4. 给出推荐理由让用户觉得“就是它了”。 请以以下格式回复 **推荐店铺**[店铺名] **推荐菜品**[菜品名] **推荐理由**[一段简短的、有说服力的理由] # 3. 调用 AI 接口responseclient.chat.completions.create(modelgpt-4o-mini,messages[{role:system,content:你是一个幽默风趣、懂美食的助手。},{role:user,content:prompt}],temperature0.7,max_tokens300)returnresponse.choices[0].message.content# 使用示例if__name____main__:# 加载菜单数据withopen(menu.json,r,encodingutf-8)asf:menujson.load(f)# 用户输入user_request今天想吃点辣的预算不超过35块最好没吃过的。# 获取推荐recommendationget_ai_recommendation(user_request,menu)print(recommendation)4.3 运行效果当你运行这段代码输入“今天想吃点辣的预算不超过35块”AI 可能会给出这样的回复推荐店铺川味小馆推荐菜品水煮鱼推荐理由您上次去川味小馆已经是 5 天前了是时候重温一下那股麻辣鲜香水煮鱼完美契合您“想吃辣”的需求价格 38 元虽然略超预算但分量十足绝对物超所值是解决“今天吃什么”的终极答案看AI 不仅给出了选择还给出了一个让你无法拒绝的理由。5. 进阶玩法让工具更懂你基础的推荐功能已经能解决大部分问题但还可以加入更多人性化的设计历史记录记录每天的推荐和最终选择让 AI 学习你的真实偏好。“踩雷”反馈如果推荐不好吃可以给个差评AI 下次会避开。多人模式输入几个人的口味偏好让 AI 推荐一个大家都满意的餐厅。集成到聊天软件做成一个 Telegram 或微信机器人每天中午自动推送推荐。6. 总结这个 AI 菜单工具虽然简单但它完美地解决了我每天的精神内耗。它让我意识到AI 的价值不仅仅是生成宏大的报告或复杂的代码更在于这些能切实提升生活幸福感的小工具。如果你也受够了“今天吃什么”的折磨不妨也动手试试。从一个小脚本开始让 AI 成为你的私人美食顾问。毕竟生活的美好往往就藏在这些被解决的小烦恼里。希望这篇文章能给你带来一些启发。如果你有更好的想法或问题欢迎在评论区交流

相关新闻

CKEditor 5 v48.3.1版本深度解析:企业级富文本编辑框架的技术架构与安全协作方案

CKEditor 5 v48.3.1版本深度解析:企业级富文本编辑框架的技术架构与安全协作方案

CKEditor 5 v48.3.1版本深度解析:企业级富文本编辑框架的技术架构与安全协作方案 【免费下载链接】ckeditor5 Powerful rich text editor framework with a modular architecture, modern integrations, and features like collaborative editing. 项目地址: http…

2026/8/15 5:03:51 阅读更多 →
Beat做歌软件怎么选:从挑伴奏、找Sample到完成一首歌

Beat做歌软件怎么选:从挑伴奏、找Sample到完成一首歌

有时候真不是不会写,前二十分钟就是进不了状态。工程开着,主歌写两句又删,越盯空轨道越烦。我通常不硬憋,先刷几段Beat,让鼓点把情绪拽出来。写说唱、旋律demo,或者脑子里只有模糊画面时,先有伴…

2026/8/15 5:04:24 阅读更多 →
075、语义分割驱动的局部调优:场景感知的影像增强

075、语义分割驱动的局部调优:场景感知的影像增强

075、语义分割驱动的局部调优:场景感知的影像增强 去年夏天,我在调试一款车载环视系统的夜视增强模块时,遇到了一个让我连续加班两周的棘手问题。传统的全局直方图均衡化让天空过曝、地面细节丢失;CLAHE虽然能保留局部对比度,但在有路灯的区域会放大噪声,让图像看起来像得…

2026/8/15 0:34:47 阅读更多 →

最新新闻

AI Agent评测体系搭建:从单点测试到全景评估的实践指南

AI Agent评测体系搭建:从单点测试到全景评估的实践指南

1. 项目概述:为什么你的AI Agent评测总在“自嗨”?最近和几个做AI Agent的朋友聊天,发现一个挺普遍的现象:大家聊起自家的Agent,都能说出一堆亮点——响应快、能处理复杂任务、对话自然。但当我问“你怎么证明它比竞品…

2026/8/15 5:04:03 阅读更多 →
求职数据参考网站:如何利用市场数据优化职业决策与薪资谈判

求职数据参考网站:如何利用市场数据优化职业决策与薪资谈判

1. 从信息焦虑到数据决策:为什么你需要一个靠谱的“行情”网站又到一年春招秋招季,无论是刚出校门的应届生,还是准备跳槽的打工人,最常陷入的困境是什么?是海投简历石沉大海,还是面试时对薪资范围心里没底&…

2026/8/15 5:04:03 阅读更多 →
TMC2209 UART模式实战:静音防堵转与动态电流控制

TMC2209 UART模式实战:静音防堵转与动态电流控制

1. 先搞清楚 TMC2209 的 UART 模式到底能帮你解决什么问题如果你正在用 3D 打印机、CNC 或者任何需要步进电机驱动的设备,并且对电机运行时的噪音、发热和丢步问题感到头疼,那 TMC2209 这颗驱动芯片的 UART 模式就是你最该优先了解的功能。它不是一个简单…

2026/8/15 5:04:03 阅读更多 →
Tauri桌面应用开发实战:从Electron到轻量化AI聊天客户端的架构演进

Tauri桌面应用开发实战:从Electron到轻量化AI聊天客户端的架构演进

1. 项目概述:为什么是Tauri? 最近在折腾一个AI对话的桌面应用,核心需求很简单:一个能调用大模型API的聊天窗口,加上历史记录和基本的UI交互。最开始,像很多人一样,我下意识地想到了Electron。毕…

2026/8/15 5:04:03 阅读更多 →
B树与B+树:从磁盘I/O优化到数据库索引实战

B树与B+树:从磁盘I/O优化到数据库索引实战

1. 从磁盘读取的困境说起:为什么需要B树?如果你写过需要处理大量数据的程序,比如一个简单的学生信息管理系统,当数据量只有几百条时,你可能会用一个数组或者链表来存储,查询时遍历一下,感觉也还…

2026/8/15 5:04:03 阅读更多 →
Obsidian三端同步方案:Github+坚果云实践

Obsidian三端同步方案:Github+坚果云实践

1. 为什么需要三端同步方案在知识管理领域,Obsidian凭借其本地优先、Markdown友好的特性迅速崛起。但纯本地存储带来的最大痛点就是多设备同步问题——你不可能永远只在一台电脑上工作。我尝试过多种同步方案后,最终选择了Github坚果云这套组合拳&#x…

2026/8/15 5:03:03 阅读更多 →

日新闻

内景 空间站内部 中国空间站 太空 内仓

内景 空间站内部 中国空间站 太空 内仓

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 空间站内部 中国空间站 太空 内仓 地址:本地PC端运行(或Web…

2026/8/15 0:00:30 阅读更多 →
重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能

重新定义数据接口:3个突破性场景让通达信数据读取更智能 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 当我们面对海量金融数据时,传统的数据获取方式往往让我们陷入困境—…

2026/8/15 0:00:30 阅读更多 →
一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

一文读懂快消WMS怎么选?2026年国内外10大主流WMS品牌盘点

快消品(FMCG)是流通速度较快、竞争较为激烈的行业之一。一瓶饮料从出厂到消费者手中,往往只有几十天甚至几天的周转窗口。这决定了快消行业的仓储管理系统(WMS)与制造业、电商行业存在明显区别:它不仅需要管…

2026/8/15 0:02:30 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/14 13:40:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/14 14:06:45 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/15 2:35:29 阅读更多 →