📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。
​
​

图像搜索示例



本示例展示了如何结合 TiDB 向量搜索能力与多模态嵌入模型来构建图像搜索应用。

只需几行代码,你就可以创建一个同时理解文本和图像的搜索系统。

  • 文搜图:使用自然语言描述你想要的内容来查找宠物照片,例如“毛茸茸的橘猫”
  • 图搜图:上传一张照片,根据品种、颜色、姿态等查找视觉上相似的宠物

PyTiDB Image Search Demo

通过多模态嵌入进行宠物图像搜索

前提条件

开始之前,请确保你具备以下条件:

  • Python (>=3.10):安装 Python 3.10 或以上版本。
  • 一个 TiDB Cloud Starter 实例:你可以在 TiDB Cloud 上创建一个免费的 TiDB Cloud Starter 实例。
  • Jina AI API key:你可以从 Jina AI Embeddings 获取一个免费的 API key。

运行方式

第 1 步:克隆 pytidb 仓库

pytidb 是 TiDB 的官方 Python SDK,旨在帮助开发者高效构建 AI 应用。

git clone https://github.com/pingcap/pytidb.git cd pytidb/examples/image_search/

第 2 步:安装所需软件包

python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r reqs.txt

第 3 步:设置环境变量

  1. 在 TiDB Cloud 控制台 中,进入 My TiDB 页面,然后点击目标 TiDB Cloud Starter 实例的名称,进入其实例概览页面。
  2. 点击右上角的 Connect。此时会显示连接对话框,其中列出了连接参数。
  3. 根据连接参数按如下方式设置环境变量:
cat > .env <<EOF TIDB_HOST={gateway-region}.prod.aws.tidbcloud.com TIDB_PORT=4000 TIDB_USERNAME={prefix}.root TIDB_PASSWORD={password} TIDB_DATABASE=test JINA_AI_API_KEY={your-jina-ai-api-key} EOF

第 4 步:下载并解压数据集

本演示使用 Oxford Pets dataset 将宠物图像加载到数据库中以供搜索。

适用于 Linux/MacOS:

# Download the dataset curl -L -o oxford_pets.tar.gz "https://thor.robots.ox.ac.uk/~vgg/data/pets/images.tar.gz" # Extract the dataset mkdir -p oxford_pets tar -xzf oxford_pets.tar.gz -C oxford_pets

第 5 步:运行应用

streamlit run app.py

打开浏览器并访问 http://localhost:8501。

第 6 步:加载数据

在示例应用中,你可以点击 Load Sample Data 按钮,将一些示例数据加载到数据库中。

如果你想加载 Oxford Pets dataset 中的全部数据,请点击 Load All Data 按钮。

  1. 在侧边栏中选择 Search type。
  2. 输入你要查找的宠物的文本描述,或者上传一张狗或猫的照片。
  3. 点击 Search 按钮。

文档内容是否有帮助?