news 2026/9/13 13:01:55

DB-GPT 接入 Ollama:本地运行开源模型的完整配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DB-GPT 接入 Ollama:本地运行开源模型的完整配置指南

DB-GPT 接入 Ollama:本地运行开源模型的完整配置指南

【免费下载链接】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 本地模型接入方案展开,完整讲解从安装 Ollama、拉取模型、安装proxy_ollama依赖,到编写 configs/dbgpt-proxy-ollama.toml 配置并启动服务端的全过程。读完本文,你将能够在自己的机器上通过 Ollama 运行 DeepSeek-R1、Qwen2.5、Llama 3.1 等对话模型与 bge-m3、nomic-embed-text 等嵌入模型,让 DB-GPT 的 RAG、Agent 等能力全部跑在本地,并掌握常见故障的排查方法。

一、为什么选择 Ollama 作为 DB-GPT 的本地推理后端

DB-GPT 支持丰富的模型接入方式,其中proxy/<platform>这一类 provider 用于对接第三方或本地推理服务。Ollama 正是本地推理中最易上手的一种:它以极简的命令行完成模型下载与启动,屏蔽了显存分配、模型格式转换等细节,适合在个人开发机、离线环境或对数据隐私有要求的场景中为 DB-GPT 提供 LLM 与 Embedding 能力。

从源码角度看,DB-GPT 将 Ollama 封装为一个标准的代理客户端OllamaLLMClient,定义在 packages/dbgpt-core/src/dbgpt/model/proxy/llms/ollama.py,并在 packages/dbgpt-core/src/dbgpt/model/proxy/init.py 中完成懒加载注册。它底层通过官方ollamaPython 包的Client以流式方式调用/chat接口,因此 DB-GPT 侧不需要加载任何模型权重,模型推理全部在 Ollama 进程中完成。

二、环境准备(Prerequisites)

在开始之前,需要满足两个前提条件:

  1. Ollama 已安装并处于运行状态:Ollama 以独立服务进程运行在localhost:11434(默认端口),DB-GPT 只作为 HTTP 客户端访问它。
  2. DB-GPT 已安装proxy_ollama扩展依赖:该 extra 会一并安装ollamaPython 客户端包。若缺少该包,OllamaLLMClient.sync_generate_stream会抛出Could not import python package: ollama的 ValueError,提示你执行pip install ollama(见 ollama.py)。

2.1 安装 Ollama

根据操作系统选择对应的安装方式:

  • macOS:从 ollama.ai 下载安装包,或使用 Homebrew:
brew install ollama
  • Linux:使用官方安装脚本(与高级用法文档 docs/docs/installation/advanced_usage/ollama.md 中的方式一致):
curl -fsSL https://ollama.ai/install.sh | sh
  • Windows:从 ollama.ai 下载安装程序,安装后 Ollama 会作为后台服务运行。

安装完成后,使用ollama serve启动服务(若已作为系统服务运行则可跳过),默认监听127.0.0.1:11434

2.2 拉取模型(Pull models)

Ollama 的模型以"标签(tag)"方式管理,需要先拉取到本地才能使用。至少需要两类模型:

# 拉取一个对话模型(Chat/LLM) ollama pull deepseek-r1:1.5b # 拉取一个嵌入模型(Embedding) ollama pull bge-m3:latest

提示:执行ollama list可以查看本地已下载的全部模型及其大小、标签信息。

三、安装 DB-GPT 依赖

DB-GPT 仓库使用uv管理依赖。为了让 Ollama 代理、RAG 检索、向量存储与内置 dbgpts 插件都能正常工作,官方推荐一次性同步以下 extras:

uv sync --all-packages \ --extra "base" \ --extra "proxy_ollama" \ --extra "rag" \ --extra "storage_chromadb" \ --extra "dbgpts"

参数说明:

  • --extra "proxy_ollama":安装 Ollama 代理客户端所需依赖(核心);
  • --extra "rag":启用 RAG 检索增强,需要嵌入模型配合;
  • --extra "storage_chromadb":使用 Chroma 作为默认向量库(与 configs/dbgpt-proxy-ollama.toml 中的type = "chroma"对应);
  • --extra "dbgpts":安装内置 DB-GPT 插件与技能;
  • --all-packages:同步仓库内所有 Python 包(dbgpt-core、dbgpt-serve 等)。

该命令同时出现在入门文档 docs/docs/getting-started/providers/ollama.md 与进阶文档 docs/docs/installation/advanced_usage/ollama.md 中,是官方认可的标准安装方式。

四、编写模型配置文件

DB-GPT 以 TOML 文件集中声明要加载的模型。官方在仓库中提供了现成模板 configs/dbgpt-proxy-ollama.toml,完整内容如下:

[system] # 语言从环境变量读取(由 hook 设置) language = "${env:DBGPT_LANG:-en}" 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.storage] [rag.storage.vector] type = "chroma" persist_path = "pilot/data" # 模型配置 [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 = ""

4.1 关键配置项详解

配置项位置含义默认值/建议值
namemodels.llms/models.embeddings模型在 DB-GPT 中的注册名,必须与ollama list中已拉取的模型标签完全一致,否则会报 "Model not found"
provider同上模型提供方标识,Ollama 固定写proxy/ollamaproxy/ollama
api_basemodels.llmsOllama HTTP 服务地址,DB-GPT 会用它构造ollama.Client(api_base)http://localhost:11434
api_urlmodels.embeddings嵌入模型的访问地址(Embedding 参数命名与 LLM 不同)http://localhost:11434
api_key两者本地 Ollama 无需鉴权,可留空字符串""

说明:如果 Ollama 运行在其他机器上,只需把api_base/api_url改为http://<目标主机>:11434api_key在本地场景留空即可。

4.2 源码视角:Ollama 代理是如何工作的

从源码结构看,Ollama 接入的核心是一条清晰的调用链:

  1. 参数类OllamaDeployModelParameters(ollama.py)继承自LLMDeployModelParameters,硬编码provider: str = "proxy/ollama",并把api_base默认值设计为环境变量可覆盖的${env:OLLAMA_API_BASE:-http://localhost:11434}——这意味着你也可以通过设置OLLAMA_API_BASE环境变量来指向远程 Ollama,而无需修改配置文件。
  2. 客户端OllamaLLMClientnew_client中读取real_provider_model_name(即配置中的name,若设置了backend则优先用backend)与api_base构造实例;default_model返回该模型名。
  3. 流式生成sync_generate_stream内部调用官方ollama.Client.chat(model=..., messages=..., stream=True)逐块累积响应内容,并通过parse_chat_message(content, extract_reasoning=is_reasoning_model)分离正文与思考过程(reasoning content),将结果包装成标准ModelOutput流式返回。当请求上下文中标记is_reasoning_model(如 DeepSeek-R1 这类推理模型)时,思考链会被单独提取出来展示。
  4. 适配器注册:文件末尾通过register_proxy_model_adapter注册预置元数据,例如deepseek-v3(context_length 64K)与deepseek-r1:671b(context_length 64K、支持 function calling),其余模型可从 ollama.com/search 查询后自行在配置中声明。

上述通用参数(context_lengthbackendreasoning_modelconcurrency等)均定义在LLMDeployModelParameters(packages/dbgpt-core/src/dbgpt/core/interface/parameter.py),你在配置文件中为对应模型显式设置context_lengthreasoning_model即可覆盖自动探测值。

五、推荐模型选择

5.1 对话模型(Chat/LLM)

模型拉取命令大小特点
DeepSeek-R1 1.5Bollama pull deepseek-r1:1.5b约 1 GB体积小、速度快,具备推理(reasoning)能力
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通用场景响应快

5.2 嵌入模型(Embedding)

模型拉取命令特点
bge-m3ollama pull bge-m3:latest多语言,兼顾中英文检索,适合 RAG 场景
nomic-embed-textollama pull nomic-embed-text以英文为主

嵌入模型用于知识库问答(RAG)中的文档向量化。若只做纯对话,配置models.embeddings一节可以省略;但要让 docs/docs/modules/rag.md 中的知识库能力工作,则必须配置嵌入模型。

六、启动服务端

启动顺序有严格要求:先启动 Ollama,再启动 DB-GPT

# 1. 启动 Ollama(若未作为服务运行) ollama serve # 2. 启动 DB-GPT,显式指定 Ollama 配置 uv run dbgpt start webserver --config configs/dbgpt-proxy-ollama.toml

--config参数指向第 4 节编辑好的配置文件。服务启动后,Web 界面默认监听0.0.0.0:5670(与配置中[service.web]一致),浏览器访问http://localhost:5670即可开始对话或创建知识库应用。

七、故障排查(Troubleshooting)

问题解决方案
Connection refused(连接被拒绝)确认 Ollama 已在运行:执行ollama serve;同时核对api_base/api_url中的主机与端口(默认11434
Model not found(模型不存在)先拉取模型:ollama pull model-name,并确保配置中的name与模型标签完全一致(例如deepseek-r1:1.5b不能简写为deepseek-r1
响应缓慢(Slow responses)尝试更小的模型,或确认 GPU 已被 Ollama 使用(ollama ps可查看当前加载的模型与显存占用)
内存/显存不足(Out of memory)改用更小的量化版本,例如ollama pull qwen2.5:7b-q4_0(Q4 量化可显著降低资源占用)

若日志中出现Ollama Response Error字样,可关注异常详情中的错误码与描述——这来自OllamaLLMClientollama.ResponseError的捕获处理(ollama.py),通常指向模型名称错误或服务未就绪。

八、进一步探索

  • 完整安装与首次运行流程见 docs/docs/getting-started/quick-start.md;
  • Ollama 的更多进阶配置(如自定义模型文件、GPU 设置)可参考 docs/docs/installation/advanced_usage/ollama.md;
  • 其他模型提供商(OpenAI、DeepSeek、Tongyi 等)的接入方式见 docs/docs/getting-started/providers/index.md,仓库 configs 目录下也提供了对应 TOML 模板;
  • 想进一步了解 Ollama 代理实现细节,可直接阅读 packages/dbgpt-core/src/dbgpt/model/proxy/llms/ollama.py。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 13:01:50

Auracast与全双工对讲方案详解:LE Audio低延时高音质工程实践

最近圈子里聊得比较多的 Auracast 广播音频&#xff0c;泰凌这次给了一套能直接落地的方案&#xff0c;亮点是把 Auracast 广播接收/发射和高音质低延时的全双工对讲打包在一起。我拿到样品之后做了好几轮测试&#xff0c;今天把这套方案背后的技术思路、SDK 里的处理细节&…

作者头像 李华
网站建设 2026/9/13 12:59:15

Maven PKIX报错:证书信任链排查与cacerts修复指南

1. 破译报错&#xff1a;PKIX path building failed到底是谁在说话先别急着百度复制粘贴解决方案&#xff0c;我们花两分钟把这段报错真正看懂。绝大多数Maven用户在IDEA里导入项目时看到这行红字&#xff0c;第一反应是“Maven崩了”“镜像挂了”“IDEA坏了”&#xff0c;其实…

作者头像 李华
网站建设 2026/9/13 12:58:07

LabVIEW比较运算符详解与应用实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 12:57:07

研究生论文写作必备:9大AI工具评测与使用策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 12:56:30

用 R 可视化蘑菇数据集比例:饼图、环形图与华夫饼图实战

用 R 可视化蘑菇数据集比例&#xff1a;饼图、环形图与华夫饼图实战 【免费下载链接】Data-Science-For-Beginners 10 Weeks, 20 Lessons, Data Science for All! 项目地址: https://gitcode.com/GitHub_Trending/da/Data-Science-For-Beginners 本篇文章基于 Data Scie…

作者头像 李华