项目简介
Human Use 提供了一个基于 Model Context Protocol (MCP) 的服务器实现,旨在弥合 AI 与人类智能之间的差距。它通过集成 Rapidata API,允许大型语言模型 (LLM) 调用工具,将特定任务(如数据标注、内容比较、排名)委派给真实的人类完成,并将结果反馈给 LLM。
主要功能点
本项目提供的 MCP 服务器暴露了以下核心工具,供 LLM 客户端调用:
- 获取人类自由文本回答 (get_free_text_responses): 向人类提问并收集他们的简短自由文本回答,支持对指定图片或默认图片的回答。
- 人工图片分类 (get_human_image_classification): 要求人类对指定目录中的图片进行分类,提供预设的答案选项,并返回分类结果的比例。
- 人工图片排名 (get_human_image_ranking): 基于人类偏好对指定目录中的图片进行两两比较并排名,返回图片的 Elo 分数排名。
- 人工文本比较 (get_human_text_comparison): 要求人类比较两段文本并选择他们偏好的那一个,返回比较结果。
这些工具使得 LLM 能够利用人类的感知和判断能力完成仅靠 AI 难以胜任的任务。
安装步骤
要设置并运行 Human Use MCP 服务器,请遵循以下步骤:
- 克隆仓库: 将 Human Use 仓库克隆到本地。
git clone https://github.com/RapidataAI/human-use.git - 配置环境:
- 在 'human-use' 仓库的根目录创建一个 '.env' 文件。
- 参考 '.env.example' 文件,填写必要的环境变量,特别是 Rapidata API 相关的配置以及 'PATH_TO_RAPIDATA_MCP'(需要填写 'rapidata_human_api.py' 文件的绝对路径)。
- 安装 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"'
- 创建并激活虚拟环境: 在 'human-use' 仓库目录中执行。
uv venv # Unix/macOS source .venv/bin/activate # Windows .venv\Scripts\activate - 安装依赖: 在激活的虚拟环境中执行。
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 服务器。
- 运行 Streamlit 应用: 在激活的虚拟环境中,进入 'human-use' 仓库目录并运行:
streamlit run app.py - 在浏览器中交互: Streamlit 应用将在浏览器中打开一个聊天界面。您可以在此界面中输入自然语言请求,例如 "请问人类对这几张图片有什么看法?请对它们进行分类。" (假设您已配置并指明了图片路径)。
- LLM 调用工具: 后端的 MCP 客户端(由 'app.py' 启动)会使用 LLM(如 Claude)来处理您的请求。如果 LLM 判断需要人工协助,它将识别并调用 Human Use MCP 服务器暴露的相应工具(如 'get_human_image_classification'),并通过 MCP 协议发送调用请求。
- 服务器处理请求: MCP 服务器接收到工具调用请求后,会使用 Rapidata API 将任务发送给真实的人类工作者。
- 获取并返回结果: 人类完成任务后,Rapidata API 会返回结果。MCP 服务器将结果封装并通过 MCP 协议返回给 MCP 客户端。
- LLM 处理结果: MCP 客户端将人工处理的结果作为工具调用的返回信息提供给 LLM。LLM 会根据这些结果生成最终的响应给用户。
通过这种方式,AI 能够无缝地集成人类的判断和数据处理能力。
信息
分类
AI与计算