FEATURED · 精选文章

DB-GPT 本地模型实战:通过 Ollama 代理接入 DeepSeek、Qwen 等开源大模型与 Embedding 模型

发布时间 / 2026/9/14 6:29:58
来源 / 创域科博编辑部
栏目 / 资讯中心
DB-GPT 本地模型实战:通过 Ollama 代理接入 DeepSeek、Qwen 等开源大模型与 Embedding 模型 DB-GPT 本地模型实战通过 Ollama 代理接入 DeepSeek、Qwen 等开源大模型与 Embedding 模型【免费下载链接】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 仓库中的 Ollama Provider 文档讲解如何把 DB-GPT 的 LLM 与 Embedding 调用全部切换到本地 Ollama 服务从安装 Ollama、拉取模型、安装proxy_ollama依赖、编写 TOML 配置到启动 Web Server 与常见故障排查并结合仓库源码说明proxy/ollama提供方的真实调用链路与参数默认值帮助你在完全离线的机器上跑通 DB-GPT 的对话与 RAG 能力。一、方案定位为什么用 Ollama 作为模型提供方DB-GPT 通过模型提供方Provider机制管理 LLM 与 Embedding 的接入方式proxy/ollama是其中面向本地部署的一条路径。Ollama 是在个人机器上部署开源模型最便捷的方式之一——一条pull命令即可下载模型内置 OpenAI 兼容风格的 HTTP 服务默认端口11434。从仓库源码结构看DB-GPT 侧的 Ollama 支持分布在两个包中LLM 客户端OllamaLLMClient位于dbgpt-core的 proxy 模型目录Embedding 客户端OllamaEmbeddings位于dbgpt-ext的 RAG embeddings 目录。这意味着 Ollama 不只服务聊天对话还同时支撑知识问答RAG所需的向量化能力。二、前置条件已安装并启动 Ollama后文给出各平台安装命令已安装带proxy_ollama扩展的 DB-GPT后文第四节给出安装命令。从源码看两个客户端都在运行期动态导入 Python 包ollamaimport ollama/from ollama import Client导入失败会抛出明确提示Could not import python package: ollama并建议执行pip install ollama见 ollama.py L115-L122。因此proxy_ollama扩展安装的正是这个 Python 客户端包而非 Ollama 服务端本身——服务端仍需按下一节独立安装。三、安装 Ollama 并拉取模型3.1 按操作系统安装 OllamamacOS# 从 ollama.ai 官网下载或使用 Homebrew brew install ollamaLinuxcurl -fsSL https://ollama.ai/install.sh | shWindows从 ollama.ai 官网下载安装程序。3.2 拉取模型# 拉取聊天模型 ollama pull deepseek-r1:1.5b # 拉取 embedding 模型 ollama pull bge-m3:latest提示使用ollama list可以查看已下载的模型。文档默认推荐的组合是deepseek-r1:1.5b约 1 GB 的推理型聊天模型bge-m3:latest多语言 Embedding 模型这也是 configs/dbgpt-proxy-ollama.toml 的出厂配置兼顾了低显存环境下的可运行性与中文场景效果。四、安装 DB-GPT 依赖在仓库根目录执行uv sync --all-packages \ --extra base \ --extra proxy_ollama \ --extra rag \ --extra storage_chromadb \ --extra dbgpts各扩展的作用可从 packages/dbgpt-core/pyproject.toml 中确认proxy_ollama [ollama]即该扩展只为 Ollama 客户端安装 Python 依赖rag与storage_chromadb支撑知识库向量化与 Chroma 持久化示例配置中persist_path pilot/datadbgpts则提供预置技能应用。五、配置 DB-GPT 使用 Ollama仓库已内置完整示例 configs/dbgpt-proxy-ollama.toml核心模型配置如下[models] [[models.llms]] name deepseek-r1:1.5b provider proxy/ollama api_base http://localhost:11434 api_key [[models.embeddings]] name bge-m3:latest provider proxy/ollama api_url http://localhost:11434 api_key 完整配置文件中还包含服务与存储部分节选自该文件[system] language ${env:DBGPT_LANG:-en} # 语言从环境变量加载由 hook 设置 api_keys [] encrypt_key your_secret_key # 服务配置 [service.web] host 0.0.0.0 port 5670 [service.web.database] type sqlite path pilot/meta_data/dbgpt.db # RAG 向量存储 [rag.storage.vector] type chroma persist_path pilot/data5.1 模型参数逐项说明结合源码中的参数定义类各字段含义如下参数LLM 侧Embedding 侧说明namedeepseek-r1:1.5bbge-m3:latest对应ollama list中显示的模型名含 tagproviderproxy/ollamaproxy/ollama在 OllamaDeployModelParameters 与 OllamaEmbeddingDeployModelParameters 中均有默认值proxy/ollama服务地址api_baseapi_url注意两者字段名不同LLM 用api_baseEmbedding 用api_urlapi_key可留空可留空本地 Ollama 无需鉴权源码层面值得注意的三个默认值api_base默认值OllamaDeployModelParameters.api_base 默认为${env:OLLAMA_API_BASE:-http://localhost:11434}即支持通过环境变量OLLAMA_API_BASE覆盖缺省回落到本机11434端口客户端侧默认值OllamaLLMClient 的构造函数中若未传api_base则取http://localhost:11434且会执行_resolve_env_vars解析${env:...}形式的环境变量context_length默认 4096构造函数签名中context_length: Optional[int] 4096。若选用声明了更长上下文的模型例如注册表中deepseek-r1:671b声明了 64K context见 register_proxy_model_adapter 调用建议显式调大该参数。此外Embedding 侧还有一个可选的backend参数当name与 Ollama 实际模型名不一致时可用backend指定真正传给 Ollama 的模型名backend为空时直接使用namereal_provider_model_name 属性。说明对于本地 Ollamaapi_key可以留空。如果 Ollama 运行在另一台机器上需要把api_base/api_url改成对应机器的地址如http://192.168.x.x:11434LLM 与 Embedding 两处都要同步修改。六、源码视角请求在 DB-GPT 内部如何到达 Ollama6.1 LLM 流式调用链路从 sync_generate_stream 的实现可以看到完整的调用过程通过Client(self._api_base)建立到 Ollama HTTP 服务的连接将 DB-GPT 的ModelRequest经local_covert_message转换后调用client.chat(model..., messages..., streamTrue)发起流式请求逐块拼接chunk[message][content]并用parse_chat_message解析出正文与推理内容——当请求上下文标记is_reasoning_model时会单独抽取思考内容thinking字段这正是deepseek-r1这类推理模型能在 DB-GPT 中展示思考过程的底层支撑异常路径上ollama.ResponseError会被转换为error_code-1的ModelOutput输出给前端而不是直接抛出异常中断会话。流式生成入口为 ollama_generate_stream它通过parse_model_request构建带streamTrue的请求再委托给客户端的sync_generate_stream。6.2 Embedding 调用链路OllamaEmbeddings.embed_query 使用Client(self.api_url).embeddings(model..., prompt...)逐条计算文本向量embed_documents是对embed_query的逐条循环封装另有aembed_query/aembed_documents基于AsyncClient的异步版本。注册信息中声明了bge-m3元数据维度 1024、上下文长度 8192、支持 100 多种语言register_embedding_adapter 调用。注意embed_documents是逐条调用而非批量接口在入库大批量文档时耗时与文本条数成正比这是从源码结构可以直接观察到的行为。七、常见模型选择7.1 聊天模型模型拉取命令大小说明DeepSeek-R1 1.5Bollama pull deepseek-r1:1.5b~1 GB小模型、速度快、推理能力不错Qwen2.5 7Bollama pull qwen2.5:7b~4.7 GB综合平衡较好Llama 3.1 8Bollama pull llama3.1:8b~4.7 GBMeta 新一代模型Mistral 7Bollama pull mistral:7b~4.1 GB通用场景、速度快7.2 Embedding 模型模型拉取命令说明bge-m3ollama pull bge-m3:latest多语言nomic-embed-textollama pull nomic-embed-text更偏英文场景选用其他模型时只需把 TOML 中[[models.llms]]/[[models.embeddings]]的name改成对应模型名即可provider 与地址保持不变。八、启动服务先确保 Ollama 服务在运行# 如果没有以服务方式启动则手动启动 Ollama ollama serve然后在 DB-GPT 仓库根目录启动 Web Serveruv run dbgpt start webserver --config configs/dbgpt-proxy-ollama.tomlstart webserver命令由 cli_scripts.py 注册webserver是web的别名示例配置中 Web 服务监听0.0.0.0:5670SQLite 元数据库位于pilot/meta_data/dbgpt.db。九、故障排查问题解决方法Connection refused确认 Ollama 已启动ollama serveModel not found先执行ollama pull model-name拉取模型响应较慢尝试更小模型或确认是否使用了 GPU内存不足换更小的量化模型例如qwen2.5:7b-q4_0补充两条与源码行为对应的排查要点若日志中出现Could not import python package: ollama说明缺少 Python 客户端包需回到第四节重新执行uv sync ... --extra proxy_ollama若 Ollama 返回ResponseError如模型未就绪、上下文超长DB-GPT 会以带错误信息的对话消息形式呈现LLM 侧error_code-1Embedding 侧抛出ValueError可先单独用ollama run model 你好验证服务端是否正常。十、延伸阅读快速开始—— 查看完整首跑流程API 代理模式Ollama Advanced—— 查看 Ollama 进阶配置示例含qwen:0.5b轻量组合示例配置文件configs/dbgpt-proxy-ollama.toml源码实现LLM 客户端、Embedding 客户端。【免费下载链接】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),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻