首批通过分布式安全可靠测评,为关键业务系统打造
基于 OceanBase 构建图搜图应用
更新时间:2026-07-02 14:38:35
通过 OceanBase 的向量检索技术构建您的图搜图应用。
说明
本篇教程也同步在 OB Cloud 控制台上线了交互式教程,可以跟随教程在真实的 OB Cloud 环境中进行互动体验,登录 OB Cloud 控制台 后,单击左侧导航栏的 实践教程 即可查看全部已上线的交互式教程。
概念介绍
- 图搜图:图像检索任务是指在大规模图像数据库中搜索出与指定图像最相似的结果,在检索时使用到的图像特征可以存储在向量数据库中,通过高性能的索引存储实现高效的相似度计算,进而返回和检索内容相匹配的图像结果,如人脸识别等。
架构
图搜图应用是把图片库以向量形式,存储在数据库内,用户在对应的 UI 界面,上传需要查询的图片,图片会被应用转换为向量,在数据库内查询相似向量并返回结果,最终以图片形式在 UI 页面上展示相似图片。

前提条件
您的环境中有可用的事务型(MySQL)集群实例。请参考创建租户完成租户创建后,再参考下述步骤操作。
您的环境中已存在可以使用的 MySQL 兼容模式租户和 MySQL 数据库和账号,并已对对数据库账号授读写权限。如需创建,详情参见创建账号和创建数据库(仅 MySQL)。
您拥有项目管理员或实例管理员可对项目中的实例进行读写操作的权限,如无权限,可联系组织管理员添加权限。
安装 Python 3.9 及以上版本。
安装 Poetry:
python3 -m ensurepip python3 -m pip install poetry确保您已经在实例工作台中设置了
ob_vector_memory_limit_percentage参数,以启用向量检索功能。推荐设置值为30,如需更精确设置此参数,请参考 ob_vector_memory_limit_percentage 计算此值。
步骤一:获取数据库连接信息
在下拉框中,根据 ID 选择您的集群实例。
进入 实例工作台 页面。
单击连接,选择 获取连接串。
在弹出框中选择 使用公共网络。
获取访问地址,选择 添加当前浏览器IP地址。
填写数据库相关信息,复制连接串。
步骤二:构建您的图搜图应用
克隆代码仓库
git clone https://gitee.com/oceanbase-devhub/image-search.git
cd image-search
安装依赖
poetry install
设置环境变量
cp .env.example .env
# 更新 .env 文件中的数据库信息,包含 DB_HOST、DB_PORT、DB_USER、DB_NAME、DB_PASSWORD 字段
vi .env
启动 UI 搜索界面
poetry run streamlit run --server.runOnSave false image_search_ui.py
预期返回结果如下:
Collecting usage statistics. To deactivate, set browser.gatherUsageStats to false.
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://xxx.xxx.xxx.xxx:8501
External URL: http://xxx.xxx.xxx.xxx:8501 # 可以通过打开该链接访问图搜图应用
应用展示
您需要自己准备一些图片放在一个文件夹中,并在打开的 UI 中更新 图片加载配置,注意 图片加载目录 需要填写服务器上图片所存放目录的绝对路径。
如果您没有足够的图片用于测试效果,可参考各大开源网站的图片数据集。

在线 Demo 体验
除自己构建图搜图应用外,您还可以访问萌兽搜搜登录体验在线 Demo 应用,Demo 界面的官网入口为资源与服务-学习-在线体验-在线 Demo。以下为界面展示:
