首批通过分布式安全可靠测评,为关键业务系统打造
在 DB-GPT 中使用 OceanBase 向量数据库进行知识库问答
更新时间:2026-04-09 14:12:04
概述
DB-GPT 是一个开源的 AI 数据库助手,支持使用 OceanBase 作为向量数据库进行知识库问答。 本文将介绍 DB-GPT 通过 OceanBase 的向量搜索能力存储和检索文档向量,结合通义千问等大语言模型,为用户提供准确的问答服务。
版本兼容性
- OceanBase 数据库:≥ V4.3.3
- DB-GPT:v0.7.x 及以上版本
前提条件
在使用 DB-GPT 与 OceanBase 集成之前,确认:
- 您已完成部署 OceanBase 数据库并且创建了 MySQL 模式用户租户。创建用户租户的详细信息,参见 创建租户 。
- 确保您已经在租户中设置了 ob_vector_memory_limit_percentage 配置项,以启用向量搜索功能。V4.3.5 BP3 之前的版本推荐设置值为 30,从 V4.3.5 BP3 版本开始推荐保持默认值 0。如需更精确设置此配置项,请参考 [ob_vector_memory_limit_percentage]。(../../700.reference/800.configuration-items-and-system-variables/100.system-configuration-items/400.tenant-level-configuration-items/6150.ob_vector_memory_limit_percentage.md) 计算此值。
- 已完成 Docker 部署,Docker 服务正在运行,且当前用户具备执行 docker 命令的权限(可通过 docker info 验证)。
- 已获取通义千问(Qwen)API Key(从 阿里云百炼平台 获取)。
- 根据所用的操作系统,安装 Git。
步骤一:获取数据库连接串
你可以使用以下命令快速部署一个独立的 OceanBase 数据库进行测试:
docker run --name=ob433 -e MODE=slim -p 2881:2881 -e OB_TENANT_PASSWORD=****** -d quay.io/oceanbase/oceanbase-ce:latest
等待容器初始化完成(约 2-3 分钟),可通过以下命令检查状态,如果返回 boot success!,则表示启动成功。
docker logs ob433 | tail -1
数据库连接串如下:
mysql -h 127.0.0.1 -uroot@test -P2881 -p********* -Dtest
步骤二:安装 DB-GPT
本篇以源码部署 DB-GPT 为例,更多部署方式参见 DB-GPT 官网。
- 下载源码
git clone https://github.com/eosphoros-ai/DB-GPT.git
cd DB-GPT
- 安装 uv 包管理器
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
# 验证安装,执行以下命令会有类似输出:uv 0.10.2
uv --version
- 安装基础依赖
以通义千问为例,操作如下:
uv sync --all-packages \
--extra "base" \
--extra "proxy_tongyi" \
--extra "rag" \
--extra "storage_chromadb" \
--extra "dbgpts"
- 安装 OceanBase 合作伙伴软件包
uv pip install pyobvector
- 连接 OceanBase 并设置向量数据的内存使用比例参数(可选)
source .venv/bin/activate
python3
from pyobvector import ObVecClient
client = ObVecClient(uri="127.0.0.1:2881", user="root@test",password="",db_name="test")
client.perform_raw_text_sql(
"ALTER SYSTEM ob_vector_memory_limit_percentage = 30"
)
步骤三:配置 DB-GPT 使用 OceanBase 数据库
基础依赖下载完成后,通过修改 TOML 配置切换到 OceanBase 。
配置 TOML 文件
在 DB-GPT v0.7.x 版本及以上,推荐使用 TOML 配置文件。编辑 configs/dbgpt-proxy-tongyi.toml,操作如下:
[system]
# Load language from environment variable(It is set by the hook)
language = "${env:DBGPT_LANG:-en}"
api_keys = []
encrypt_key = "your_secret_key"
# Server Configurations
[service.web]
host = "0.0.0.0"
port = 5670
[service.web.database]
type = "sqlite"
path = "pilot/meta_data/dbgpt.db"
# Vector Store Configuration - 使用 OceanBase
[rag.storage]
[rag.storage.vector]
type = "OceanBase"
ob_host = "127.0.0.1"
ob_port = 2881
ob_user = "root@test"
ob_database = "test"
ob_password = ""
# ob_enable_normalize_vector = true
# Model Configurations
[models]
# 通义千问 LLM 模型
[[models.llms]]
name = "qwen-plus"
provider = "${env:LLM_MODEL_PROVIDER:-proxy/tongyi}"
api_base = "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key = "${env:DASHSCOPE_API_KEY}"
# 通义千问 Embedding 模型
[[models.embeddings]]
name = "text-embedding-v3"
provider = "${env:EMBEDDING_MODEL_PROVIDER:-proxy/tongyi}"
api_url = "https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings"
api_key = "${env:DASHSCOPE_API_KEY}"
参数说明:
$ob_host:OceanBase 数据库连接 IP。$ob_port:OceanBase 数据库连接端口。$ob_user:OceanBase 数据库用户名。$ob_password:OceanBase 数据库用户密码。$ob_database:OceanBase 的数据库名称。
步骤四:启动 DB-GPT
先设置 DashScope API Key 环境变量,然后启动:
# 设置通义千问 API Key
export DASHSCOPE_API_KEY="your-dashscope-api-key"
# 启动 DB-GPT
uv run dbgpt start webserver --config configs/dbgpt-proxy-tongyi.toml
启动成功后,访问 http://localhost:5670 进入 DB-GPT Web 界面。
步骤五:使用知识库问答
- 打开浏览器访问 http://localhost:5670 。
- 进入 Knowledge 页面,点击 Create Knowledge 进入知识库创建。
- 填写 Space Config ,点击Next。
- 选择 Datasource type ,点击Next。
- 进入 Upload ,上传文件。点击Next。
- 进入 Segmentation ,选择文档切片方式。
- 文档切分完成并向量化存储到 OceanBase 向量数据库中。
- 在 Explore 选择该知识空间进行问答。