内容提要
随着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 上线。