- 添加 pnpm workspace 和 Turborepo 配置 - 创建 packages/shared 共享类型和工具 - 创建 packages/core-sdk 核心 SDK - 创建 packages/vscode-extension VSCode 插件 - 创建 packages/jetbrains-plugin JetBrains 插件基础结构 - 添加 README 文档
152 lines
3.3 KiB
Markdown
152 lines
3.3 KiB
Markdown
# 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
|