mirror of
https://github.com/stardrophere/InsightRadar.git
synced 2026-06-06 01:57:51 +08:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6992b58208 | |||
| 98971588ae | |||
| 531844f33c |
@@ -1,2 +1,70 @@
|
|||||||
# InsightRadar
|
# 聚势智见 — 基于语义聚类与大模型的热点资讯聚合平台
|
||||||
An AI-powered trend monitoring and news intelligence platform
|
|
||||||
|
一个智能热点监测与个性化分发平台,通过语义聚类与大模型技术,将分散在微博、知乎、抖音、百度等平台的热点资讯自动归并为统一事件,生成AI摘要与标签,并支持个性化订阅与定时推送。
|
||||||
|
|
||||||
|
## 核心特性
|
||||||
|
|
||||||
|
- **跨平台热点聚合**:基于Embedding语义相似度计算,自动识别不同平台的同一事件
|
||||||
|
- **AI智能摘要**:调用大模型生成统一标题、综合摘要与标准化标签
|
||||||
|
- **个性化推荐**:支持关键词订阅、语义匹配与多因子排序
|
||||||
|
- **舆情分析工具**:提供热度趋势追踪、标题修改监控、时间线分析
|
||||||
|
- **定时简报推送**:自定义推送时间与接收邮箱,生成个性化AI简报
|
||||||
|
|
||||||
|
## 快速部署
|
||||||
|
|
||||||
|
### 方式一:Docker部署(推荐)
|
||||||
|
|
||||||
|
**环境要求**
|
||||||
|
- Linux系统(推荐Ubuntu 22.04 LTS / Debian 12)
|
||||||
|
- Docker ≥ 20.10.0,Docker Compose v2
|
||||||
|
- 内存 ≥ 512MB(建议1GB以上)
|
||||||
|
|
||||||
|
**部署步骤**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. 构建镜像
|
||||||
|
docker build -t insightradar:latest .
|
||||||
|
|
||||||
|
# 2. 配置目录(参考docker/ereadm.txt)
|
||||||
|
mkdir -p ./data ./logs
|
||||||
|
|
||||||
|
# 3. 启动服务
|
||||||
|
cd docker
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### 方式二:源码部署
|
||||||
|
|
||||||
|
**环境要求**
|
||||||
|
|
||||||
|
- Python ≥ 3.11,uv包管理器
|
||||||
|
- Node.js ≥ 22
|
||||||
|
- 内存 ≥ 512MB
|
||||||
|
|
||||||
|
**后端部署**
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
# 复制
|
||||||
|
cd backend
|
||||||
|
uv sync
|
||||||
|
uv run
|
||||||
|
```
|
||||||
|
|
||||||
|
**前端部署**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 复制
|
||||||
|
cd frontend
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
# 将dist/目录内容复制到 backend/app/static/
|
||||||
|
```
|
||||||
|
|
||||||
|
**配置说明**
|
||||||
|
|
||||||
|
- 复制 .env.example 为 .env 并填写配置
|
||||||
|
- 将Embedding模型(Qwen3-Embedding-4B)放入 backend/data/ 目录
|
||||||
|
|
||||||
|
### 访问应用
|
||||||
|
|
||||||
|
部署完成后,通过 http://<服务器IP>:<配置端口> 访问Web界面。
|
||||||
@@ -93,7 +93,7 @@ const hoursOptions = [
|
|||||||
const sortOptions = [
|
const sortOptions = [
|
||||||
{ label: '时间排序', value: 'created_at' },
|
{ label: '时间排序', value: 'created_at' },
|
||||||
{ label: '热度排序', value: 'hot_score' },
|
{ label: '热度排序', value: 'hot_score' },
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
const recSortOptions = [
|
const recSortOptions = [
|
||||||
@@ -846,10 +846,10 @@ watch(() => route.query.event, (newId) => {
|
|||||||
<i class="fa-regular fa-clock"></i>
|
<i class="fa-regular fa-clock"></i>
|
||||||
最后同步: {{ lastSyncText }}
|
最后同步: {{ lastSyncText }}
|
||||||
</span>
|
</span>
|
||||||
<span v-if="stats.error_tasks_today > 0" class="error-count">
|
<!-- <span v-if="stats.error_tasks_today > 0" class="error-count">
|
||||||
<i class="fa-solid fa-triangle-exclamation"></i>
|
<i class="fa-solid fa-triangle-exclamation"></i>
|
||||||
{{ stats.error_tasks_today }} 个异常
|
{{ stats.error_tasks_today }} 个异常
|
||||||
</span>
|
</span> -->
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user