最近在 Hacker News 的 Show HN 板块上有人放出了一个找房项目标题只有一句话Home search that chats, reads the photos, and est. monthly costs。这句话看起来不像传统产品介绍但它其实把一个 AI 找房产品最关键的三种能力压缩在了一起能对话、能看照片、能算每月成本。很多人看到这类标题第一反应是“这不就是一个加了聊天框的房源搜索网站吗”。如果只从交互层去理解会大大低估这类项目的价值。我在看这类 AI 重构传统垂直场景的产品时从来不会只关注它有没有接入大模型而是看它有没有真正改变用户的决策路径。找房和“搜索网页”不一样它的决策链条非常长先要筛选预算、地段、户型再要在几十套房的图片里判断居住质量最后还要估算每月还款、税费、物业成本才知道自己到底买不买得起。聊天只是入口读照片是信息补充成本估算则是把“贵不贵”从一个模糊感觉变成可以被比较的数字。需要先说明的是目前我能确认的信息只有这个项目对外描述的三层能力。内部源码、技术栈、部署方式都没有公开。所以这篇文章不是做一个具体仓库的源码讲解而是回答更通用的问题这类 AI 找房项目的价值到底在哪一层要实现“聊天、读图、估成本”三件事系统应该拆成哪些模块如果我要做一个最小可行的同类型产品代码应该怎么写产品化之后又会暴露哪些坑下面的内容会先讲产品定位和原有痛点再拆解三个核心关键词然后给出一套参考架构和一个可运行的 Python 最小原型最后集中写踩坑经验与工程建议。无论你是做 AI 应用开发、房产后台系统还是想把这个思路移植到自己所在的城市这篇文章都能帮你快速建立系统边界。1. 这个项目真正解决了什么问题先回答一个最基本的问题为什么找房产品值得被重做一遍因为现有的房子搜索流程本质上把用户的决策成本转移到了用户自己身上。过去你在房产 App 上找房常见路径是这样的打开列表页设置总价、区域、户型筛选条件然后一条一条往下刷。看到一套稍微顺眼的房子你得点进详情页从头到尾读文字描述再翻十几张图片自己判断这间卧室是不是暗房、厨房是不是需要重新装修、窗外有没有遮挡。如果预算有限你还要同时打开贷款计算器把房价、首付比例、贷款年限、利率一个个填进去才能算出一个大概的月供。这样的流程极其容易中断因为你的注意力要在“列表条件”“图片想象”“成本计算”三个完全不同的事情上来回跳跃。这个 Show HN 项目的意义就在于用 AI 把这三件原本割裂的事捏进同一条对话链路。用户不再需要先想清楚所有结构化筛选条件而是可以直接说“我想在南山找一个总价六百万以内、三居室、最好能走路到地铁的房子”。系统用大模型把这句话解析成结构化查询找到候选房源后再借助多模态模型去读照片里的装修状态、采光环境和功能分区最后把月供、税费、物业费聚合在一起告诉用户这套房每月大概要花多少钱。这里真正值得注意的不是单个 AI 能力有多强而是工作流的组织方式变了。传统搜索产品假设用户知道自己的需求并且能用筛选器表达出来而 AI 找房产品假设用户的需求是模糊的、带口语的、需要在浏览过程中不断修正的。后者的产品逻辑更接近真实购房者的心智状态。什么样的读者最应该关注这个方向如果你正在做 AI Agent 类的垂直应用这个项目是一个很好的调研样本如果你是房产数据服务或经纪人后台的开发者你也能从中看到如何用多模态模型减少人力录入成本如果你只是对这个领域好奇想用现有 API 做一个玩具原型后面第 5 节的内容可以直接照着跑。2. 传统找房流程的痛点和新方案到底改变了什么要理解新方案的改进点必须先把它解决的两类痛点点名。第一类是搜索表达成本高。房地产搜索的条件非常多总价、首付、月供、面积、卧室数量、楼龄、楼层、朝向、学区、通勤时间、周边配套。但大多数 App 的筛选器只支持价格和户型这类硬性条件用户很难在筛选器里表达“通勤四十分钟内”“不要顶层”“希望有南向阳台”这种语义信息。就算用户说了系统也未必能把这些语言描述转成结构化查询。传统技术做自然语言搜索往往要靠规则匹配关键词遇到“三房”“三居”“三室”这种同一含义的不同说法词表维护成本非常高。第二类是信息验证成本高。房源价格可以结构化但房子本身的质量很难结构化。同一套房不同用户对“值不值”的感知可能完全不同因为用户需要用自己的生活经验去解读照片客厅的灯是不是偏暗、卫生间的墙面有没有受潮、阳台能不能放洗衣机。这些信息在传统列表里都只是“图片”和“标签”需要人脑去处理。即使平台标注了“精装”“拎包入住”用户也无法确定这些标签的可信度。过去解决这两类痛点的方案是堆人力。经纪人录入房源时把特征打标运营人员维护搜索配置购房者自己去现场看房后才知道真实情况。这套流程成本高、速度慢、覆盖不到长尾房源。AI 方案带来的改变是在三个环节上同时降本。第一对话式搜索允许用户用自然语言发起需求LLM 负责把口语映射成结构化参数平台不需要维护所有同义表达。第二多模态大模型可以直接对图片输出结构化判断虽然不能代替实地看房但至少能在一百套房子里先筛出二十套不值得跑一趟的。第三成本计算模块把“每月要花多少钱”这件事变成一个自动化的动态计算用户不需要自己拿着贷款计算器反复估算。但千万不要把这三个能力想象成“大模型一次对话全都搞定”。在我看到的同类项目里最容易出问题的反而是幻觉和边界不清。比如模型信誓旦旦告诉你“这套房离地铁五百米”但实际数据源里根本没有这个字段这是模型根据照片和位置经验推断的不一定可靠。真正靠谱的架构应该是把确定性计算和概率性理解分开总价、利率、税费走确定性计算图片质量、装修风格、需求匹配走模型理解。两条链路的结果拼在一起才是用户看到的答案。3. 三个关键词背后的核心概念3.1 对话式搜索的本质是意图结构化标题里的 chats表面上是一个输入框和聊天窗口本质上却是一个自然语言到结构化查询的转换器。它和常见的“问答机器人”是两个完全不同的东西。问答机器人只需要在已有知识库中检索答案回答完就结束。而找房对话必须完成一个闭环理解用户需求、生成结构化条件、调用房屋数据、返回候选结果、再根据结果进行多轮澄清。比如用户说“预算可以提高一点”系统要能理解这是对上一轮总价上限的修正而不是重新开一个话题。这里最常用的技术方案是 LLM Function Calling。模型不会直接去查数据库而是输出一组结构化的函数参数。例如用户说“我想在深圳南山找总价六百万以内、三居室的房子”模型会输出一个类似search_listings(city深圳, district南山, max_price6000000, min_bedrooms3)的函数调用参数。系统拿着这个参数去执行真实的 SQL 查询或 ES 查询把结果返回给模型模型再组织成用户能读懂的回复。这套机制的好处是大模型只负责“理解”和“表达”不负责“记忆”和“事实输出”。真正的房源数据始终在受控的数据库里模型没有机会在关键数字上自由发挥。如果某个项目直接用闭卷问答的方式让模型回答“还有哪些房源”你就要警惕它是不是在编造房源。多轮对话中还需要额外的记忆管理。用户可能会说“第二套的厨房能重新拍几张图吗”这时系统要能记住上一轮返回的候选列表而不是重新执行一遍搜索。轻量方案是把会话状态放到 Redis 或内存里记录候选列表 ID复杂方案是引入更完整的 Agent 状态管理但前提是数据链路可靠否则 Agent 越灵活出错越隐蔽。3.2 读照片不是简单的通用视觉识别标题里的 reads the photos听起来像是“模型能识别照片里有床、有沙发”但实际产品需要的能力比这细得多。我理解这层能力的目标是把“人看图时的经验判断”尽量自动化输出一套有业务含义的结构化字段。比如一套房的客厅照片系统应该能判断出房间类型是客厅、装修状态评分、是否带家具、采光等级、有没有老化的墙面、有没有明显的安全隐患、整体风格更接近现代还是旧式装修。这些字段不需要写到非常细但它们必须稳定、可计算、可用作后续排序。要达到这个目标直接调用一个通用的图片描述模型通常不够。通用模型会说“这是一个明亮的客厅有一张灰色沙发和木地板”但不会主动给你输出“condition_score78”这样的数值。你需要通过提示词约束模型输出 JSON并规定字段取值范围。更稳健的做法是把输出结果做一层 schema 校验超出范围的值要么丢弃、要么让模型重新生成。另外一个很容易忽略的点是输出不能只给单一标签。房子照片往往包含大量信息对于一个潜在买家来说“这套房可能不需要立刻翻新”和“厨房水槽下方疑似漏水”这两类信息价值完全不同。因此图片理解模块的输出应当分为描述字段和风险字段。描述字段用于排序和筛选比如装修状态、采光、是否带家具风险字段用于提示比如墙面开裂、疑似漏水、潮湿发霉。风险字段甚至可以单独展示在详情页让用户决定要不要为此跑一趟。实际工程中视频和实景照片也应该属于这个模块的范围。一张照片的信息密度远不及一个短视频而短视频的逐帧分析又很消耗算力。常见做法是抽帧每隔两秒抽一帧送模型分析最后把多帧结论做聚合。如果项目预算有限最快跑通的方式是先处理关键照片只输出房间类型、采光和装修评分等业务稳定后再扩展。3.3 estimated monthly costs是最容易被低估的模块很多人会被“聊天”和“读照片”吸引但我觉得最值得仔细研究的是最后那个月成本估算。为什么因为它是决定用户是否能“认真考虑一套房”的关键指标。过去用户看房价看到的只是总价。但真正影响决策的是每月要付出多少钱。一套六百万的房子如果首付三成、贷款三十年、利率 4.5%和首付五成、贷款二十年、利率 5.2%每月还款压力完全不同。如果再叠加不同城市的税率、物业费、保险政策数字差异会非常大。用户在一个列表页里切换房源时很难对每套房都手动做一次这个计算于是经常出现“总价看起来差不多但实际月供差很多”的情况。成本估算模块的技术难点不在于用公式计算而在于拿到正确的输入参数。每月成本的基本公式并不复杂月供 本金 * 月利率 * (1 月利率)^期数 / ((1 月利率)^期数 - 1) 月成本 月供 每月税费 物业费 保险费 其他持有的固定支出真正的难度在参数配置。不同国家和城市的税费规则差异极大美国很多州有 1% 到 2% 的年度房产税中国部分城市目前没有同口径的持有型房产税但有不同的维修基金和物业管理规则。一个把税率写死在代码里的系统搬到另一个城市就会算错。所以成本估算模块必须设计成“区域参数化”把税率、物业费标准、保险规则做成可配置数据而不是写在函数里。这个模块还有一层产品逻辑它是给用户做初步筛选的不是给银行做贷款审批的。银行会看收入流水、征信、评估价而产品只能根据公开价格和默认参数做估算。因此界面上一定要把“估算值”和“假设条件”同时展示。用户看到一个两万三的月供也要能看到它默认了首付三成、利率 4.5%、贷款三十年。否则用户拿这个估算去和真实银行报价对比时一旦出现差异会产生信任危机。4. 这类产品可以参考的系统架构这个 Show HN 项目没有公开源码所以
