Proyecto Tfg

Proyecto Tfg

🚀 数据空间与生成式人工智能的互操作性

本项目旨在设计并实现一种架构,让语言模型能通过 Model Context Protocol (MCP) 与数据空间交互,保障操作的安全性、模块化与可扩展性,避免语言模型直接访问数据库。

项目信息

属性 详情
日期 2025年4月11日
作者 何塞·阿尔onso·鲁伊斯
导师 若奥琴尼诺·萨尔瓦丘阿
标题 设计并实现数据空间与生成式人工智能之间的互操作性

🚀 快速开始

本项目主要聚焦于设计和实现一个架构,使语言模型(LLM)能借助 Model Context Protocol (MCP) 与数据空间进行交互。核心在于让客户(语言模型)不直接访问数据库,而是通过 MCP 服务器安全、模块化且可扩展地完成所有操作。

✨ 主要特性

  • 功能分离:严格分离语义处理(LLM)和数据访问(MCP)。
  • 安全合规:符合 MCP 设计,LLMs 只能通过工具 (“tools”) 访问数据。
  • 上下文丰富:使用包含从 MCP 获取的先前信息的丰富上下文提示。
  • 架构优良:具备模块化、可扩展和可通过日志进行跟踪的架构。

🧠 技术细节

🧱 当前架构

主要组件:

  • 🧠 客户端 LLM (cliente_llm.py)
    • 执行自然语言问题,使用 TinyLlama - 1.1B - Chat - v1.0 模型。
    • 将问题转换为 SQL 查询,通过 MCP 服务器查询数据。
    • 解释返回结果并构建解释性答案,同时将整个过程记录在日志文件 logs/cliente_llm.log 中。
  • 🔗 MCP 服务器 (main.py)
    • 基于 FastAPI 开发,连接到本地基于 DuckDB 的数据空间。
    • 通过 REST 端点公开 MCP 工具:
      • /tool/consulta:执行 SQL 查询。
      • /tool/info/productos:返回不同产品的列表。
      • /tool/info/fechas:返回注册的最小和最大日期范围。
  • 📂 数据空间
    • 在本地使用 DuckDB (lake.duckdb) 实现,包含 iceberg_space.ventas 表。
    • 表的列包括:fecha (DATE)、producto (TEXT)、cantidad (INTEGER)、precio (DOUBLE),数据从 load_data.py 加载。

🔒 基本原则和关键决策

  • 严格分离语义处理(LLM)和数据访问(MCP),确保系统的安全性和可维护性。
  • 遵循 MCP 设计,使得 LLMs 只能通过工具 (“tools”) 访问数据,增强数据访问的规范性。
  • 运用丰富的上下文提示,包含从 MCP 获取的先前信息,提高语言模型的处理效果。
  • 构建模块化、可扩展且可通过日志进行跟踪的架构,方便系统的后续开发和维护。

📈 未来扩展性

  • 数据库替换:将来计划用 Apache Iceberg 或 Trino/Presto 替换 DuckDB。
  • 模型升级:考虑用更高级的 LLM 或 GPU 部署的模型替换 TinyLlama。
  • 架构演进:发展为更先进的 RAG(检索增强生成)架构,LLM 先通过基于从 MCP 生成的嵌入的向量存储进行内容检索,再将恢复的内容作为上下文传递给模型以获得更准确的答案。
  • 工具集成:可以集成新的 MCP 工具,如 /tool/info/esquema/tool/info/documentacion/tool/descargar/tool/upload - pdf

📜 结论

本项目已建立了一个坚实、功能强大且符合要求的基础。系统实现了语言模型与数据空间之间的完整交互,符合 MCP 原理,为未来向更高级的 RAG 架构发展铺平了道路。

  • 0 关注
  • 0 收藏,15 浏览
  • system 提出于 2025-09-24 07:45

相似服务问题

相关AI产品