情绪显示系统

一个跨平台的.NET应用程序,通过小型窗口显示视觉情绪反馈,集成MCP服务器实现AI驱动的情绪分析。

  • by sean-jack
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sean-jack/Agentic-Emotion

使用说明

情绪显示系统

跨平台。NET应用程序,在一个小窗口中显示视觉情绪反馈,与MCP服务器集成,用于在Claude Code对话期间进行AI驱动的情绪分析。

内置Avalonia UI-可在Windows、macOS和Linux上运行。

快速开始

视窗

选项1:使用批处理脚本(推荐)

start-emotion-display.bat

选项2:手动

cd EmotionDisplay.Avalonia\EmotionDisplay.Avalonia
dotnet run

macOS/Linux

选项1:使用Shell脚本(推荐)

cd EmotionDisplay.Avalonia
./start-emotion-display.sh

选项2:手动

cd EmotionDisplay.Avalonia/EmotionDisplay.Avalonia
dotnet run

组件

  1. 情感展示。阿瓦洛尼亚 -跨平台Avalonia UI应用程序(Windows、macOS、Linux)
  2. 情感代理 - .基于关键字的情感分析NET代理
  3. 测试代理 -用于测试的控制台应用程序。网络系统
  4. MCP情感服务器 -使用Claude Code进行人工智能分析的Python MCP服务器
  5. 助手脚本 -批处理(Windows)和shell(macOS/Linux)脚本,便于启动

可用情绪

  • 好奇的🤔
  • 快乐😊
  • 兴奋🤩
  • 体贴的💭
  • 担忧的😟
  • 困惑的😕
  • 自信的😎
  • 有帮助的🤝
  • 分析🔍
  • 创意✨
  • 中性😐 (默认)

安装说明

先决条件

  • .NET 8 SDK 或更高版本(建议Avalonia使用.NET 9)
  • Python 3.9+ (用于MCP服务器集成)
  • 操作系统:Windows 10/11、macOS 10.15+或带X11/Wayland的Linux

步骤1:安装。NET依赖关系

EmotionDisplay应用程序使用Avalonia和。净值8+。确保你有。NET SDK已安装:

dotnet --version

如果未安装,请从下载 dotnet.microsoft.com.

步骤2:安装Python MCP服务器(用于Claude代码集成)

  1. 安装Python依赖项:

    cd mcp-emotion-server
    pip install -r requirements.txt
    

    这将安装:

    • mcp -MCP-SDK
    • pywin32 -用于命名管道的Windows API
    • transformers -AI情绪分析模型
    • torch -深度学习框架
  2. 配置Claude桌面:

    编辑 %APPDATA%\Claude\claude_desktop_config.json 并添加:

    {
      "mcpServers": {
        "emotion-display": {
          "command": "python",
          "args": ["C:\\Projects\\TheTest\\mcp-emotion-server\\server.py"],
          "env": {"EMOTION_PIPE_NAME": "EmotionDisplayPipe"}
        }
      }
    }
    

    重要提示: 替换 C:\\Projects\\TheTest 根据您的实际项目路径。在Windows上使用双反斜杠。

  3. 重新启动克劳德桌面 完全(不要只是关闭窗口-从系统托盘退出)。

步骤3:启动EmotionDisplay应用程序

使用以下方法之一:

方法1:批处理脚本(最简单)

start-emotion-display.bat

方法2:直接命令

dotnet run --project EmotionDisplay.csproj

你应该看到一个带有中性表情符号的小窗口(😐).

运作原理

建筑

Claude Code (conversation)
    ↓ calls MCP tool
Python MCP Server (server.py)
    ↓ analyzes text with AI model
emotion_analyzer.py
    ↓ sends emotion via named pipe
display_client.py
    ↓
.NET WPF App → Updates emoji display

工艺流程

  1. WPF应用程序启动并创建一个命名管道服务器(EmotionDisplayPipe)
  2. Claude Code分析对话上下文
  3. 克劳德致电MCP update_emotion 自主工具
  4. Python MCP服务器使用AI+关键字分析文本
  5. 情感通过命名的管道传递
  6. WPF UI更新以显示相应的表情符号

用法

使用克劳德代码

配置后,系统会自动工作:

  1. 使用启动EmotionDisplay应用程序 start-emotion-display.bat
  2. 打开克劳德代码或克劳德桌面
  3. 在对话过程中,克劳德会根据上下文自主更新情绪
  4. 实时观察情绪窗口的变化

情绪显示提供视觉反馈,显示克劳德的“情绪状态”:

  • 🤔 好奇-探索或调查时
  • ✨ 创意-设计或构建功能时
  • 🔍 分析-检查代码或数据时
  • 😟 担心-遇到错误或问题时
  • 😊 快乐-当事情进展顺利时
  • 还有更多!

测试。NET代理直接

运行测试控制台应用程序:

dotnet run --project TestAgent.csproj

或整合 EmotionAgent.cs 进入您自己的应用程序:

// Analyze a request
string emotion = EmotionAgent.AnalyzeRequest("How do I build this feature?");

// Send to display
EmotionAgent.SendEmotion(emotion);

手动测试

测试指定的管道客户端:

cd mcp-emotion-server
python display_client.py

测试情绪分析器:

cd mcp-emotion-server
python emotion_analyzer.py

故障排除

情绪显示未启动

检查一下。NET已安装:

dotnet --version

先构建项目:

dotnet build EmotionDisplay.csproj

EmotionDisplay已在运行

使用检查脚本:

check-emotion-display.bat

如果需要重新启动,请关闭窗口并运行 start-emotion-display.bat 再一次。

MCP服务器不工作

检查克劳德桌面日志:

  • 地点: %APPDATA%\Claude\logs\
  • 查找MCP服务器初始化错误

验证Python路径:

where python

确保这与您的路径匹配 claude_desktop_config.json.

WPF应用程序是否正在运行?

check-emotion-display.bat

显示器未更新

直接测试指定的管道:

cd mcp-emotion-server
python display_client.py

如果失败,请确保:

  • WPF应用程序正在运行
  • 管道名称正确(EmotionDisplayPipe)
  • 没有防火墙或防病毒软件阻止连接

AI模型加载失败

如果AI模型加载失败,服务器将自动回退到基于关键字的分析。检查Python控制台输出是否有错误。

要强制仅关键字模式,请编辑 mcp-emotion-server\server.py 第18行:

analyzer = EmotionAnalyzer(use_model=False)

批处理脚本参考

start-emotion-display.bat

如果EmotionDisplay应用程序尚未运行,则启动它。可以多次安全运行。

start-emotion-display.bat

check-emotion-display.bat

检查EmotionDisplay当前是否正在运行并显示状态。

check-emotion-display.bat

高级配置

自定义情绪

编辑 mcp-emotion-server\emotion_analyzer.py 自定义关键字到情感的映射。

使用不同的AI模型

更换中的模型 emotion_analyzer.py 第27行:

model="j-hartmann/emotion-english-distilroberta-base"

任何HuggingFace情绪分类模型都可以。

环境变量

  • EMOTION_PIPE_NAME -命名管道名称(默认:“EmotionDisplayPipe”)
  • LOG_LEVEL -记录详细程度(默认值:“INFO”)

演出

  • 模型加载时间: 2-5秒(启动时一次)
  • 情绪分析: 每次请求50-100ms
  • 命名管道发送: <10ms
  • 总延迟: ~60-110ms(实时)

文档

项目结构

TheTest/
├── EmotionDisplay.Avalonia/       # Cross-platform Avalonia app
│   ├── EmotionDisplay.Avalonia/
│   │   ├── MainWindow.axaml       # Avalonia UI layout
│   │   ├── MainWindow.axaml.cs    # Avalonia logic
│   │   └── EmotionDisplay.Avalonia.csproj
│   ├── start-emotion-display.sh   # macOS/Linux startup
│   ├── check-emotion-display.sh   # Status check (Unix)
│   └── README.md                  # Avalonia docs
├── EmotionAgent.cs                # .NET emotion analyzer
├── TestAgent.cs                   # Test console app
├── TestAgent.csproj               # Test project
├── start-emotion-display.bat      # Windows start script
├── check-emotion-display.bat      # Windows status check
├── mcp-emotion-server/            # Python MCP server
│   ├── server.py                  # MCP entry point
│   ├── emotion_analyzer.py        # AI analysis
│   ├── display_client.py          # Named pipe client (Windows)
│   ├── display_client_crossplatform.py  # Cross-platform client
│   └── requirements.txt           # Python deps
└── .claude/                       # Claude Code configuration
    ├── CLAUDE.md                  # Claude instructions
    └── agents/                    # Custom agents

许可证

EmotionDisplay项目的一部分。