基于 LLM 构建企业专属用户助手:PingCAP 在 TiDB Bot 上的探索和实践

基于 LLM 构建企业专属用户助手:PingCAP 在 TiDB Bot 上的探索和实践

💡 原文中文,约3400字,阅读约需9分钟。
📝

内容提要

随着TiDB和TiDB Cloud的推广和应用,全球用户的技术支持变得越来越重要。使用LLM构建社区机器人来辅助完成社区支持工作。难点在于机器人如何准确回答关于TiDB和TiDB Cloud的问题,并将回答限制在这两个领域。使用LLM基于特定领域回答问题,使用RAG方法访问外部知识源,提高回答准确度。使用Few-Shot方式构建提示词进行毒性检测,避免越狱尝试。优化包括毒性识别、理解提问上下文、语义搜索结果不准确。持续优化TiDB Bot的准确度和回答效果。

🔎

延伸解读

毒性检测:从提示词到动态示例

文章将“毒性”扩展为回答范围越界,并采用Few-Shot提示词进行检测。但预设示例有限,用户提问多样,易漏判。TiDB Bot通过语义相似度检索历史提问中的毒性标记示例,动态补充给LLM,提升判断准确性。这种方法依赖已有标记数据,且需持续清洗和更新,否则可能引入噪声。

多轮对话中的上下文改写

当用户在多轮对话中提问“这个参数的默认值是什么”时,直接向量检索难以奏效。TiDB Bot利用LLM结合上下文改写问题,将模糊指代转化为明确查询,再检索文档。这能提升回答准确度,但改写本身可能引入偏差,且增加处理延迟。

语义搜索不准的应对策略

即使问题明确,向量检索也可能因文档晦涩或嵌入距离偏差而排序错误。TiDB Bot在提示词中加入易错点示例,并在示例积累后训练Embedding模型,以更好捕捉提问与领域知识的相似关系。这需要持续收集和标注数据,且训练效果依赖数据质量。

上线后的挑战与持续运营

TiDB Bot已在TiDB Cloud、Slack、Discord上线,但用户反馈不满意比例曾超50%,主要涉及毒性识别、上下文理解和语义搜索。文章强调持续运营是关键,需不断优化准确度和回答效果。这表明企业级LLM助手并非一蹴而就,需长期迭代。

❓

Q&A

TiDB Bot 的主要功能是什么?

TiDB Bot 旨在辅助完成 TiDB 和 TiDB Cloud 的社区支持工作,提供技术支持和解答用户问题。

使用 LLM 构建 TiDB Bot 面临哪些挑战?

主要挑战包括准确回答 TiDB 和 TiDB Cloud 的问题、限制回答范围以及毒性检测。

如何提高 TiDB Bot 的回答准确度?

通过使用 RAG 方法访问外部知识源,并结合用户提问的上下文来生成更准确的回答。

TiDB Bot 上线后的用户反馈如何?

上线后,超过 50% 的用户反馈不满意,主要集中在回答不准确和毒性识别问题上。

TiDB Bot 如何进行毒性检测?

使用 Few-Shot 方法构建提示词,帮助 LLM 判断用户提问是否符合预设的回答范围。

TiDB Bot 在哪些平台上线?

TiDB Bot 已在 TiDB Cloud、Slack 和 Discord 上线。

🏷️

标签

➡️

继续阅读