急语箱MCP服务器 - 场景识别服务(准确率95%+)
Project description
急语箱MCP服务器 - 智能场景与人物识别服务
基于MCP协议的沟通场景深度分析服务 | 识别准确率≥95% | 多模态支持
🎯 项目定位
急语箱MCP服务器是一个专注于沟通场景深度分析的智能服务,能够:
核心能力
-
🔍 场景识别(4类场景,≥95%准确率)
- 职场(Workplace)
- 恋爱(Love)
- 家庭(Family)
- 社交(Social)
-
👥 人物识别
- 识别沟通双方(发送方、接收方)
- 识别参与人(多人场景)
- 识别角色(领导、同事、对象、父母等)
-
🔗 关系分析
- 关系类型(上下级、情侣、家人、朋友等)
- 亲密度评估
- 权力结构分析
- 正式程度判断
-
😊 态度判断
- 情绪识别(愤怒、开心、担心、不满等)
- 态度判断(支持、反对、中立、批评等)
- 语气分析(正式、随意、温暖、冷漠等)
- 强度评估
-
🎯 决策要素提取
- 关键信息提取
- 冲突点识别
- 需求识别
- 风险评估
-
⚠️ 不确定性处理
- 明确标注"不确定"
- 单独存放低置信度结果
- 提供澄清建议
性能指标
| 指标 | 目标值 |
|---|---|
| 场景识别准确率 | ≥95% |
| 人物识别准确率 | ≥90% |
| 关系分析准确率 | ≥85% |
| 态度判断准确率 | ≥80% |
| 综合准确率 | ≥90% |
| 响应时间 | <2秒 |
| 并发处理 | ≥100 QPS |
🚀 快速开始
1. 本地测试
cd mcp_project
# 安装依赖
pip install -r requirements-mcp.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填写华为云API密钥
# 启动服务
python -m mcp_server.main
# 测试API
curl http://localhost:8000/health
2. Docker测试
cd mcp_project
# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f mcp-server
# 测试API
curl http://localhost:8000/health
3. 第一个API调用
# 综合分析沟通场景
curl -X POST http://localhost:8000/api/v1/analyze \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key" \
-d '{
"text": "领导批评我业绩不好,说需要改进",
"analysis_options": {
"include_participants": true,
"include_relationships": true,
"include_attitudes": true,
"include_decision_factors": true
}
}'
返回示例:
{
"analysis_id": "analysis_20260316_103000",
"scenario": {
"type": "workplace",
"confidence": 0.98,
"uncertain": false
},
"participants": [
{
"id": "person_1",
"role": "领导",
"position": "发送方",
"confidence": 0.95
},
{
"id": "person_2",
"role": "下属/我",
"position": "接收方",
"confidence": 0.90
}
],
"relationships": [
{
"type": "上下级",
"power_balance": "领导主导",
"confidence": 0.95
}
],
"attitudes": [
{
"person_id": "person_1",
"emotion": "不满",
"stance": "批评",
"tone": "严肃",
"confidence": 0.90
}
],
"overall_confidence": 0.94,
"uncertain_items": []
}
🔔 实时事件推送(SSE)
服务器支持 Server-Sent Events (SSE) 实时事件推送,可以订阅服务器事件流,实时接收场景识别结果和系统通知。
快速体验
// JavaScript 客户端
const eventSource = new EventSource('http://localhost:8000/events');
// 监听场景识别完成事件
eventSource.addEventListener('scenario.recognized', (e) => {
const data = JSON.parse(e.data);
console.log('场景:', data.scenario);
console.log('置信度:', data.confidence);
console.log('文本:', data.text);
});
// 监听系统通知
eventSource.addEventListener('system.notification', (e) => {
const data = JSON.parse(e.data);
console.log('通知:', data.title, '-', data.message);
});
主要端点
| 端点 | 方法 | 描述 |
|---|---|---|
/events |
GET | 连接SSE事件流 |
/events/scenario/recognized |
POST | 触发场景识别事件 |
/events/notify |
POST | 发送系统通知 |
/events/test |
POST | 测试SSE连接 |
测试SSE
# 测试SSE连接
curl -X POST http://localhost:8000/events/test
# 触发场景识别事件
curl -X POST http://localhost:8000/events/scenario/recognized \
-H "Content-Type: application/json" \
-d '{
"scenario": "workplace",
"confidence": 0.95,
"text": "老板让我加班到很晚"
}'
# 发送系统通知
curl -X POST http://localhost:8000/events/notify \
-H "Content-Type: application/json" \
-d '{
"level": "info",
"title": "系统通知",
"message": "场景识别服务已启动"
}'
详细文档
查看 SSE_USAGE.md 获取完整的SSE使用文档,包括:
- 所有事件类型说明
- 客户端集成示例(JavaScript、Python)
- 使用场景和最佳实践
- 故障排除指南
📡 MCP工具
工具1: analyze_communication_scenario
综合分析沟通场景(推荐使用)
POST /mcp/tools/analyze_communication_scenario
{
"text": "领导批评我业绩不好,说需要改进",
"image_data": "base64_image...", // 可选
"analysis_options": {
"include_participants": true,
"include_relationships": true,
"include_attitudes": true,
"include_decision_factors": true
}
}
工具2: identify_scenario
单独识别场景类型
POST /mcp/tools/identify_scenario
{
"text": "对象生气了,怎么哄?"
}
工具3: identify_participants
识别参与人和角色
POST /mcp/tools/identify_participants
{
"text": "妈妈说太晚回家不安全",
"scenario_hint": "family"
}
工具4: analyze_relationships
分析人物关系
POST /mcp/tools/analyze_relationships
{
"text": "领导找我和小王谈项目",
"participants": [
{"id": "p1", "role": "领导"},
{"id": "p2", "role": "我"},
{"id": "p3", "role": "小王"}
]
}
工具5: analyze_attitudes
分析态度和情绪
POST /mcp/tools/analyze_attitudes
{
"text": "老板说这次做得不错,继续努力",
"focus_person": "p1"
}
工具6: extract_decision_factors
提取决策要素
POST /mcp/tools/extract_decision_factors
{
"text": "客户说价格太高,需要考虑一下",
"scenario": "workplace"
}
🏗️ 项目结构
mcp_project/
├── mcp_server/ # MCP服务器核心代码
│ ├── main.py # FastAPI应用入口
│ ├── mcp_protocol/ # MCP协议实现
│ ├── analyzers/ # 识别分析器 ⭐
│ │ ├── scenario_recognizer.py # 场景识别器
│ │ ├── participant_recognizer.py # 人物识别器
│ │ ├── relationship_analyzer.py # 关系分析器
│ │ ├── attitude_analyzer.py # 态度分析器
│ │ └── uncertainty_handler.py # 不确定性处理器
│ ├── config/ # 配置管理
│ ├── core/ # 核心业务逻辑(复用)
│ └── services/ # 外部服务
├── tests/ # 测试文件夹 ⭐
│ ├── data/ # 测试数据
│ │ └── test_data_2000.json # 主测试数据集(8000样本)
│ ├── tools/ # 测试工具
│ │ ├── run_8000_test.py # 准确率测试
│ │ ├── validate_test_data.py # 数据验收
│ │ └── generate_sample_test_data.py # 数据生成
│ ├── results/ # 测试结果
│ ├── reports/ # 测试报告
│ ├── docs/ # 测试文档
│ │ ├── TEST_DATA_STANDARD.md # 数据标准
│ │ └── TEST_DATA_QUICK_REFERENCE.md # 快速参考
│ └── README.md # 测试说明
├── k8s/ # Kubernetes配置
├── monitoring/ # 监控配置
├── scripts/ # 部署脚本
└── docs/ # 项目文档
├── MCP_REDIGN.md # 重新设计方案 ⭐
├── MCP_SERVICE_DESIGN.md # 架构设计
└── README_DEPLOY.md # 部署指南
🧪 测试相关
所有测试相关内容已整理到 tests/ 文件夹:
- 测试数据:
tests/data/test_data_2000.json(8000个真实样本) - 测试工具:
tests/tools/(6个测试脚本) - 测试报告:
tests/reports/(准确率测试报告) - 测试文档:
tests/docs/(数据标准和使用指南)
查看 tests/README.md 了解测试详情。
📊 应用场景
1. 对话分析系统
- 分析聊天记录的场景和人物关系
- 理解对话的情感和态度
- 提取关键决策要素
2. CRM系统
- 自动分析客户沟通场景
- 识别客户关系和态度
- 提供决策支持
3. 智能客服
- 理解客户问题的场景
- 识别客户情绪和态度
- 提供个性化响应建议
4. 社交媒体分析
- 分析社交媒体内容的场景
- 识别人物关系和态度
- 舆情监控和分析
5. 企业协作工具
- 分析工作沟通场景
- 识别团队关系动态
- 提升沟通效率
🔬 技术实现
场景识别算法(≥95%准确率)
采用三层识别架构:
-
精确关键词匹配(100%准确,覆盖60%)
- 预定义4类场景的关键词词典
- 精确匹配,零误差
-
上下文模式匹配(98%准确,覆盖25%)
- 使用正则表达式匹配上下文模式
- 结合语序和语境
-
LLM辅助判断(90%准确,覆盖15%)
- 使用华为盘古大模型
- 处理复杂和模糊场景
人物识别算法
- 角色词典匹配: 预定义4类场景的角色词典
- 代词分析: 识别"我"、"你"、"他"等人称代词
- 位置判断: 判断人物在沟通中的位置(发送方/接收方)
- 置信度评估: 基于证据强度计算置信度
关系分析算法
- 关系类型推断: 基于角色组合推断关系
- 亲密度评估: 基于称呼和语气判断亲密度
- 权力结构分析: 识别上下级、长辈晚辈等权力关系
- 正式程度判断: 分析语言正式程度
态度分析算法
- 情绪识别: 基于情绪词典和语义分析
- 态度判断: 识别支持、反对、中立等态度
- 语气分析: 识别正式、随意、温暖、冷漠等语气
- 强度评估: 评估情绪和态度的强度
不确定性处理
- 置信度阈值: 默认0.7,低于阈值标记为"不确定"
- 明确标注: 在结果中标注"uncertain"字段
- 单独存放: 将不确定的结果放入"uncertain_items"数组
- 澄清建议: 提供需要澄清的问题列表
📖 文档
核心文档
- MCP_REDIGN.md - 重新设计方案(⭐ 推荐)
- MCP_SERVICE_DESIGN.md - 完整架构设计
- README_DEPLOY.md - 部署指南
- PROJECT_STRUCTURE.md - 文件结构说明
快速开始
- QUICKSTART.md - 5分钟快速开始
- DEVELOPMENT_CHECKLIST.md - 开发检查清单
🎯 与原方案的区别
| 维度 | 原方案 | 新方案 |
|---|---|---|
| 核心功能 | 生成回复建议 | 识别分析场景、人物、关系、态度 |
| 主要输出 | 文本建议 | 结构化数据 |
| 准确率要求 | 未明确 | 场景≥95%、综合≥90% |
| 不确定性 | 隐式处理 | 明确标注或单独存放 |
| 应用场景 | 对话助手 | 决策支持系统 |
💰 成本估算
月度成本约 ¥500,详见 docs/MCP_SERVICE_DESIGN.md
📞 技术支持
- 技术支持: support@jiyuxiang.com
- 项目地址: https://github.com/jiyuxiang/mcp-server
- 文档地址: https://docs.jiyuxiang.com
📝 版本信息
- 版本: 2.0.0(重新设计)
- 创建日期: 2026-03-16
- 状态: 框架已完成,待开发核心识别引擎
许可证: Copyright © 2026 急语箱智能体. All rights reserved.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jyu_mcp_server-1.2.1.tar.gz.
File metadata
- Download URL: jyu_mcp_server-1.2.1.tar.gz
- Upload date:
- Size: 44.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
071755e71b9688734ba9220317d18259b106a903e1f451ad3848e4b6927a6a84
|
|
| MD5 |
a4c62ed6ad00b91444c7c9a68cd95f3a
|
|
| BLAKE2b-256 |
00f02831d6bc29869e330e2aca8ad754f9e8a4856b8292123fb73f8bc3e6ecf2
|
File details
Details for the file jyu_mcp_server-1.2.1-py3-none-any.whl.
File metadata
- Download URL: jyu_mcp_server-1.2.1-py3-none-any.whl
- Upload date:
- Size: 36.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62a826bc1a2e8a4ad67cf3da9f88598ee6c761f24ba4c6a8e92c45ab63851d91
|
|
| MD5 |
58b683a9e47452cab27db58201e3eb94
|
|
| BLAKE2b-256 |
ac7384ed1b97f14ba99cd9358814756c2dba6abeb03b16d2d57927127142b1e7
|