项目简介

本项目是VTT创新数据去重和聚合解决方案的一部分,其核心是一个基于 Model Context Protocol (MCP) 构建的后端服务。该服务器旨在以标准化的方式向LLM客户端(如自动化代理)提供对创新和组织实体数据的访问和管理能力,从而支持知识图谱的构建和维护。

主要功能点

  • 创新实体管理: 允许LLM根据名称和描述解析或创建规范的创新实体,支持基于向量相似性和上下文信息的匹配。
  • 组织实体管理: 使用VAT ID作为主要标识符,解析或创建组织实体,并管理其别名。
  • 关系构建: 将原始数据中的“提及记录”关联到规范的组织-创新关系上,保留完整的出处信息。
  • 实体搜索: 支持基于语义相似性搜索创新实体。
  • 实体去重与合并: 提供查找同名/相似创新和组织,并将其合并为单一规范实体的能力。
  • 时间线查询: 获取特定创新的所有提及记录的时间线,展示其发展历程。
  • 数据库集成: 后端连接至Memgraph图数据库存储实体和关系。
  • AI能力集成: 利用Azure OpenAI生成实体嵌入向量,支持语义搜索和匹配。

安装步骤

  1. 安装前置依赖: 确保您的系统已安装 'curl' 和 'docker compose'。
  2. 安装 uv 和 bun:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    curl -fsSL https://bun.sh/install | bash
  3. 克隆仓库:
    git clone https://github.com/cmakafui/vtt-challenge.git
    cd vtt-challenge/pipeline
  4. 安装项目依赖:
    uv sync
    bun install
  5. 启动依赖服务 (Memgraph):
    docker compose up -d
  6. 准备数据: 根据项目文档准备输入数据(例如,运行 'innovations_analysis.py' 生成需要去重的数据)。请参考项目'docs/SOLUTION.md''pipeline/README.md'获取详细数据准备步骤。
  7. 配置Azure OpenAI密钥: 在项目根目录或'data/keys/'下创建或编辑'azure_config.json'文件,填入您的Azure OpenAI配置信息,特别是用于embeddings和GPT模型的配置。

服务器配置

MCP客户端需要知道如何启动或连接到MCP服务器。对于此服务器,典型的配置信息如下:

  • 服务器名称 (Server Name): 'VTTInnovationEntityServer' (服务器代码中定义)
  • 启动命令 (Command): 用于启动服务器的可执行命令列表,例如 '["uv", "run", "fastmcp", "run"]'
  • 命令参数 (Args): 传递给启动命令的参数列表,例如 '["mcp/innovation_entity_server.py", "--transport", "sse", "--port", "9000"]'
    • 第一个参数 '"mcp/innovation_entity_server.py"' 是服务器脚本的路径。
    • '"--transport sse"' 指定使用Server-Sent Events作为传输协议。
    • '"--port 9000"' 指定服务器监听的端口号。
  • 传输协议 (Transport): 'sse' (或 'stdio', 'websocket',取决于启动参数)
  • 端口 (Port): '9000' (如果使用网络传输协议)
  • 工作目录 (CWD): 通常是项目的 'pipeline' 目录,以便能找到服务器脚本。

您的MCP客户端框架会使用这些信息来启动服务器并建立连接。

基本使用方法

  1. 启动Memgraph数据库: 确保Docker服务已启动 ('docker compose up -d')。
  2. 启动MCP服务器: 在'pipeline'目录下运行服务器启动命令,例如:
    uv run fastmcp run mcp/innovation_entity_server.py --transport sse --port 9000
    服务器将开始监听并在控制台输出日志。
  3. 运行MCP客户端/LLM代理: 运行您的LLM代理或客户端应用程序。例如,运行创新去重代理:
    bun run agents/innovation-curator-agent.ts results.json # results.json是分析步骤生成的输入文件
    这个代理会连接到运行中的MCP服务器,调用服务器提供的工具(如 'resolve_or_create_canonical_innovation', 'add_mention_to_link' 等)来处理数据和构建知识图谱。
  4. 交互式使用 (可选): 可以使用集成了MCP客户端的工具(如示例中的 'streamlit_app.py')与服务器进行交互。

服务器将处理来自客户端的JSON-RPC请求,执行相应的工具逻辑,并返回结果。

信息

分类

AI与计算