惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
小众软件
小众软件
F
Fortinet All Blogs
爱范儿
爱范儿
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
C
Check Point Blog
博客园 - 聂微东
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
About on SuperTechFans
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog
宝玉的分享
宝玉的分享
Jina AI
Jina AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理,
都2026了,我们离低成本搭个本地多模态知识库还有多远?
卡尔的AI沃茨 · 2025-12-25 · via 人人都是产品经理

当文旅信息散落在各处,出行前的准备变成一场信息灾难。本文记录作者如何借助 OceanBase SeekDB 的多模态混合检索能力,用一张表统一处理向量、文本、GIS 与结构化数据,快速构建一个能理解“模糊需求”的智能文旅助手,并揭示 AI 时代应用开发的新范式:五分钟,人人可造轮子。

12月1号,杭州灵隐寺免费那天我去了,结果去了才知道要预约,现场可以临时加名额但是要身份证,电子的都不行。

后面去的财神庙,结果抽签没赶上,抹黑下山。

我很好奇大家都是从哪获取这些最新消息的,小某书搜索后点最新看看避雷贴?直接查公众号?但更多时候直接搜是搜不出来的,要到对应的文旅账号翻半天。

所以我想做一个文旅助手,把真实景区文字描述、地理位置,开放时间,游玩的季节建议和门票等信息丢进去。

这样我跟朋友们出行的时候就可以不用单独拉个群了,提前一周丢了一大堆某书,然后出发当天所有人跟失忆一样,又开始问又重新搜无限循环。(硬生生把我一个J人被逼成P人了)

OK,我脑子里过了一遍技术方案,头有点大。

首先,图片识别得用一套向量数据库。景点的文字介绍,这些是非结构化文本,得用全文检索。然后,地理位置信息得有专门的空间数据库来处理。最后,门票价格、开放时间这些,又是传统的关系型数据库的活。

要把这四五套系统捏合在一起的话,查询逻辑就得好几步,拿图片去向量库里比对,拿到ID,再去文本库搜描述,最后再用业务数据库里的价格和时间做过滤。

性能方面我包它是拉的。

遇事不决先看Github,说不定世界的某一处已经有大神跟我的想法一样,我就不需要重复造轮子了,然后发现了Langchain(老牌Agent构建框架)跟一个叫OceanBase seekdb的数据库合作了。

langchain-course-oceanbase.netlify.app

看了眼使用指南后,seekdb竟然支持在一张表里,同时存储和索引向量、文本、JSON、GIS这些乱七八糟的数据。而大多数其他数据库要么只擅长关系型事务,要么只擅长向量,要么只擅长全文,混合能力通常需要多系统拼装。

LangChain解决的是把一个 AI 应用搭出来,有对话流程、工具调用、记忆、评估等,但它需要数据库来解决检索到底要落在哪个后端,怎么做混合过滤,怎么控制延迟和成本。

我这个文旅助手是RAG最难的检索,图片要相似(向量),描述要命中(全文),位置要限定(GIS),价格时间要过滤(结构化)。如果后端是多套系统拼起来,LangChain只能把这些步骤串成一条链,跑是能跑,但很长很慢,很容易报错。

seekdb负责把检索+过滤+排序三板斧在底层一次性做完,中间少很多胶水代码,也少很多不确定性。它把所有数据类型都拉到了同一个维度上。

我可以像跟人说话一样,用一条SQL指令告诉它:河南安阳的距离市中心50公里以内的,80分以上,适合春季旅行的人文景点

数据库自己会在底层把图片相似度、文本相关性、GIS空间关系和价格这些硬性指标一次性算好,然后直接把最精准的结果吐给我。

这里我想稍微解释一下混合搜索到底是在混什么:

我这条需求里其实有四类信号,这张照片“像不像”另一个景点(图像),描述里有没有幽静古朴这类硬条件(全文检索+倒排),只要我周围 5 公里(GIS 距离+范围查询),票价<50、开放时间符合(关系型过滤)。

难的是把这些信号合并成一次可控的检索执行:

我还是用旅游类比一下,我要在一堆目的地里选一个最适合跨年的。

常规做法是先捞一小撮候选,向量召回是按你想要的感觉找相似目的地,比如氛围感,雪景,夜景,烟花,全文召回是按你搜的词再捞一批,比如直飞,温泉,跨年烟花,免签,地理范围再选一次,比如 飞行不超过6小时。

这时候你会先拿到一个候选清单TopK,还没结束,要给每个候选算分,再加权合成总分排出优先级(重排Rerank)。再加硬条件过滤:预算、请假天数、出发时间、是否直飞,最后才是按总分排序选出我心仪的。

我看文字就呼吸不过来了,肉眼可见的慢。

seekdb就是在同一条流水线里把语义找相似+关键词匹配+距离计算+预算时间过滤一次性算完,少了跨系统搬运和多次回表速度也就上来了。

最低1核CPU、2GB内存就能跑起来。在现在人均模型起手就要24GB的节点,我都有点不适应了。seekdb还能当MCP Server用,直接接入Cursor,Trae啥的。

还跟Dify打通了,可以直接做Dify的知识库。

那我就把这两天折腾的过程复盘一下。

第一步,部署

非常简单,电脑有Docker环境,直接一行命令搞定了。

docker run -d –name seekdb -p 2881:2881 oceanbase/seekdb:latest

如果习惯用Python,那更简单,pip install pyseekdb就行了。

接下来就是构建我想要的文旅小助手,我需要一个大模型的API key,把文本转成向量和后续问答。还需要一个地图服务的API key,用来处理地理位置,这里我用的是千问和高德。

数据集我用的是Kaggle上一个公开的352个中国城市景点数据。

准备就绪后,就是三件套,克隆项目代码,安装依赖,把申请的API密钥和本地数据库的连接信息填进去。(这命令这八步是真压缩到没得再压了,直接看也行)

www.oceanbase.ai/docs/zh-CN/build-multi-model-application-based-on-oceanbase/

#1. 克隆项目

git clone https://github.com/oceanbase-devhub/ob-multi-model-search-demo.gitcd ob-multi-model-search-demo

#2. 将kaggle上数据集解压到项目目录

mv ./archive.zip ./citydata.zipunzip ./citydata.zip

#3. 安装依赖

poetry install

#4. 设置环境变量

vim .env

## 数据库连接串中的主机地址

OB_URL=”******”

OB_USER=”******”

OB_DB_NAME=”******”

## 数据库连接串中的密码

OB_PWD=”******”

#5. 大模型 API Key

DASHSCOPE_API_KEY=”******”

#6. 高德地图 API Key

AMAP_API_KEY=”******”

#7. 自动导入数据

python ./obmms/data/attraction_data_preprocessor.py

#8. 最后一步就是启动UI界面

poetry run streamlit run ./ui.py

当浏览器里弹出那个简洁的对话框时,我感觉这几天的折腾都值了。

它能够理解我问题里那种模糊的的描述,然后通过向量搜索找到语义上相似的景点,再结合地理位置和一些我预设的偏好进行过滤。

这在一年多以前,是很难想象的。

有了多模态知识库和混合搜索,工程师拍下故障机器的照片,用语音描述刺耳的异响,系统就能瞬间从海量的维修手册,历史工单和实时传感器数据里,找出最可能的解决方案。

你也可以上传在街上看到的衣服照片,然后说,我想要类似风格,但材质是纯棉的,价格在三百块以内的。系统不再是简单推荐一堆长得像的图片,而是真正理解了你所有维度的需求。

到现在我还是有种想当然的荒谬的感觉,作为程序员,这些环节我已经习惯性分开处理了,但忘掉脑子凭直觉去想,多模态的数据不就是应该放在一个数据库里面吗?

很合理吧!

目前模型的前端都可以vibe出那么多效果了,再把数据库打通,我真的要说那句话了,AI时代,每个人都可以用五分钟做个自己的应用,到时候AI人奇妙夜是不是可以办起来了。

作者 / 还在琢磨知识库的卡尔儿

本文由人人都是产品经理作者【卡尔】,微信公众号:【卡尔的AI沃茨】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。