Vit9borzenko/PALIMPSEST
GitHub: Vit9borzenko/PALIMPSEST
一个集成了 NLP、文体分析和行为画像的 Telegram OSINT 情报分析平台,用于从聊天数据中提取关联情报和生成分析报告。
Stars: 0 | Forks: 0
# TG Analytics
一个具备全面数据收集、处理和可视化功能的 Telegram 聊天分析平台。
## 功能
- **消息抓取**,来自 Telegram 群组 (Telethon)
- 通过 WebSocket **实时监控**新消息
- **语义 NLP 分析**:情感、主题、NER、embedding
- **文体分析**:时间线、行为模式
- **神经上下文分析** (OpenAI / 本地模型)
- 支持**语义排序**的**消息搜索**
- 参与者**关联分析**(图、评分、聚类)
- 图像 **OCR** (Tesseract, EasyOCR)
- **音频转写** (Whisper / OpenAI Whisper API)
- **生成报告** (PDF, XLSX)
- **Dead account detection**
- **MITRE ATT&CK mapping**
- **OSINT 情报丰富化**
- 包含**合成数据**的 **Demo 模式**
- 支持 RBAC 的 **JWT 身份验证** (Admin / Analyst / Viewer)
## 架构
```
┌─────────────┐ ┌──────────┐ ┌─────────┐ ┌──────────┐
│ Telegram │ │ Celery │ │ Redis │ │ Nginx │
│ (Telethon) │──▶│ Worker │──▶│ (Queue │──▶│ (Proxy) │
└─────────────┘ └──────────┘ │ + WS) │ └──────────┘
└─────────┘
┌─────────────┐ ┌──────────┐ │ ┌──────────┐
│ Monitor │ │ FastAPI │◀───────┘ │ Postgres │
│ Service │──▶│ App │─────────────────▶│ (pgvector)│
└─────────────┘ └──────────┘ └──────────┘
```
## 快速开始
### 前置条件
- Docker 和 Docker Compose(或 Python 3.11+)
- Telegram API ID, API Hash(用于抓取)
- OpenAI API Key(可选,用于神经分析)
### 通过 Docker 运行
```
cp .env.example .env
# 如有必要,请修改 .env
docker compose up -d
```
应用将可以通过以下地址访问:`http://localhost:80`
**默认凭据:**
- 用户名:`admin`
- 密码:`SecurePass2025!`
### 手动运行
```
# 安装依赖
pip install -r requirements.txt
# 下载 spaCy 模型
python -m spacy download ru_core_news_sm
# 运行
uvicorn backend.app.main:app --reload
```
## 环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
| `POSTGRES_*` | PostgreSQL 连接参数 | `tg_user` / `tg_password` / `tg_analytics` |
| `REDIS_*` | Redis 连接参数 | `redis:6379` |
| `SECRET_KEY` | JWT 密钥 | `change-me-in-production` |
| `API_KEY_INTERNAL` | 内部 API 密钥 | `internal-api-key-change-me` |
| `TELEGRAM_API_ID` | Telegram API ID | — |
| `TELEGRAM_API_HASH` | Telegram API Hash | — |
| `OPENAI_API_KEY` | OpenAI API 密钥 | — |
| `CELERY_CONCURRENCY` | Celery worker 数量 | `2` |
## 开发
```
# 安装 dev-依赖
pip install -r requirements.txt
# 数据库迁移
alembic upgrade head
# 运行测试
pytest
# 类型检查
mypy .
# Linting
ruff check .
```
## API Endpoints
- `GET /api/health` — 健康检查
- `POST /api/auth/login` — JWT 身份验证
- `POST /api/auth/register` — 注册 (仅限 admin)
- `GET /api/auth/me` — 获取当前用户信息
完整的 OpenAPI 文档:`http://localhost:8000/docs`
## 项目结构
```
tg-analytics/
├── backend/
│ ├── app/
│ │ ├── main.py # Точка входа FastAPI
│ │ ├── config.py # Конфигурация (pydantic-settings)
│ │ ├── db.py # Подключение к БД
│ │ ├── dependencies.py # DI: auth, rate limiting
│ │ ├── websocket.py # WebSocket рассылка
│ │ ├── models/ # SQLAlchemy модели
│ │ ├── schemas/ # Pydantic схемы
│ │ ├── routers/ # FastAPI роутеры
│ │ ├── services/ # Бизнес-логика
│ │ ├── modules/ # Модули (парсер, NLP, аналитика)
│ │ ├── templates/ # Jinja2 шаблоны
│ │ └── static/ # Статические файлы
│ ├── celery_worker.py # Celery приложение
│ └── monitor_service.py # Real-time мониторинг
├── alembic/ # Миграции БД
├── tests/ # Тесты
├── storage/ # Данные (медиа, кеш)
├── outputs/ # Результаты (отчёты, графики)
├── docker-compose.yml
├── Dockerfile
├── nginx.conf
├── .env.example
├── .gitignore
├── pyproject.toml
└── requirements.txt
```
## 技术栈
- **Backend**: Python 3.11, FastAPI, SQLAlchemy (async), Celery
- **数据库**: PostgreSQL + pgvector, Redis
- **NLP**: spaCy, sentence-transformers, transformers, langdetect, natasha
- **ML**: scikit-learn, PyTorch (CPU), NetworkX
- **Telegram**: Telethon
- **基础设施**: Docker, Nginx
## 许可证
MIT
标签:ESC4, OSINT, Python, WSL, 代码示例, 凭据扫描, 情报收集, 搜索引擎查询, 数据分析, 无后门, 测试用例, 漏洞研究, 特权检测, 请求拦截, 逆向工具