在 DB-GPT 中使用 GenStudio 模型服务
DB-GPT 是一个开源的 AI 原生数据应用开发框架。通过多种技术能力,构建大模型领域的基础设施。
本教程将以开发机为例,介绍如何在 DB-GPT 中使用 GenStudio 的模型服务,以及如何通过 DB-GPT Python SDK 使用 GenStudio 的模型。
准备工作
创建实验环境
点击下方链接,直接访问智算云控制台的创建开发机页面。
请根据页面提示,完成开发机的相应配置。
在选择镜像时,推荐基础镜像,如 ubuntu:22.04-20240429
。同时,在 Web 应用预览中填写端口 5670
。
获取 GenStudio API Key
点击下方按钮获取 API Key,可选择复制已有或创建新的密钥:
预置模型 API 服务有 API 频率限制。企业级用户如使用预置模型,可联系无问芯穹调整限额。
部署 DB-GPT
登录开发机后,按以下步骤完成 DB-GPT 的部署。
拉取 DB-GPT 仓库。
bashgit clone https://github.com/eosphoros-ai/DB-GPT.git
安装 uv。
bashcd DB-GPT pip install uv
安装 DB-GPT 依赖包。
bashuv sync --all-packages \ --extra "base" \ --extra "proxy_openai" \ --extra "rag" \ --extra "storage_chromadb" \ --extra "dbgpts"
配置基础的环境变量。
bashexport INFINIAI_API_KEY="your-genstudio-api-key"
注意
请将
your-genstudio-api-key
替换为获取的 GenStudio 的 API Key。启动 DB-GPT 服务。
bashuv run dbgpt start webserver --config configs/dbgpt-proxy-infiniai.toml
进入开发机详情页,点击 Web 应用预览,即可跳转访问部署的 DB-GPT。
添加更多 GenStudio 模型
编辑配置文件 configs/dbgpt-proxy-infniai.toml,在 [models] 下添加所需模型:
添加对话模型:
toml[[models.llms]] name = "qwen3-235b-a22b" provider = "proxy/infiniai" api_key = "${env:INFINIAI_API_KEY}"
添加 Embedding 模型:
toml[[models.embeddings]] name = "jina-embeddings-v2-base-zh" provider = "proxy/infiniai" api_key = "${env:INFINIAI_API_KEY}"
添加 Rerank 模型:
toml[[models.reranks]] name = "bge-reranker-v2-m3" provider = "proxy/infiniai" api_key = "${env:INFINIAI_API_KEY}"
更多语言模型、 Embedding 模型和 Rerank 模型详见:
通过 DB-GPT Python SDK 使用 GenStudio 的模型
除去部署 DB-GPT 服务,您还可以通过 DB-GPT Python SDK 使用 GenStudio 的模型。
安装依赖
bashpip install dbgpt openai requests numpy
配置环境变量。
bashexport INFINIAI_API_KEY="your-genstudio-api-key"
注意
请将
your-genstudio-api-key
替换为获取的 GenStudio 的 API Key。
使用 GenStudio 的大语言模型
import asyncio, os
from dbgpt.core import ModelRequest
from dbgpt.model.proxy import InfiniAILLMClient
model = "deepseek-v3"
client = InfiniAILLMClient(
api_key=os.getenv("INFINIAI_API_KEY"),
model_alias=model,
)
res = asyncio.run(
client.generate(
ModelRequest(
model=model,
messages=[
{"role": "system", "content": "你是一个乐于助人的 AI 助手。"},
{"role": "human", "content": "你好,你是谁?"},
]
)
)
)
print(res)
使用 GenStudio 的 Embedding 模型
import os
from dbgpt.rag.embedding import OpenAPIEmbeddings
openai_embeddings = OpenAPIEmbeddings(
api_url="https://cloud.infini-ai.com/maas/v1/embeddings",
api_key=os.getenv("INFINIAI_API_KEY"),
model_name="bge-m3",
)
texts = ["Hello, world!", "How are you?"]
res = openai_embeddings.embed_documents(texts)
print(res)
使用 GenStudio 的 rerank 模型
import os
from dbgpt.rag.embedding import InfiniAIRerankEmbeddings
embedding = InfiniAIRerankEmbeddings(
api_key=os.getenv("INFINIAI_API_KEY"),
model_name="bge-reranker-v2-m3",
)
res = embedding.predict("Apple", candidates=["苹果", "香蕉", "水果", "蔬菜"])
print(res)
上手指南
数据对话能力是通过自然语言与数据进行对话,目前主要是结构化与半结构化数据的对话,可以辅助做数据分析与洞察。以下为具体操作流程:
添加数据源
在左侧栏添加数据源,根据实际需求选择相应的数据库类型并完成添加。
这里我们以 MySQL 为例,演示的测试数据参见:测试样例。
开始数据对话
选择 ChatData 对话类型。