项目简介

Semiont是一个先进的语义知识平台,旨在通过自然语言处理(NLP)、实体识别和关系提取技术,将非结构化文档转换为互联的语义网络。它为AI代理和RAG(检索增强生成)系统构建丰富的上下文理解,并通过其集成的Model Context Protocol (MCP) 服务器模块,以标准化的方式为LLM客户端提供这些上下文信息和功能。

主要功能点

  • 知识图谱构建: 自动从非结构化内容中提取实体和关系,构建互联的知识图谱。
  • 文档与内容管理: 提供文档的创建、存储、检索、更新和删除功能,支持不同内容类型。
  • 上下文生成: 为LLM客户端生成与文档、选择和知识图谱关联的丰富上下文信息,支持AI模型进行推理和信息检索。
  • 语义搜索与发现: 支持基于实体类型、参考标签和文本相似度的文档搜索和上下文发现。
  • 选择与引用管理: 允许用户在文档中创建文本选择(如高亮、批注),并将这些选择解析为知识图谱中的引用,建立文档间的语义链接。
  • AI辅助功能: 支持AI辅助的内容生成(例如根据选定文本生成新文档)和智能选择检测,提升知识管理的智能化水平。
  • MCP服务器: 核心功能之一,通过JSON-RPC协议提供标准的上下文服务,包括托管资源、注册工具以及定义和渲染Prompt模板,用于与LLM客户端通信。
  • 认证与授权: 提供基于Google OAuth的用户认证机制,并支持管理用户权限(如管理员角色)。

安装步骤

Semiont项目需要Node.js (18+), npm (9+), 以及Docker或Podman (用于本地PostgreSQL容器) 环境。

  1. 克隆仓库:
    git clone https://github.com/The-AI-Alliance/semiont.git
    cd semiont
  2. 安装依赖并构建CLI: 这一步将安装所有项目依赖,构建CLI工具,并将其安装到您的系统路径中。
    export SEMIONT_REPO=$(pwd)      # 设置仓库路径
    npm install                     # 安装所有工作区依赖
    npm run build                   # 构建包和CLI
    npm run install:cli             # 全局安装semiont CLI
  3. 创建您的项目: 切换到您希望创建项目的新目录,然后使用'semiont init'命令初始化项目。
    cd ..                           # 返回上一级目录
    mkdir my_semiont_project        # 创建项目目录
    cd my_semiont_project           # 进入项目目录
    export SEMIONT_ROOT=$(pwd)      # 设置项目根路径
    export SEMIONT_ENV=local        # 设置为本地开发环境
    
    # 初始化项目,生成配置文件
    semiont init --name "my-project" --environments "local,staging,production"
    # 这会创建:
    # ✅ semiont.json - 主项目配置
    # ✅ environments/*.json - 环境特定的配置
  4. 本地开发环境启动: 在项目根目录(例如'my_semiont_project')中,使用'semiont start'命令启动所有服务,包括后端API、前端、本地PostgreSQL和文件存储。
    # 在您的项目根目录 (my_semiont_project) 中运行
    semiont start -e local --service all
    这将启动包括MCP服务器在内的所有核心服务,为本地开发提供完整的运行环境。 有关更详细的本地开发设置,请参阅'docs/LOCAL-DEVELOPMENT.md'文档。

服务器配置(MCP客户端使用)

MCP客户端需要准确的配置信息才能与Semiont MCP服务器建立连接并进行通信。以下是JSON格式的配置示例,以及每个参数的详细说明,便于MCP客户端集成:

{
  "serverName": "semiont-mcp-server-local",
  "command": "semiont",
  "args": [
    "start",
    "-e",
    "local",
    "--service",
    "mcp-server",
    "--force-quiet-mode",
    "--keep-alive"
  ],
  "auth": {
    "type": "oauth2",
    "config": {
      "endpoint": "http://localhost:4000/api/tokens/google",
      "clientId": "<您的Google OAuth客户端ID>",
      "clientSecret": "<您的Google OAuth客户端密钥>",
      "scope": "openid email profile",
      "grantType": "authorization_code",
      "tokenRefreshEndpoint": "http://localhost:4000/api/tokens/mcp-generate",
      "tokenExchangeStrategy": "refresh_token_for_mcp"
    }
  }
}

配置参数说明:

  • '"serverName"': MCP服务器的唯一标识名称。建议采用格式'semiont-mcp-server-<环境名>',以便于区分不同环境的服务器实例。
  • '"command"': 用于启动Semiont MCP服务器的CLI命令。Semiont使用其内置的'semiont'命令行工具来管理和启动服务。
  • '"args"': 传递给'command'的命令行参数列表,用于指定MCP服务器的启动方式和配置。
    • '"start"': Semiont CLI的子命令,用于启动服务。
    • '"-e", "local"': 指定要操作的环境为'local'。您可以根据实际部署情况更改为其他环境名称(如'staging'、'production')。
    • '"--service", "mcp-server"': 指定要启动的服务类型为'mcp-server',这是Semiont平台提供的Model Context Protocol服务器组件。
    • '"--force-quiet-mode"': 强制CLI以安静模式运行。由于MCP客户端通过标准输入/输出进行JSON-RPC通信,此选项可确保CLI不会输出额外信息干扰协议数据流。
    • '"--keep-alive"': 保持'semiont' CLI进程在服务启动后继续运行。MCP服务器是一个长期运行的服务,需要CLI进程维持其生命周期。
  • '"auth"': 认证配置,描述了MCP客户端如何获取与Semiont MCP服务器交互所需的认证令牌。
    • '"type": "oauth2"': 指定认证类型为OAuth2。Semiont使用OAuth2协议进行用户认证和令牌管理。
    • '"config"': 包含OAuth2认证流程的具体配置信息。
      • '"endpoint": "http://localhost:4000/api/tokens/google"': 这是Semiont后端API中用于启动Google OAuth认证流程的端点。MCP客户端会向此端点发送请求以获取初始访问令牌。
      • '"clientId": "<您的Google OAuth客户端ID>"': 从Google Cloud Console获取的,用于您Semiont应用的OAuth客户端ID。
      • '"clientSecret": "<您的Google OAuth客户端密钥>"': 从Google Cloud Console获取的,用于您Semiont应用的OAuth客户端密钥。
      • '"scope": "openid email profile"': 请求的OAuth权限范围,通常包括用户的邮箱和个人资料信息。
      • '"grantType": "authorization_code"': 指定OAuth2的授权类型为授权码模式。
      • '"tokenRefreshEndpoint": "http://localhost:4000/api/tokens/mcp-generate"': 这是Semiont后端API中用于生成MCP服务器专用的长期刷新令牌的端点。客户端会使用之前获得的短期访问令牌在此端点交换一个专为MCP服务器设计的长期令牌。
      • '"tokenExchangeStrategy": "refresh_token_for_mcp"': 指示MCP客户端在获取访问令牌后,应进一步调用'tokenRefreshEndpoint'来获取并使用MCP服务器所需的特殊长期刷新令牌。

基本使用方法

  1. 启动MCP服务器: 在您的项目根目录(例如'my_semiont_project')中,打开终端并执行以下命令来启动MCP服务器:

    semiont start -e local --service mcp-server --force-quiet-mode --keep-alive

    此命令会启动Semiont的MCP服务器组件,它将以静默模式运行,并通过标准输入/输出(Stdio)等待JSON-RPC协议的客户端连接。

  2. 与MCP客户端集成: 配置您的MCP客户端(例如,一个与LLM交互的代理、一个支持MCP协议的IDE插件、或是一个自定义应用程序),使其使用上面提供的JSON配置信息连接到运行中的Semiont MCP服务器。客户端将通过JSON-RPC协议向Semiont MCP服务器发送请求,以访问托管的资源(如文档内容、知识图谱数据)、调用注册的工具或获取Prompt模板,从而为LLM提供丰富和实时的上下文信息。

信息

分类

AI与计算