# IDE Data Collector 多IDE数据采集插件 Monorepo - 核心SDK与各IDE插件统一管理 ## 项目介绍 IDE Data Collector 是一个用于采集AI编程工具使用数据的插件系统,支持多种主流IDE。通过采集代码补全、聊天会话等AI交互数据,帮助评估AI编程助手的效率和效果。 ## 架构概览 ``` ide-data-collector/ ├── packages/ │ ├── shared/ # 共享类型和工具函数 │ ├── core-sdk/ # 核心SDK(数据采集、上报、隐私处理) │ ├── vscode-extension/ # VSCode/Cursor 插件 │ └── jetbrains-plugin/ # JetBrains IDE 插件 ├── docs/ # 文档 └── scripts/ # 构建脚本 ``` ## 功能特性 ### 数据采集 - 🔍 代码补全采纳/拒绝事件 - 💬 AI聊天会话记录 - 📊 开发者行为分析 - ⏱️ 响应时间和效率指标 ### 隐私保护 - 🔒 用户ID匿名化 - 🔐 代码内容脱敏 - 🚫 敏感信息过滤 - 📁 路径排除规则 ### 多IDE支持 - ✅ Visual Studio Code - ✅ Cursor - ✅ IntelliJ IDEA - ✅ PyCharm - ✅ WebStorm - ✅ GoLand - ✅ 其他 JetBrains IDE ## 快速开始 ### 环境要求 - Node.js >= 18.0.0 - pnpm >= 8.0.0 - JDK 17+ (JetBrains插件) ### 安装依赖 ```bash # 安装所有依赖 pnpm install # 构建所有包 pnpm build ``` ### 开发 ```bash # 启动开发模式 pnpm dev # 运行测试 pnpm test # 代码检查 pnpm lint ``` ### 构建VSCode插件 ```bash cd packages/vscode-extension pnpm build pnpm package ``` ### 构建JetBrains插件 ```bash cd packages/jetbrains-plugin ./gradlew buildPlugin ``` ## 配置说明 ### VSCode 配置项 | 配置项 | 类型 | 默认值 | 说明 | |--------|------|--------|------| | `ideCollector.enabled` | boolean | true | 启用/禁用数据采集 | | `ideCollector.apiEndpoint` | string | localhost:8000 | API端点地址 | | `ideCollector.samplingRate` | number | 1.0 | 采样率 (0-1) | | `ideCollector.batchSize` | number | 50 | 批量上报大小 | | `ideCollector.flushInterval` | number | 60 | 刷新间隔(秒) | | `ideCollector.anonymizeUser` | boolean | true | 匿名化用户ID | | `ideCollector.obfuscateCode` | boolean | true | 混淆代码内容 | ## 事件类型 | 事件类型 | 说明 | |----------|------| | `code_completion_shown` | 代码补全建议展示 | | `code_completion_accepted` | 代码补全被接受 | | `code_completion_rejected` | 代码补全被拒绝 | | `chat_session_start` | 聊天会话开始 | | `chat_message_sent` | 用户发送消息 | | `chat_response_received` | 收到AI响应 | | `chat_session_end` | 聊天会话结束 | ## 数据格式 ```json { "eventId": "uuid", "eventType": "code_completion_accepted", "timestamp": "2024-01-05T10:30:00Z", "userInfo": { "userId": "anonymous-hash", "ideType": "vscode", "ideVersion": "1.85.0" }, "context": { "filePath": ".../src/controller.js", "language": "javascript" }, "aiInteraction": { "provider": "github-copilot", "latencyMs": 1200 }, "codeData": { "suggestedCode": "...", "accepted": true } } ``` ## 相关仓库 - [collector-backend](../collector-backend) - 数据采集后端服务 - [collector-dashboard](../collector-dashboard) - 数据分析看板 ## 许可证 MIT License