资讯动态

基于LLM的智能体推荐系统:融合天气与地理上下文的餐饮推荐实践

发布时间:2026/8/23 3:50:26 来源:尧图企业网站定制
1. 项目概述当大模型学会“看天吃饭”“今晚吃什么”这个看似简单的日常问题背后其实隐藏着极其复杂的决策逻辑。它不仅仅是个人口味偏好更是一个融合了实时环境、地理位置、文化习俗与即时需求的综合推理过程。传统的推荐系统无论是基于协同过滤还是内容分析都很难将“今天突然降温想吃点热乎的”、“我在成都出差想尝尝本地人这个季节爱吃的”、“预算有限但想请客有面子”这些动态、多模态的上下文信息无缝整合起来。这正是“Weather- and Location-Aware Agentic Dining Recommendation”项目试图攻克的难题。这个项目的核心是构建一个具备“智能体”Agentic特性的餐饮推荐系统。它不再是一个被动的、基于历史数据匹配的工具而是一个能主动感知、推理并行动的“美食顾问”。其最大的创新点在于它深度利用了大型语言模型所蕴含的、近乎百科全书式的“世界知识”来驱动一种“区域敏感的上下文推理”。简单来说这个系统能理解“下雨天”和“火锅店”之间的强关联不仅在中国还能区分重庆的麻辣火锅和北京的铜锅涮肉在场景上的微妙差别它能知道在广东的盛夏推荐“冬瓜盅”或“凉茶铺”比推荐“烤羊排”更贴心它甚至能结合你的位置判断出步行可达的巷子老店和需要驱车前往的郊区农庄哪个更符合你当下的时间和心情。这个项目的价值远不止于提升推荐准确率几个百分点。它代表着下一代个性化服务的发展方向从静态的“千人千面”走向动态的“千人千时千地千面”让机器推荐真正具备人类般的场景化理解与常识推理能力。对于餐饮平台、本地生活服务乃至智能车载、旅游助手等领域这都是一项极具潜力的基础能力升级。2. 系统核心架构与设计哲学2.1 智能体范式从“检索-匹配”到“感知-推理-执行”传统推荐系统的核心是“检索-匹配”范式。系统将用户画像静态和物品特征静态投射到同一个向量空间计算相似度按分排序。这个过程缺乏对动态上下文天气、位置、时间的深度理解更无法进行复杂的逻辑推理。本项目采用的“智能体”范式则将推荐过程重构为一个循环的“感知-推理-规划-执行”过程。我们可以将其类比为一个经验丰富的美食家朋友陪你选餐厅的过程感知你的朋友会观察环境“今天好冷还刮风”、确认你们的位置“我们在CBD中心周围商圈很密集”、了解你的即时状态“你刚开完会说有点累”。推理基于这些感知信息和他的知识“天冷适合吃热汤类”、“CBD高端日料集中但性价比高的简餐在背面小巷”、“累了可能不想走远也不想等位”进行综合推理。规划他会在脑中形成几个备选方案“方案A去楼下那家新开的粤式炖汤店走路5分钟但可能排队方案B去后面街的日式拉面馆不用等但环境嘈杂些”。执行他向你提出建议“要不我们去喝个炖汤暖和又滋补就是得稍等一会儿”。反馈与迭代根据你的反馈“不想等今天就想快点吃完”他立即调整推理提出新方案“那拉面馆吧快而且他们家的辣味增汤底也很驱寒”。本系统的架构正是模拟了这一过程。其核心组件包括上下文感知器实时获取并结构化用户的地理位置、当地实时天气温度、降水、风力、空气质量、时间时刻、星期、是否节假日、甚至通过简单交互或可穿戴设备数据推测的简易状态如“运动后”、“加班中”。知识增强的LLM推理引擎这是系统的大脑。它并非直接生成餐厅名字而是进行多步推理。首先它基于感知到的上下文从LLM的世界知识中提取出“餐饮偏好约束”如“寒冷天气 - 高热量、汤羹类、烧烤、火锅”“成都春熙路附近 - 川菜、小吃、网红店密集”“工作日午餐 - 快捷、简餐、可商务洽谈”。然后将这些高级约束转化为可操作的、结构化的查询条件。规划与执行器接收来自推理引擎的结构化查询将其转化为对底层数据库餐厅库的具体搜索指令并执行检索。它负责处理多目标优化例如在“距离近”、“评分高”、“符合天气偏好”、“人均预算”等多个维度间进行权衡。交互与学习模块将推荐结果以自然语言形式呈现给用户并收集显式评分、点击或隐式停留时间、最终选择的反馈。这些反馈用于微调推理偏好或作为长期学习的数据使智能体越来越“懂你”。2.2 区域敏感性超越经纬度的文化地理编码“Location-Aware”不仅仅是知道用户的经纬度坐标然后搜索半径X公里内的餐厅。真正的区域敏感性是“文化地理编码”能力。这需要系统理解一个坐标点所承载的多层语义信息行政与商圈层城市、区县、街道、知名商圈如“北京海淀中关村”、“上海徐家汇”。这决定了餐厅的普遍档次和类型分布。功能场景层办公区、住宅区、大学城、旅游景点、交通枢纽。不同场景下的需求截然不同办公区重午餐效率和商务属性住宅区重晚餐家庭聚会旅游区重特色和打卡价值。文化习俗层这是LLM世界知识大显身手的地方。系统需要知道地域菜系偏好在长沙推荐湘菜是理所当然但推荐一些本地人认可的、非游客聚集的“地道小馆”才是关键。季节性饮食文化北京“贴秋膘”习惯吃爆肚、涮肉广东“秋冬进补”喝煲汤、吃羊肉煲江浙“清明时节”吃青团。这些知识是静态数据库难以全面收录的。本地化表述用户说“想喝糖水”在广州应推荐“广式糖水铺”在北京则可能转化为“甜品店”或“港式甜品”。用户说“整点硬菜”在不同地区对应不同的菜品理解。本系统通过向LLM注入精确的地理位置描述激发其关于该区域的文化、饮食习俗知识并将这些知识作为重要的推理上下文。例如当位置是“西安回民街附近”时LLM在推理中会自发赋予“清真”、“牛羊肉”、“小吃”、“泡馍”、“糕点”等概念更高的权重和关联度。2.3 天气作为强上下文信号量化环境对偏好的影响天气是影响人类情绪和决策的强相关因素但在以往推荐系统中常被忽视或简单处理如“下雨”标签。本项目需要深度解构天气参数并建立其与餐饮选择的量化或语义关联模型。温度最核心的指标。低温通常关联“温暖”、“热辣”、“高热量”、“炖煮”、“火锅”高温则关联“清爽”、“冰凉”、“沙拉”、“冷面”、“解暑汤羹”。这并非简单规则LLM可以理解“春寒料峭时想吃的暖胃粥”和“深冬严寒时想吃的麻辣火锅”之间的程度差异。降水与湿度下雨/雪天出行意愿降低“距离近”、“可外卖”、“店内环境舒适”的权重急剧上升。湿度大时可能关联“祛湿”食材如薏米、红豆或烹饪方式如煲汤。风力与空气质量大风天可能减少对露天座位或需要长距离步行的餐厅的选择。空气质量差雾霾可能增加对拥有良好空气净化系统的室内餐厅或具有“润肺”功效食物的偏好。综合天气现象“雨后的夏日傍晚”与“寒冷的冬夜”所激发的饮食想象完全不同。LLM能够处理这种复杂的多天气因子组合生成更细腻的偏好描述如“想要一个在雨声中显得格外温馨的、有落地窗的小咖啡馆”或者“寒风凛冽适合找家烟火气十足的烧烤店”。实操心得天气数据的语义化转换直接给LLM输入“温度7°C天气小雨风力3级”这样的原始数据效果不如将其转化为一段自然的描述“当前是7°C的阴冷雨天伴有微风。”后者更能激发LLM基于常识的联想。因此在上下文感知器中需要一个简单的“天气文本描述生成”模块将结构化数据转化为自然语言片段再喂给LLM推理引擎效果显著提升。3. 关键技术实现与核心模块解析3.1 上下文感知与特征工程这一模块是系统的“感官”负责采集和预处理所有动态输入信号。地理位置处理输入GPS坐标经纬度或模糊位置文本如“虹桥机场T2航站楼”。处理流程首先通过逆地理编码服务如高德/百度地图API将坐标转换为结构化的地址信息国家、省、市、区、街道、地标。接着调用POI兴趣点搜索API获取周边关键设施信息是否靠近商场、写字楼、学校、地铁站。最后将结构化地址和周边场景标签如[“核心商圈” “交通枢纽” “写字楼密集区”]拼接形成位置上下文文本。示例输出“用户位于上海市徐汇区徐家汇商圈核心区域毗邻大型购物中心与地铁枢纽属于高端商业办公混合区。”天气数据融合数据源接入权威气象API如中国天气网、和风天气获取用户当前位置的实时天气和短期预报。特征提取不仅获取温度、天气现象晴/雨/雪等、降水量、风力、湿度、空气质量指数AQI等原始值还需计算一些衍生特征如“体感温度”综合温度、湿度、风力、“天气舒适度指数”自定义公式、“是否恶劣天气”布尔值结合降水、大风、雾霾等。语义化描述生成如上文心得所述将上述特征组合生成一段自然语言描述。例如“当前室外体感温度约5°C阴天空气质量良。天气较为湿冷。”用户即时状态推断轻量级时间上下文当前时刻、星期几、是否为节假日。这是最易获取且重要的状态信号。简单交互通过一个极简的对话入口或选择按钮让用户快速选择“场景”如[“快速工作餐” “朋友聚会” “家庭用餐” “浪漫约会” “随便吃点”]。设备数据如有权限通过手机步数推测是否刚运动完通过日历事件推测是否处于会议间隙等。这部分需谨慎处理用户隐私。最终所有这些上下文信息被整合成一个结构化的提示词Prompt前缀准备输入给LLM推理引擎。3.2 LLM驱动的区域敏感推理引擎这是项目的“大脑”也是技术核心。其目标是将非结构化的多模态上下文转化为结构化的、可执行的餐厅搜索查询。我们采用了一种“链式推理Chain-of-Thought”的提示工程方案。推理Prompt设计示例你是一个精通各地饮食文化、熟悉城市生活的地理美食顾问。请根据以下用户的实时情境分析其潜在的餐饮偏好并生成具体的搜索查询条件。 用户实时情境 1. 地理位置{位置上下文文本} 2. 当前天气{天气语义化描述} 3. 当前时间{时间信息} 4. 用餐场景{用户选择的场景} 请按以下步骤思考 步骤一地域菜系分析根据用户所在的地理位置推断该地区最受欢迎的特色菜系、本地人常去的餐饮类型以及该区域餐饮消费的特点如性价比、高端餐饮集中度等。 步骤二天气影响分析结合当前天气分析这种天气条件下人们普遍倾向于选择何种口味、温度、烹饪方式的食物天气是否会影响对餐厅环境如室内外座位、出行距离的偏好 步骤三场景与时间分析结合用餐场景和时间如工作日午餐、周末晚餐分析用户可能对用餐时长、人均预算、餐厅氛围安静/热闹有何种期待 步骤四综合推理与约束生成综合以上所有分析总结出3-5条最核心的、具体的餐厅筛选条件。这些条件应尽可能具体、可操作用于后续的数据库检索。 步骤五查询生成将上述筛选条件转化为一个结构化的JSON输出包含以下字段cuisine_preference菜系偏好数组、price_range人均价格区间如“100-150”、ambience氛围如“温馨”、“商务”、“热闹”、special_requirements特殊要求如“有包厢”、“适合带孩子”、“可外带”。 请开始你的推理。LLM的输出示例JSON部分{ cuisine_preference: [粤菜, 潮汕砂锅粥, 港式茶餐厅], price_range: 80-120, ambience: [安静, 舒适], special_requirements: [适合2-4人小聚, 交通便利近地铁, 推荐汤品或煲类菜品] }注意事项LLM推理的稳定性直接让LLM输出JSON有时会格式不稳定。在实践中我们采用两种策略一是使用LLM的“函数调用Function Calling”能力直接定义好generate_dining_query(cuisine, price_range...)函数让LLM调用输出更稳定二是在提示词中严格要求JSON格式并在后端添加一个健壮的JSON解析和校验层对格式错误的输出进行重试或降级处理。3.3 规划、执行与结果生成推理引擎产出结构化查询后规划与执行器开始工作。查询翻译与优化将LLM生成的、相对抽象的查询条件翻译成底层餐厅数据库可能是Elasticsearch、PgVector或传统SQL数据库能够高效执行的查询语句。cuisine_preference- 匹配餐厅的“菜系标签”。price_range- 过滤餐厅的“人均消费”字段。ambience和special_requirements- 匹配餐厅的“特色/服务标签”。地理位置这是一个硬性约束通常以用户位置为中心按一定半径如3公里进行地理范围筛选并可按距离排序。多目标排序检索出的餐厅列表需要根据多个维度进行综合排序。一个简单的加权评分模型如下综合得分 w1 * 餐厅基础评分 w2 * (1 / 距离) w3 * 与LLM偏好标签的匹配度 w4 * 天气适应度评分其中“天气适应度评分”可以预先计算或实时匹配例如给每个餐厅打上“适合雨天”、“适合冷天”、“有露天座”等标签根据当前天气进行加权。自然语言结果生成将排名靠前的餐厅列表如前5名再次交给LLM让其生成一段个性化的推荐语。这次提供的Prompt会包含原始上下文、推理出的偏好、以及餐厅的详细资料名称、地址、招牌菜、评分、人均等。输入用户上下文 餐厅列表数据。指令“请根据用户的情境和偏好为以下每家餐厅撰写一句吸引人的推荐理由重点突出它与当前天气、位置、场景的契合点。”输出示例“‘煲仔饭世家’距离您仅500米这种湿冷的天最适合来一份热气腾腾、锅巴焦香的腊味煲仔饭瞬间驱走寒意。” 这样最终呈现给用户的就不是一个冰冷的列表而是一个有温度、有场景感的个性化推荐。4. 系统搭建的实操挑战与解决方案4.1 数据层构建“可推理”的餐厅知识库传统的餐厅数据库可能只包含名称、地址、电话、人均、评分、菜系等字段。要支持本系统的深度推理需要对数据进行增强。标签体系升级基础标签菜系、价格区间、场景情侣、家庭、商务等。环境标签露天座、包厢、停车方便、地铁直达、安静程度。天气/季节标签这是需要重点构建的。可以通过多种方式生成LLM批量标注将餐厅的招牌菜、简介、用户评论摘要输入LLM让其判断该餐厅“适合什么天气/季节”例如“适合冬日进补”、“夏季清爽之选”、“雨天氛围好”。用户评论挖掘从“下雨天来这里吃火锅太舒服了”、“夏天就爱他们家的冷面”这类评论中提取关联。菜品知识图谱构建菜品与天气/功效的关联如“羊肉”-“温补”、“冬季”“苦瓜”-“清热”、“夏季”再关联到餐厅。菜品级数据如果可能获取餐厅的招牌菜或菜单。LLM在推理时如果能结合具体菜品如“羊蝎子火锅”、“冰镇绿豆汤”其推荐理由将更具说服力。地理语义增强为餐厅地址附加更丰富的语义信息如“位于老城区美食街”、“毗邻大学城后街”、“CBD高层观景餐厅”。这些信息有助于LLM理解餐厅的“氛围”和“地域特色”。4.2 性能与成本优化LLM调用的艺术全程依赖大模型进行实时推理延迟和成本可能成为瓶颈。必须进行优化缓存策略地理位置-天气-场景组合缓存对于相同的{地理位置网格 天气概况 时间场景}组合其LLM推理出的偏好条件在短时间内是稳定的。可以将推理结果JSON查询条件缓存起来有效期设为30分钟到1小时能极大减少对LLM的调用。餐厅推荐语缓存对于固定的{餐厅 天气标签 场景}组合其生成的推荐语也可以缓存。LLM模型选型推理阶段使用能力较强的中型模型如GPT-4、Claude-3 Sonnet或国内同等能力的模型确保推理质量。推荐语生成阶段可以使用更轻量、更快速的模型如GPT-3.5-Turbo、Claude-3 Haiku因为此任务创造性要求稍低更偏重模板化的信息组织。异步与流式处理用户请求到来后系统可以并行执行地理位置解析、天气获取和缓存查询。如果缓存未命中再触发LLM推理。推荐语的生成也可以在检索结果返回后异步进行优先返回餐厅列表再逐步流式返回或更新推荐语。4.3 评估与迭代如何衡量“更懂你”推荐系统的评估一直是个难题。除了传统的线上A/B测试指标点击率、转化率、下单率本项目更需要关注“场景契合度”和“用户惊喜度”。人工评估定期抽样一批推荐案例由评估人员根据上下文天气、位置、时间判断推荐结果是否“合理”且“贴心”。设计评分卡从“完全无关”到“完美契合”打分。基于LLM的自动评估构建一个“裁判LLM”给定用户上下文和推荐结果让裁判LLM从“相关性”、“合理性”、“吸引力”等多个维度进行评分。虽然存在偏见但可以作为快速迭代的辅助工具。用户反馈闭环在推荐界面提供轻量级的反馈按钮如“很应景”、“不合时宜”等。收集这些直接针对场景的反馈用于优化推理模型的权重或微调提示词。长期偏好学习在用户多次使用后系统可以学习到用户个体在特定天气、特定位置下的稳定偏好例如用户A每次下雨天在办公室附近都选择某家面馆从而在未来推荐时给予更高权重。5. 潜在问题排查与效果调优在实际部署和运行中会遇到一些典型问题。5.1 常见问题与排查表问题现象可能原因排查与解决方案推荐结果完全偏离上下文如大热天推荐火锅1. LLM推理Prompt设计有误未能有效结合天气。2. 天气数据获取失败或延迟使用了默认/缓存值。3. 餐厅数据库的天气标签缺失或错误。1. 检查发送给LLM的Prompt确保天气描述清晰嵌入。2. 查看天气API调用日志和返回数据。3. 抽样检查被错误推荐的餐厅核实其标签。推荐结果地域特色不明显1. 位置上下文文本过于宽泛如只到城市级别。2. LLM对特定区域的知识不足或过于笼统。3. 餐厅地域标签不准确。1. 强化逆地理编码获取更精确的街区、商圈信息。2. 在Prompt中明确要求“结合该区域本地人饮食偏好”。3. 引入更细粒度的地域菜系标签如“本帮菜-浦东老味道”。响应延迟过高1. LLM API调用耗时过长。2. 数据库查询未优化特别是地理位置附近查询。3. 未有效利用缓存。1. 考虑使用更快的模型、或对推理结果实施更激进的缓存。2. 为餐厅地理位置建立空间索引如R-tree。3. 分析请求链路找出瓶颈环节。推荐多样性不足总是那几家1. 排序算法中“餐厅基础评分”或“距离”权重过高。2. 缓存机制导致相同上下文总是返回相同结果。3. LLM推理出的偏好条件过于狭窄。1. 在排序中引入“探索因子”偶尔降低高分餐厅权重。2. 为缓存结果增加少量随机扰动或在缓存键中引入时间因子如上下午。3. 调整Prompt要求LLM在条件中保留一定的多样性如“主要偏好粤菜但也可考虑评价极高的其他菜系”。LLM输出格式不稳定LLM未严格遵守JSON格式要求。1. 优先使用模型的“函数调用”功能。2. 在代码中添加健壮的JSON解析器对格式错误进行重试或使用降级策略如回退到关键词提取。5.2 效果调优从“能用”到“好用”当系统基本运行后调优的重点在于让推荐变得更精准、更人性化。Prompt工程的精细化角色扮演让LLM扮演更具体的角色如“一个在成都生活了十年的美食编辑”、“一个注重养生和节气的家庭主厨”其输出的偏好会更具特色。少样本示例在Prompt中提供1-2个完美的输入输出示例能显著提升LLM遵循指令和格式的能力。分步指令的细化将推理步骤拆解得更细例如把“天气影响分析”拆成“对食物温度偏好的影响”、“对出行方式的影响”、“对餐厅环境选择的影响”分别提问再让LLM综合。混合推荐策略LLM主导 协同过滤兜底当LLM推理出的餐厅过少或置信度不高时可以无缝切换到传统的基于用户历史行为的协同过滤推荐保证推荐列表的充盈。多路径推理可以并行运行多个略有不同的Prompt例如一个侧重天气一个侧重地域文化然后对结果进行融合增加推荐的多样性和鲁棒性。上下文权重的动态调整并非所有天气对所有人的影响都一样。可以通过用户反馈学习到个体对天气的敏感度。例如用户多次在微雨天拒绝推荐的所有“适合雨天的咖啡馆”系统应逐渐降低“雨天”这个上下文在该用户推荐中的权重。同样对于通勤族“工作日午餐”场景下“距离近”和“出餐快”的权重可能远高于“餐厅氛围”。构建一个“Weather- and Location-Aware Agentic Dining Recommendation”系统是一个将前沿LLM技术与经典推荐系统、地理信息系统、实时数据流处理相结合的复杂工程。它挑战的不仅是技术整合能力更是对人性化、场景化服务的深度理解。当你的推荐系统不仅能说出“这家店评分高”还能说出“外面起风了这家店的猪肚鸡汤锅正好暖身而且从你公司走过去就拐个弯不用吹风”时用户体验的升级将是颠覆性的。这不仅仅是推荐餐厅而是在提供一种懂得关心、懂得情境的数字化生活伴侣。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价