DB-GPT 接入阿里云 Qwen(通义千问)模型:DashScope API 代理配置完整实战指南
【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI + Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT
本篇技术指南讲解如何在 DB-GPT 中通过 DashScope API 接入阿里云通义千问(Qwen)系列大模型与 Embedding 模型。文章以仓库自带的 dbgpt-proxy-tongyi.toml 配置模板为主线,完整覆盖依赖安装、模型接入配置、可用模型清单、服务启动与常见问题排查,并深入到 TongyiLLMClient 与 TongYiEmbeddings 的源码实现,帮助你理解配置项背后的实际调用链路。读完本文,你将能够在自己的环境中一键启动一个使用 qwen-plus 作为对话模型、text-embedding-v3 作为知识库向量模型的 DB-GPT 服务。
前置条件
在开始配置前,需要确认两个前提:
- DashScope API Key:前往阿里云百炼(DashScope)控制台申请 API Key,并确保该 Key 已开通(activated)且对应的模型服务处于可用状态。
- 已安装 DB-GPT 且包含
proxy_openai扩展:因为通义千问的接入走的是 OpenAI 兼容模式接口(DashScope Compatible Mode),DB-GPT 底层使用 OpenAI 兼容的 HTTP 客户端与 DashScope 通信。从源码看,TongyiLLMClient 直接继承自OpenAILLMClient,因此proxy_openai相关依赖是必需的。
安装依赖
使用uv同步 DB-GPT 项目依赖,并显式指定运行代理模型、RAG 知识库和插件市场所需的 extras:
uv sync --all-packages \ --extra "base" \ --extra "proxy_openai" \ --extra "rag" \ --extra "storage_chromadb" \ --extra "dbgpts"说明:
proxy_openai:提供 OpenAI 兼容的代理模型客户端,是连接 DashScope 兼容模式的依赖基础;rag:启用知识库(RAG)能力,配合text-embedding-v3完成文档向量化;storage_chromadb:使用 Chroma 作为向量存储后端(与默认配置文件中[rag.storage.vector]的type = "chroma"对应);dbgpts:启用 DB-GPT 的插件/技能(dbgpts)市场。
如果你的环境不是通过uv管理的,也可以按项目常规方式pip install安装相应 extras,原理相同。
配置接入:编辑 dbgpt-proxy-tongyi.toml
DB-GPT 仓库在 configs/dbgpt-proxy-tongyi.toml 提供了通义千问的完整配置模板。最小化的模型接入配置如下:
[models] [[models.llms]] name = "qwen-plus" provider = "proxy/tongyi" api_base = "https://dashscope.aliyuncs.com/compatible-mode/v1" api_key = "${env:DASHSCOPE_API_KEY}" [[models.embeddings]] name = "text-embedding-v3" provider = "proxy/tongyi" api_url = "https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings" api_key = "${env:DASHSCOPE_API_KEY}"各字段含义与要点:
| 字段 | 值 | 说明 |
|---|---|---|
[[models.llms]] | — | 声明一个 LLM 模型条目(TOML 数组元素) |
name | qwen-plus | DB-GPT 中使用的模型名,也是 UI 中展示的名称 |
provider | proxy/tongyi | 供应商标识。DB-GPT 通过该标识在模型适配器注册表中找到通义适配器(见下文"实现原理") |
api_base | https://dashscope.aliyuncs.com/compatible-mode/v1 | DashScope OpenAI 兼容模式的 Base URL,所有 Chat 请求基于此地址 |
api_key | ${env:DASHSCOPE_API_KEY} | API Key,使用${env:VAR}插值语法从环境变量读取,避免密钥写入配置文件 |
[[models.embeddings]] | — | 声明一个 Embedding 模型条目 |
api_url | https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings | 向量化接口的完整 URL(注意与 LLM 的api_base字段名不同) |
安全提示:强烈建议通过环境变量注入密钥。在 shell 中执行:
export DASHSCOPE_API_KEY="your-dashscope-api-key"配置文件中
${env:DASHSCOPE_API_KEY}会被 DB-GPT 启动时自动替换为环境变量值。
仓库自带的模板文件还包含大量服务级配置,虽然模型接入只需要上面的最小片段,但了解完整模板有助于理解运行环境。核心部分如下:
[system] language = "${env:DBGPT_LANG:-en}" api_keys = [] encrypt_key = "your_secret_key" [service.web] host = "0.0.0.0" port = 5670 cors_allowed_origins = "${env:DBGPT_CORS_ALLOWED_ORIGINS:-*}" [service.web.agent_context] max_context_tokens = 0 reserved_tokens = 4096 warning_threshold = 0.70 error_threshold = 0.90 critical_threshold = 0.95 min_keep_recent_rounds = 3 max_observation_age_rounds = 5 truncated_observation_max_chars = 200 min_keep_tokens = 10000 max_compact_failures = 3 max_parallel_subagents = 3 [service.web.database] type = "sqlite" path = "pilot/meta_data/dbgpt.db" [rag.storage] [rag.storage.vector] type = "chroma" persist_path = "pilot/data"这些配置的作用:
[service.web]:Web 服务监听0.0.0.0:5670,即 DB-GPT 默认端口;cors_allowed_origins默认放开所有来源;[service.web.agent_context]:智能体上下文窗口预算管理。max_context_tokens = 0表示由所选模型的元数据自动探测上下文长度;reserved_tokens预留给输出的 token 数;warning_threshold/error_threshold/critical_threshold定义了上下文使用率的告警水位;max_parallel_subagents控制并行子智能体数量;[service.web.database]:应用元数据存储在 SQLite(pilot/meta_data/dbgpt.db);[rag.storage.vector]:RAG 向量库使用 Chroma,数据持久化在pilot/data目录。
可用模型清单
LLM 模型
| 模型 | 配置名(name) | 特点 |
|---|---|---|
| Qwen-Max | qwen-max | 旗舰模型,质量最好 |
| Qwen-Plus | qwen-plus | 性能与成本均衡(默认配置即此模型) |
| Qwen-Turbo | qwen-turbo | 响应最快、成本最低 |
| Qwen-Long | qwen-long | 超长上下文窗口 |
需要说明的是,DB-GPT 适配器源码中内置的模型元数据以qwen-max系列为主(详见下文源码解析),qwen-plus/qwen-turbo/qwen-long等型号同样通过 DashScope 兼容接口访问,可以直接填写为name使用。
Embedding 模型
| 模型 | 配置名(name) | 特点 |
|---|---|---|
| text-embedding-v3 | text-embedding-v3 | 推荐使用,支持 50+ 工作语言 |
| text-embedding-v2 | text-embedding-v2 | 上一代模型 |
从源码注册信息看,text-embedding-v3的向量维度为 1024,上下文长度为 8192(见 packages/dbgpt-ext/src/dbgpt_ext/rag/embeddings/tongyi.py#L151-L163),这些元数据会被 DB-GPT 用于向量库建索引和上下文长度规划。
启动 DB-GPT 服务
配置完成并设置好环境变量后,通过--config指定配置文件启动 Web 服务:
uv run dbgpt start webserver --config configs/dbgpt-proxy-tongyi.toml启动成功后,浏览器访问http://localhost:5670即可打开 DB-GPT 的 Web UI,在模型列表中应能看到qwen-plus,知识库创建页则可选择text-embedding-v3作为向量模型。之后便可以直接进行对话,或将文档导入知识库进行 RAG 问答。
源码级原理:Tongyi 适配器如何工作
配置中的provider = "proxy/tongyi"是关键,DB-GPT 靠它完成模型客户端的装配。整个链路如下:
1. 注册代理模型适配器
在 packages/dbgpt-core/src/dbgpt/model/proxy/llms/tongyi.py#L135-L162 中,register_proxy_model_adapter将TongyiLLMClient注册为proxy/tongyi供应商的客户端实现。该函数位于 packages/dbgpt-core/src/dbgpt/model/proxy/base.py#L465-L519,会动态生成一个ProxyLLMModelAdapter,其match()方法只匹配_provider == "proxy/tongyi"的请求,从而把模型名解析到正确的客户端类。
2. 客户端继承 OpenAI 兼容实现
TongyiLLMClient 继承自OpenAILLMClient,构造函数会依次从"显式参数 → 环境变量 → 内置默认值"三级回退取值:
api_base = api_base or os.getenv("DASHSCOPE_API_BASE") or _DEFAULT_API_BASE api_key = api_key or os.getenv("DASHSCOPE_API_KEY")其中默认地址_DEFAULT_API_BASE = "https://dashscope.aliyuncs.com/compatible-mode/v1",默认模型_DEFAULT_MODEL = "qwen-max-latest",超时时间默认 240 秒。同时客户端强制要求openai >= 1.0,否则抛出升级提示(check_sdk_version)。这也印证了"前置条件必须包含proxy_openai扩展"的要求。
3. 内置模型元数据
register_proxy_model_adapter注册时还声明了supported_models元数据,例如qwen-max-latest/qwen-max-2025-01-25/qwen-max的context_length为 32K 且支持函数调用(function calling),同时 DashScope 平台上的deepseek-r1、deepseek-v3等第三方模型也可通过同一代理接入。这些元数据正是agent_context.max_context_tokens = 0时自动探测上下文长度的依据。
4. Embedding 实现
TongYiEmbeddings 负责向量化。它对text-embedding-v3强制将批大小限制为 6(其他模型为 25),并按text_index排序后返回与输入顺序一致的向量列表;embed_query则通过embed_documents([text])[0]复用批量接口。
5. CLI 档案(Profile)
在 packages/dbgpt-core/src/dbgpt/cli/_profiles.py#L111-L121 中,qwen档案记录了官方推荐值:环境变量DASHSCOPE_API_KEY、LLM 默认模型qwen-plus、供应商proxy/tongyi、Embedding 默认text-embedding-v3。如果你使用dbgptCLI 的交互式初始化命令生成配置,得到的即为与本文一致的推荐参数。
常见问题排查
| 问题 | 解决方案 |
|---|---|
InvalidAPIKey错误 | 检查 DashScope API Key 是否正确,并确认已在百炼控制台激活对应模型服务 |
| 模型配额已耗尽(quota exceeded) | 登录 DashScope 控制台查看当前账号的使用额度与限流情况 |
| 响应缓慢 | 换用qwen-turbo可获得更快的响应速度;也可检查timeout参数(默认 240s)是否过短 |
| 提示缺少 openai 依赖 | 按pip install --upgrade 'openai>=1.0'升级,或确认已安装proxy_openaiextra |
下一步
- Getting Started 快速开始:完整的安装与上手流程
- 模型供应商总览:查看如何接入其他模型供应商(OpenAI、DeepSeek、Kimi、GLM 等)
- 模型接入配置参考:仓库中的通义千问完整配置文件模板
【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI + Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考