ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

DB-GPT Confluence 知识库问答实操指南

DB-GPT Confluence 知识库问答实操指南 DB-GPT Confluence 知识库问答实操指南【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT入职第一周你被问过五次测试环境怎么配和发布审批走哪个流程。答案其实都在团队每天在用的 Confluence 里但它的搜索框只认精确关键词换个问法就搜不到。DB-GPT 是一个开源的数据库领域大模型框架其中的知识库问答KBQA能力可以把 Confluence 页面变成一个可以自然语言提问的知识库文档导入后直接问新人入职流程有哪些步骤它会给出答案并标出来源页面。本文带你把单个 Confluence 空间接入 DB-GPT跑通从取数到问答的完整链路。接入完成后的效果先把结果说清楚接入并导入一个空间后检索从关键词匹配变成语义匹配问连接池耗尽怎么处理能命中标题为数据库连接数上限排查的页面每个答案都能溯源到具体 Confluence 页面方便二次确认按空间建库检索范围从全库缩到单个空间跨团队文档不会互相干扰。可以直接尝试的问句新员工入职流程有哪些步骤微服务之间用什么通信协议远程办公政策写在哪份文档里原理一句话原文进向量库答案由检索加生成Confluence 页面导出为纯文本后DB-GPT 先按固定长度切块chunking即把长文切成小段再交给嵌入模型把文本转成可计算相似度的数字向量写入向量库提问时先检索出最相关的几个文本块连同问题一起交给大模型生成回答。这套先检索、再生成的流程叫 RAGRetrieval Augmented Generation检索增强生成好处是回答始终基于你的文档而不是模型的自由发挥。准备清单版本、配置与模型先用git clone https://gitcode.com/GitHub_Trending/db/DB-GPT拉取代码然后核对下表项目要求 / 路径说明DB-GPT 版本v0.8.1见 pyproject.tomlPython 3.10项目最低版本要求主配置文件configs/dbgpt-bm25-rag.toml含[rag]、向量存储、模型配置向量库选型文档docs/docs/config-reference/vector_store/index.mdx支持 Chroma、Milvus、OceanBase 等嵌入模型文档docs/docs/config-reference/embedding/index.mdx中文场景建议本地模型知识库 API 文档docs/docs/api/knowledge.md知识空间与文档的增删改查Python 依赖atlassian、beautifulsoup4供第 1 步取数脚本使用嵌入模型文件text2vec-large-chinese需按 FAQ 预先下载到models/目录实操主线四步从取数到问答第一步抓取 Confluence 页面并转成纯文本DB-GPT 目前没有内置 Confluence 连接器用atlassian官方 SDK 把页面拉下来转成纯文本文件落盘后面统一导入。脚本核心如下from atlassian import Confluence from bs4 import BeautifulSoup confluence Confluence( urlhttps://your-domain.atlassian.net/wiki, usernameyouexample.com, passwordyour-api-token, cloudTrue, # Server/Data Center 版本改为 False ) def fetch_space(space_key, out_dirconfluence_docs): pages confluence.get_all_pages_from_space(space_key, expandbody.storage) for page in pages: html page[body][storage][value] text BeautifulSoup(html, html.parser).get_text() # 标记语言转纯文本 lines [ f标题: {page[title]}, f来源: {page[_links][base]}{page[_links][webui]}, f更新时间: {page[version][when]}, , text, ] with open(f{out_dir}/{page[id]}.txt, w, encodingutf-8) as f: f.write(\n.join(lines)) # 来源 URL 写入文档头部问答时可溯源要点expandbody.storage用于拿到页面正文每份文档头部固定写入标题、来源 URL、更新时间这三行元信息对后续溯源和增量同步都有用。第二步配置向量存储与嵌入模型编辑 configs/dbgpt-bm25-rag.toml关键段如下[rag] chunk_size 1000 # 每块约 1000 字符过大影响检索精度 chunk_overlap 100 # 相邻块重叠避免句子被切断 similarity_top_k 5 # 每次提问检索的文本块数量 similarity_score_threshold 0.0 # 相似度下限低分块会被过滤 [rag.storage.vector] type chroma # 默认本地 Chroma无需额外部署 persist_path pilot/data # 向量库落盘目录 [[models.embeddings]] name text2vec-large-chinese # 中文嵌入模型需已下载到 models/说明向量库选型Chroma、Milvus、OceanBase 等与切换方式见 KBQA FAQ嵌入模型维度决定向量维度换模型时注意旧库需要重建。第三步创建知识空间并导入文档DB-GPT 的知识管理 API 见 examples/client/knowledge_crud_example.py最小可用片段import glob, asyncio from dbgpt_client import Client from dbgpt_client.knowledge import create_space, create_document from dbgpt_client.schema import SpaceModel, DocumentModel async def main(): client Client(api_keydbgpt) space await create_space(client, SpaceModel( nameconfluence-prod, # 对应 Confluence PROD 空间 vector_typeChroma, descConfluence PROD 空间文档, ownerdbgpt, )) for f in sorted(glob.glob(confluence_docs/*.txt)): with open(f, encodingutf-8) as fp: await create_document(client, DocumentModel( space_idstr(space.id), doc_namef.split(/)[-1], doc_typeTEXT, doc_contentfp.read(), )) await client.aclose() asyncio.run(main())导入完成后服务端会对文档执行切块、向量化、建索引走 Web 界面时也可以直接在知识库页面上传.txt文件效果等价。第四步检索相关文本块并生成回答想验证检索质量可以先跳过对话界面直接跑检索参考 examples/rag/embedding_rag_example.pyimport asyncio, os from dbgpt.rag.embedding import DefaultEmbeddingFactory from dbgpt_ext.rag import ChunkParameters from dbgpt_ext.rag.assembler import EmbeddingAssembler from dbgpt_ext.rag.knowledge import KnowledgeFactory from dbgpt_ext.storage.vector_store.chroma_store import ChromaStore, ChromaVectorConfig async def main(): knowledge KnowledgeFactory.from_file_path(confluence_docs/onboarding.txt) store ChromaStore( ChromaVectorConfig(persist_path./pilot/data), nameconfluence_kb, embedding_fnDefaultEmbeddingFactory( default_model_nameos.path.join( models, text2vec-large-chinese)).create(), ) assembler EmbeddingAssembler.load_from_knowledge( knowledgeknowledge, chunk_parametersChunkParameters(chunk_strategyCHUNK_BY_SIZE), index_storestore, ) assembler.persist() # 切块 向量化 写入索引 retriever assembler.as_retriever(3) # 取 top 3 最相关文本块 chunks await retriever.aretrieve_with_scores(测试环境怎么配置, 0.3) for c in chunks: print(c.score, c.content[:80]) asyncio.run(main())要得到生成式回答而不是文本块走 Agent 路线即可SummaryAssistantAgent会先检索再让大模型总结完整示例见 examples/agents/retrieve_summary_agent_dialogue_example.py日常使用则直接打开 DB-GPT Web 端选择该知识空间提问。调优细节增量同步、权限过滤与检索参数增量同步不用每次全量拉取CQL 里加时间条件即可如space PROD AND lastModified 2026-09-01再按文档头部的更新时间行跳过未变化的页面。权限过滤把页面的view permissions写入文档元数据或头部元信息检索结果返回后按当前用户过滤避免 A 团队页面进入 B 团队的回答。检索参数similarity_top_k控制召回块数similarity_score_threshold控制过滤下限rerank_top_k控制重排序rerank用更精细的模型对召回块二次排序后保留的数量三者在[rag]段调节。并发[rag] max_threads控制文档处理线程数导入大批量页面时调大问答侧并发由服务端 worker 数决定。用法示范按角色直接复制的问句研发微服务之间用什么通信协议 / 数据库连接数耗尽怎么排查人事新员工入职流程有哪些步骤 / 年度体检怎么预约销售金融行业有哪些客户案例 / 企业版定价标准是什么管理者Q3 产品路线图最近一次更新是什么时候踩坑记录导入与检索的三个常见问题现象运行导入时报text2vec-large-chinese not found。原因嵌入模型是本地文件仓库默认不带模型权重。处理先安装 git-lfs再把 text2vec-large-chinese 克隆到models/目录步骤见 KBQA FAQ。现象导入的文档里混着标记符号答案可读性差。原因直接把 Confluence 的body.storage存储格式标记语言当纯文本用了。处理用 BeautifulSoup 的get_text()先转纯文本再落盘见第一步脚本。现象简单问题答非所问或引用了不相关页面。原因低相似度文本块未被过滤或chunk_size过大导致一个块里混了多段内容。处理在 configs/dbgpt-bm25-rag.toml 中提高similarity_score_threshold并尝试把chunk_size降到 500~800、chunk_overlap保持在 100 左右重新导入。收尾资源索引与参与方式本文的完整链路是用 SDK 把 Confluence 页面转成带元信息的纯文本 → 配置 Chroma 向量库与中文嵌入模型 → 通过知识空间 API 建库导入 → 用 RAG 检索加生成完成问答。整套方案只依赖本地向量库文档不出内网后续扩展更多空间或接入其他文档源只需复用第一步的取数脚本和第三、四步的代码。知识库 API 文档docs/docs/api/knowledge.mdRAG 模块说明docs/docs/modules/rag.mdKBQA 常见问题docs/docs/faq/kbqa.md向量存储配置参考docs/docs/config-reference/vector_store/index.mdx如果你在接入自己的 Confluence 实例时遇到脚本适配、权限模型或其他问题欢迎到仓库提交 Issue 或 PR把踩过的坑写进文档里。【免费下载链接】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),仅供参考
返回列表