暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PolarDB MySQL MCP:一句话搭建知识问答系统

PolarDB 2025-06-12
506

PolarDB MySQL MCP:一句话搭建知识问答系统

背景

MCP

模型上下文协议(Model Context Protocol,简称MCP)是一个由 Anthropic 在 2024 年 11 月 25 日开源的新标准。MCP 为 AI 模型连接不同数据源和工具提供了标准化方式,MCP通过统一的数据交互规范,让LLM能够像“即插即用”一样快速对接表格、数据库、API、外部工具等多样化资源。

PolarDB

PolarDB是阿里巴巴自研的新一代云原生数据库,在计算存储分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。PolarDB MySQL版100%兼容原生MySQL的多个版本,包括MySQL 5.6、MySQL 5.7和MySQL 8.0。

PolarDB MySQL版本推出的列存索引(In-Memory Column Index,简称IMCI)面向OLAP场景大数据量复杂查询。通过列存索引,PolarDB MySQL版实现了一体化的实时事务处理和实时数据分析的能力,成为一站式HTAP数据库产品解决方案。通过一套数据库系统,即可满足业务的OLTP及OLAP需求。PolarDB MySQL的AI节点还内置各种AI大模型和机器学习组件,无需手动将PolarDB中的数据同步至其他AI平台,便可直接通过SQL语句调用内置的AI大模型来完成复杂的分析任务。

PolarDB MySQL MCP

环境准备

  • VScode IDE+Cline插件

    • 下载VSCode,并安装Cline插件,在百炼中申请千问API
image.png
  • Cline中配置LLM(qwen-max-latest)
image.png

PolarDB MySQL MCP Server安装

  • 具体安装参考:https://github.com/aliyun/alibabacloud-polardb-mcp-server/blob/master/polardb-mysql-mcp-server/README.md

  • Cline安装好了MCP Server的效果

image.png
  • MCP Server 提供的功能

    • polardb-mysql://tables:列出当前数据库所有表信息

    • polardb-mysql://models:列出当前已经创建的模型算法

    • polardb-mysql://{table}/field:列出具体表的字段信息

    • polardb-mysql://{table}/data:列出具体表的数据(默认读取50行)

    • execute_sql: 执行符合PolarDB MySQL语法的SQL语句

    • polar4ai_update_index_for_text_2_sql: 利用polardb的AI节点,对当前库的表建索引,用于文本转SQL或者文本转chart

    • polar4ai_text_2_sql:利用polardb的AI节点,将用户的文本转换成sql语句

    • polar4ai_text_2_chart:利用polardb的AI节点,将用户的文本统计需求直接转换成图表

    • polar4ai_create_models:使用polar4ai语法,创建各种自定义算法模型

    • polar4ai_import_doc:利用polardb的AI节点,将用户本地目录的文档导入到PolarDB中形成知识库;

    • polar4ai_search_doc:利用polardb的AI节点,从PolarDB中的知识库中搜索用户问题并返回答案;

    • tools

    • resouces

RAG

大模型幻觉

如下图所示,直接想LLM咨询:“介绍下PolarDB代理的全局一致性”,回答的结果完全是自己瞎编造的,将各种DB的通用特性瞎编在一起,对于不太熟悉PolarDB代理的同学,有明显的误导作用。

image.png

RAG是什么

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合信息检索技术与大语言模型(LLM)生成能力的技术框架,其核心思想是通过从外部知识库中检索相关信息,并将这些信息作为提示(Prompt)输入给LLM,从而提升模型回答的准确性、可控性和时效性,对于解决上面的幻觉有明显的效果。

为何选择RAG而非直接微调

  1. 解决模型幻觉问题:RAG通过引入外部知识库的实时检索结果,为LLM提供事实依据,减少模型因知识缺失或过时而产生的“一本正经胡说八道”现象而微调仅能固化训练数据中的知识,无法动态更新,对幻觉问题的缓解有限

  2. 实时性与时效性:RAG的知识库可动态更新(例如接入最新财报、政策文件),使LLM能应对时效性问题(如回答“2025年春运数据”)。相比之下,微调需要重新训练模型才能更新知识,成本高且耗时

  3. 数据安全与隐私保护:企业可通过RAG将私有数据存储在本地知识库中,仅通过检索传递必要信息给LLM,避免将敏感数据上传至第三方模型进行微调,从而降低数据泄露风险

  4. 成本与灵活性:微调需要大量计算资源和标注数据,且模型参数固定后难以适应新领域。RAG无需修改模型参数,仅需更新知识库即可快速适配新场景(如切换医疗、金融领域),显著降低维护成本

  5. 可解释性与可控性:RAG的检索结果可作为生成答案的参考来源,增强输出的可追溯性;而微调后的模型决策过程难以透明化

RAG的核心流程

  1. 索引构建:将知识库中的文本分块(Chunking),通过嵌入模型(Embeddings)将文本转化为向量并存入向量数据库

  2. 检索:用户提问时,将查询内容向量化后,在向量数据库中检索最相关的Top-K结果

  3. 生成:将检索到的上下文与用户问题组合成Prompt,输入LLM生成最终答案

本文的MCP Server在RAG流程中能扮演的角色

  • 知识库建立:MCP Server提供了有如下能力的接口(Tool): 读取本地文件、然后进行文本分块和向量化,最后存储到向量数据库中;

  • 知识检索:MCP Server提供了向量数据库的检索接口(Tool),以便LLM回答问题前,先检索到相关的知识作为上下文Prompt,避免大模型幻觉产生;

知识问答系统搭建和效果演示

演示

本演示讲述的通过PolarDB MySQL MCP Server 来实现实时分析能力知识问答系统(RAG应用) ,通过在vcsode的cline插件(其他客户端cursor等类似) 描述一句话,即可以将本地的一个目录下所有的知识文件导入到PolarDB中,然后就可以进行知识问答,具体如下

知识库建立

  • 问题:将目录/Users/zhengmaozhou/code/mcp/test/proxy 中的文件导入到PolarDB中,形成知识库;

  • 结果:成功将文件导入到知识库中,并告知导入了13个文件和163个条目;

image.png

知识问答

  • 有MCP Server和知识库时(知识库的内容为PolarDB的代理介绍)

    • 问题:介绍下PolarDB代理的全局一致性原理

    • 结果:把PolarDB的全局一致性功能都给列出来了,相比于直接让模型回答,明显解决了大模型幻觉的问题。

image.png

问答系统原理说明

组件说明

  • PolarDB MySQL实例

    • AI节点:PolarDB for AI是PolarDB MySQL版的分布式机器学习组件,内置多种AI大模型。您无需手动将PolarDB中的数据同步至其他AI平台,便可直接通过SQL语句调用内置的AI大模型来完成复杂的分析任务。此外,PolarDB for AI还支持通过SQL语句来构建自定义模型和加载外部模型,本文主要使用了AI节点的文本向量化能力;

    • IMCI节点:PolarDB MySQL的列存节点,本文主要使用了列存节点的向量存储和检索召回功能;

  • PolarDB MCP Server 提供了下面两个tools

    • import_doc:读取本地目录的所有文件,然后进行文本切片分割,并通过polardb AI节点进行向量化,最后存储到polardb的IMCI节点中的向量数据库中;

    • search_doc: 将需要搜索文本向量化,最后通过IMCI节点的向量数据库查询匹配到合适的条目;

具体的流程

知识库建立

image.png

检索召回

image.png

总结

从上面的例子可以看出,不管PolarDB MySQL兼容MySQL语法的SQL执行功能,还是自身OLAP和AI等特有的功能,通过MCP 协议暴漏给LLM,极大降低了用户的使用成本,为后续可能的DB-Agent智能体实现更加智能化能力提供可能。

PolarDB MCP获取/部署

  • Github仓库:https://github.com/aliyun/alibabacloud-polardb-mcp-server

  • 阿里云百炼

    • PolarM:  https://bailian.console.aliyun.com/?tab=mcp#/mcp-market/detail/polardb-mysql

    • PolarPG: https://bailian.console.aliyun.com/?tab=mcp#/mcp-market/detail/polardb-postgresql

  • 阿里云函数计算MCP

    • PolarM: https://cap.console.aliyun.com/template-detail?template=258

    • PolarPG:https://cap.console.aliyun.com/create-project?template=259

  • pypi

    • PolarM: https://pypi.org/project/polardb-mysql-mcp-server/

    • PolarPG:https://pypi.org/project/polardb-postgresql-mcp-server/


文章转载自PolarDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论