电气工程命名实体识别服务

提供针对电气工程领域的命名实体识别服务,支持RESTful API和MCP协议两种访问方式,适用于电气工程领域的文本分析和信息提取。

  • by di37
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 di37/nlp-fastapi-mcp-server

使用说明

电气NER API和MCP服务

该项目为电气工程领域专门定制的命名实体识别(NER)提供服务。它既可以作为标准的RESTful API访问,也可以作为模型上下文协议(MCP)服务访问,从而可以轻松地集成到各种工作流中。

特性

  • 双接口:可通过标准RESTful API和作为模型上下文协议(MCP)服务访问。
  • 高性能:使用FastAPI和Uvicorn构建,用于快速、异步的请求处理。
  • 专业NER模型:采用专为电气工程领域量身定制的微调NER模型。
  • 无缝MCP集成:将核心NER功能作为MCP服务公开,以便与代理AI系统一起使用。

API文档

API提供了以下端点:

GET /

根终结点,用于验证服务是否正在运行。

  • 成功响应(200):
    {
      "status": "running",
      "timestamp": "2023-10-27T10:00:00.000Z",
      "service": "Electrical NER API",
      "version": "1.0.0"
    }
    

GET /health

基本健康检查终点。

  • 成功响应(200):
    {
      "status": "healthy",
      "timestamp": "2023-10-27T10:00:00.000Z",
      "service": "Electrical NER API",
      "version": "1.0.0"
    }
    

GET /all_entities

检索模型可以识别的所有可能实体组的列表。

  • 成功响应(200):
    [
      "COMPONENT",
      "DESIGN_PARAM",
      "MATERIAL",
      "EQUIPMENT",
      "TECHNOLOGY",
      "SOFTWARE",
      "STANDARD",
      "VENDOR",
      "PRODUCT"
    ]
    

POST /predict

从提供的输入文本中提取实体。

  • 请求正文:

    {
      "text": "The LM358 operational amplifier from Texas Instruments needs a dual power supply."
    }
    
  • 成功响应(200):

    {
      "success": true,
      "message": "Entities detected successfully",
      "entities": [
        {
          "entity_group": "PRODUCT",
          "word": "LM358"
        },
        {
          "entity_group": "COMPONENT",
          "word": "operational amplifier"
        },
        {
          "entity_group": "VENDOR",
          "word": "Texas Instruments"
        },
        {
          "entity_group": "DESIGN_PARAM",
          "word": "dual power supply"
        }
      ]
    }
    
  • 错误响应(500):

    {
      "detail": "Error message explaining the failure."
    }
    

MCP(模型上下文协议)集成

该服务使用 fastapi-mcp 将其核心功能作为MCP操作公开。这允许AI代理或其他MCP兼容系统直接调用NER函数作为工具。

暴露的操作

  • extract_entities:对应于 POST /predict 终点。接受文本输入并返回提取的实体。
  • get_all_entities:对应于 GET /all_entities 终点。返回所有可能的实体类型的列表。

设置和安装

  1. 克隆存储库:

    git clone https://github.com/di37/nlp-fastapi-mcp-server.git
    cd nlp-fastapi-mcp-server
    
  2. 创建并激活虚拟环境:

    python -m venv .venv
    source .venv/bin/activate  # On Windows, use `.venv\Scripts\activate`
    
  3. 安装依赖项:

    pip install -r requirements.txt
    

运行应用程序

若要启动API服务器,请运行以下命令:

python api_mcp.py

服务器将在以下时间可用 http://0.0.0.0:5152.

MCP配置

要从MCP客户端(如另一个AI代理)连接到此服务,请使用以下配置:

对于风帆:

{
    "mcpServers": {
        "electrical-ner-mcp":{
            "serverUrl": "http://localhost:5152/mcp"
        }
    }
}

对于光标:

{
    "mcpServers": {
        "electrical-ner-mcp":{
            "url": "http://localhost:5152/mcp",
            "transport": "streamable-http"
        }
    }
}

Claude Desktop仍然不支持url MCP服务器。一旦支持,将更新文档。