返回首页
最新
我非常喜欢葡萄酒,但我的知识并不广泛,尤其是在加州以外的葡萄酒方面更是如此。即使在我熟悉的品种和地区,我也不总是知道从特定瓶装酒中可以期待什么样的特征——这款齐纳酒会有胡椒味吗?果汁味呢?等等。
为此,我开发了一款应用程序来简化这个过程。你只需设置你想要的葡萄酒类型和价格区间,拍一张酒单的照片,应用程序会处理其余的内容。它会根据以下几个方面对菜单进行排名:
- 一致性:与您的口味偏好的匹配程度。
- 价值:与零售价格相比的加价。
- 质量:评论家的评分和在线评价。
它还提供每款葡萄酒的完整描述和品鉴笔记,而许多酒单往往会忽略这些信息。
技术栈:
- 客户端:React Native
- 后端:FastAPI,部署在Google Cloud Run上
- 数据库:Firestore和Algolia
以下是管道的主要组成部分:
图像到酒单:这是标准OCR和智能图像识别的结合。仅使用OCR无法正确解析布局(将价格与正确的项目分组),而“智能识别”往往会出现字符幻觉。我使用了Google Vision来提取原始文本,并使用Gemini 2.5 Flash Lite进行结构化。
匹配(酒单→数据库):实际上这是最难的部分。酒单在命名上有很大的自由度,很难判断模糊匹配是否足够接近。我在这里使用了Algolia,并设置了自定义排名规则。
智能增强:我有一个预构建的数据库,但为了实时填补缺失的条目,我需要实时搜索。我尝试了Tavily、Perplexity和Google Search Grounding。最终,Perplexity(Sonar Pro)在准确性和性能之间达到了最佳平衡。
推荐:使用Gemini 2.5 Flash Lite进行风味轮廓匹配,使用传统数学计算基于价值和评分的分数。
总结:
AI需要保护措施:如果你在小剂量下使用真实输入数据,它的效果非常好。但目前还无法直接从照片生成推荐列表而不出现幻觉。
延迟权衡:同时获得速度和质量是很困难的。由于这是为餐厅环境设计的,我必须努力减少大型语言模型的调用,以避免让用户感觉迟缓。
视频: <a href="https://www.youtube.com/watch?v=OT1k7o89ed4" rel="nofollow">https://www.youtube.com/watch?v=OT1k7o89ed4</a><p>我很好奇是否可以通过大型语言模型(LLM)来驱动一个应用程序。我认为这很有趣,并且有一些潜在的应用场景可以闭合代理循环。请分享您想到的想法!<p><a href="https://www.youtube.com/watch?v=OT1k7o89ed4" rel="nofollow">https://www.youtube.com/watch?v=OT1k7o89ed4</a><p>这是我完成构建后的原始演示。我主要想听听您是否有让您感到兴奋的应用场景。<p>这可能会变成什么,以及它能为您解决什么问题。<p>我一直在从代理验证的角度思考这个问题,代理可以独立验证和修复错误。