项目简介

Human Use 提供了一个基于 Model Context Protocol (MCP) 的服务器实现,旨在弥合 AI 与人类智能之间的差距。它通过集成 Rapidata API,允许大型语言模型 (LLM) 调用工具,将特定任务(如数据标注、内容比较、排名)委派给真实的人类完成,并将结果反馈给 LLM。

主要功能点

本项目提供的 MCP 服务器暴露了以下核心工具,供 LLM 客户端调用:

  1. 获取人类自由文本回答 (get_free_text_responses): 向人类提问并收集他们的简短自由文本回答,支持对指定图片或默认图片的回答。
  2. 人工图片分类 (get_human_image_classification): 要求人类对指定目录中的图片进行分类,提供预设的答案选项,并返回分类结果的比例。
  3. 人工图片排名 (get_human_image_ranking): 基于人类偏好对指定目录中的图片进行两两比较并排名,返回图片的 Elo 分数排名。
  4. 人工文本比较 (get_human_text_comparison): 要求人类比较两段文本并选择他们偏好的那一个,返回比较结果。

这些工具使得 LLM 能够利用人类的感知和判断能力完成仅靠 AI 难以胜任的任务。

安装步骤

要设置并运行 Human Use MCP 服务器,请遵循以下步骤:

  1. 克隆仓库: 将 Human Use 仓库克隆到本地。
    git clone https://github.com/RapidataAI/human-use.git
  2. 配置环境:
    • 在 'human-use' 仓库的根目录创建一个 '.env' 文件。
    • 参考 '.env.example' 文件,填写必要的环境变量,特别是 Rapidata API 相关的配置以及 'PATH_TO_RAPIDATA_MCP'(需要填写 'rapidata_human_api.py' 文件的绝对路径)。
  3. 安装 UV (如果未安装): UV 是一个快速的 Python 包管理器。
    • MacOS/Linux: 'curl -LsSf https://astral.sh/uv/install.sh | sh'
    • Windows: 'powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"'
  4. 创建并激活虚拟环境: 在 'human-use' 仓库目录中执行。
    uv venv
    # Unix/macOS
    source .venv/bin/activate
    # Windows
    .venv\Scripts\activate
  5. 安装依赖: 在激活的虚拟环境中执行。
    uv sync

完成这些步骤后,环境就准备好了。'rapidata_human_api.py' 文件是 MCP 服务器的核心代码。

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

Human Use MCP 服务器设计用于与 MCP 客户端(如 Cursor, LlamaIndex MCP 客户端或本项目提供的 Streamlit 客户端)通信。MCP 客户端需要知道如何启动此服务器进程。

一个 MCP 客户端通常通过一个 JSON 配置文件来管理连接的服务器。对于 Human Use MCP 服务器,客户端配置大致如下:

{
    "mcpServers": {
        "human-use": { // 服务器名称,客户端会用这个名字引用它
            "command": "uv", // 启动服务器的命令,这里使用 uv 来运行脚本
            "args": [
                "--directory", // uv 参数,指定工作目录
                "YOUR_HUMAN_USE_REPO_PATH_HERE", // 请替换为你的 human-use 仓库的绝对路径
                "run", // uv run 命令
                "rapidata_human_api.py" // 要运行的服务器脚本
            ],
            // 可能还包括 env, cwd 等其他配置,具体取决于客户端实现
        }
    }
}

用户需要将上述配置添加到其 MCP 客户端的相应配置文件中(例如 Cursor 的 '~/.cursor/mcp.json'),并将 '"YOUR_HUMAN_USE_REPO_PATH_HERE"' 替换为 'human-use' 仓库在本地文件系统中的实际绝对路径。

配置完成后,MCP 客户端启动时将能通过 Stdio 协议启动 'rapidata_human_api.py' 进程,并与之建立 MCP 连接。

基本使用方法

本项目提供了一个基于 Streamlit 的示例客户端 ('app.py') 来演示如何使用此 MCP 服务器。

  1. 运行 Streamlit 应用: 在激活的虚拟环境中,进入 'human-use' 仓库目录并运行:
    streamlit run app.py
  2. 在浏览器中交互: Streamlit 应用将在浏览器中打开一个聊天界面。您可以在此界面中输入自然语言请求,例如 "请问人类对这几张图片有什么看法?请对它们进行分类。" (假设您已配置并指明了图片路径)。
  3. LLM 调用工具: 后端的 MCP 客户端(由 'app.py' 启动)会使用 LLM(如 Claude)来处理您的请求。如果 LLM 判断需要人工协助,它将识别并调用 Human Use MCP 服务器暴露的相应工具(如 'get_human_image_classification'),并通过 MCP 协议发送调用请求。
  4. 服务器处理请求: MCP 服务器接收到工具调用请求后,会使用 Rapidata API 将任务发送给真实的人类工作者。
  5. 获取并返回结果: 人类完成任务后,Rapidata API 会返回结果。MCP 服务器将结果封装并通过 MCP 协议返回给 MCP 客户端。
  6. LLM 处理结果: MCP 客户端将人工处理的结果作为工具调用的返回信息提供给 LLM。LLM 会根据这些结果生成最终的响应给用户。

通过这种方式,AI 能够无缝地集成人类的判断和数据处理能力。

信息

分类

AI与计算