首页 › LLM大语言模型 › TraeWork专栏 › TraeWork实战案例 › TREA实现数据分析与可视化报表

TREA实现数据分析与可视化报表

从一个痛点开始​

「TraeWork X 脉脉挑战赛」的参赛作品,都是通过在 TRAE 官方社区发帖提交。随着参与人数越来越多,赛事运营的同学就遇到了三个头疼的问题:​

•

看不过来:新提交的作品帖淹没在海量帖子里,很难及时发现​

•

找不到:想看某个行业或角色的作品?在社区里翻半天也找不全​

•

没数据:一共投了多少作品?哪些作品最火?完全没有可视化的数据大盘​

我们想过搭一个在线作品集网站,但从开发到部署到上线,耗时太长。我们需要的是一个更快、更轻量的方案。​

这时候我们想到了「飞书多维表格」:它本身就支持筛选、排序、统计、可视化看板,天然适合做作品集展示。​

而且,既然这次比赛就是用 TraeWork 创作应用的,那为什么不用 TraeWork 来搭这个系统呢?​

说干就干!最终,这套系统帮我们自动采集了 3400+ 个参赛作品,并且一直在稳定运行。​

​

​

​

飞书文档 - 图片

​

47%

​

​

​

飞书文档 - 图片

​

53%

​

​

5 步搞定全自动作品集​

​

​

​

飞书文档 - 图片

​

36%

​

​

​

飞书文档 - 图片

​

28%

​

​

​

飞书文档 - 图片

​

35%

​

​

第一步:和 TraeWork 聊需求,让 AI 帮你梳理方案​

​

🌰

TraeWork 一共提供两种模式:​

•

Work 模式:适合非代码工作,AI 可以直接操作文件、浏览器、飞书等工具​

•

Code 模式:适合写代码、搭项目,AI 可以直接操作你的代码仓库​

​

针对这个任务,我选择的是 Work 模式。因为我需要 AI 帮我创建项目文件、配置飞书应用、部署到服务器,这些都不需要写复杂的代码框架,更多是“帮我做这件事”的指令式交互。​

打开 TraeWork,切换到 Work 模式,我输入了第一句话:​

​

代码块​

Plain Text

/plan “论坛作品地址” 通过飞书多维表格定时更新获取链接论坛作品信息,写入多维表格 。​

​

TraeWork 帮我梳理了规划开发的需求:​

•

自动采集:从 TRAE 论坛(forum.trae.cn)自动获取所有参赛作品帖​

•

智能分析:AI 自动分析每个作品,提取行业、职业、技能类型等标签​

•

多维展示:同步到飞书多维表格,支持筛选、排序、统计​

•

全自动化:定时任务自动同步,无需人工干预​

接着我又补充了几个关键需求:​

​

代码块​

Plain Text

每个作品需要采集标题、作者、链接、浏览数、回复数、投票数、发帖时间。​

AI 分析出行业、职业、Skill类型、Skill名称、Skill简介、Skill链接。​

​

TraeWork 帮我把这些需求整理成了字段设计,这就是后来多维表格的 14 个字段。​

​

💡

小贴士:与 TraeWork 对话时,需求越具体越好。不要说"帮我做个采集工具",要说"帮我采集论坛帖子,字段包括 XXX、YYY,同步到飞书表格"。AI 只有理解了你的具体需求,才能给出准确的方案。​

【当然在对话过程,我是经过多轮对话,梳理完成采集字段细节和确认论坛API接口调用逻辑的。】​

​

​

截图展示的是 TraeWork 产品更新之前的界面,和现在的界面有有所出入。​

​

​

飞书文档 - 图片

​

第二步:配置飞书应用​

这一步是整个项目的基础。没有飞书应用,就无法写入多维表格。​

​

​

2.1 创建飞书应用​

打开 飞书开放平台,登录账号​

点击「创建应用」,选择「自建应用」​

填写应用名称(比如"作品集采集"),上传图标​

创建完成后,进入应用详情页​

2.2 获取凭证​

在应用详情页,找到「凭证与基础信息」:​

•

App ID:应用的唯一标识​

•

App Secret:应用的密钥(注意保密!)​

这两个值后面配置代码时会用到。​

2.3 开通权限​

在「权限管理」中,搜索并开通以下权限:​

​

飞书应用权限管理一键导入​

JSON

{​

"scopes": {​

"tenant": [​

"base:app:update",​

"base:field:read",​

"base:form:update",​

"base:history:read",​

"base:record:create",​

"base:record:delete",​

"base:record:read",​

"base:record:retrieve",​

"base:record:update",​

"base:table:read",​

"base:table:update",​

"bitable:app",​

"bitable:app:readonly",​

​

​

​

​

​

2.4 发布应用​

权限配置完成后,点击「版本管理与发布」→「创建版本」→「申请发布」。如果是企业内部应用,管理员审批通过后即可使用。​

⚠️ 注意:应用发布后才能正常调用 API。如果发布前就想测试,可以先在"可用范围"中添加自己。​

2.5 获取多维表格信息​

打开你的飞书多维表格,从 URL 中提取两个关键信息:​

•

App Token:URL 中 /base/ 后面的那串字符​

•

Table ID:URL 中 table= 后面的那串字符​

例如 URL 为 https://my.feishu.cn/base/ABCDEF123?table=tblXYZ789,则:​

•

App Token = ABCDEF123​

•

Table ID = tblXYZ789​

第三步:飞书多维表格配置​

我们前面聊了“基础配置,采集论坛数据,数据提取,AI智能分析,数据写入多维表格”,这里我们需要完成最后环节【多维表格配置】​

3.1 多维表格字段配置​

​

👾

提示:飞书多维表格数据表字段和格式,务必要跟采集字段对应,否则会导致传输错误。​

​

​

​
字段名​
​
​
类型​
​
​
说明​
​
​
数据来源​
​
​
TopicID​
​
​
文本​
​
​
帖子唯一标识​
​
​
论坛 API​
​
​
参赛帖标题​
​
​
文本​
​
​
帖子标题​
​
​
论坛 API​
​
​
作者​
​
​
文本​
​
​
发帖人用户名​
​
​
论坛 API​
​
​
链接​
​
​
超链接​
​
​
帖子原始链接​
​
​
论坛 API​
​
​
浏览数​
​
​
数字​
​
​
帖子浏览次数​
​
​
论坛 API​
​
​
回复数​
​
​
数字​
​
​
真实回复数(排除自回复)​
​
​
论坛 API​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​

​

​

👍

⚠️ 注意:飞书多维表格的字段类型必须和代码中写入的数据格式匹配。超链接字段必须用 {"link": "url", "text": "显示文本"} 格式,日期字段用毫秒时间戳,数字字段用整数。​

​

3.2 多维表格添加应用​

​

​

​

​

34%

​

​

​

​

66%

​

​

飞书多维表格添加上面发布的飞书应用,实现数据可以写入多维表格​

​

第四步:用 TraeWork 开发采集服务​

4.1 创建项目及代码【一句话完成开发】​

TraeWork,我继续对话:​

​

代码块​

Plain Text

根据以上plan最终规划方案,执行项目代码开发,实现论坛数据采集和飞书多维表格同步。​

​

TraeWork 自动帮我生成了完整的项目结构及代码,每个文件各司其职:​

​

代码块​

Plain Text

forum-crawler/​

├── config.py # 配置文件(代码配置)​

├── feishu_client.py # 飞书API客户端​

├── forum_crawler.py # 论坛数据采集​

├── ai_analyzer.py # AI智能分析​

├── sync.py # 增量同步逻辑​

​

4.2 读懂项目文件内容和作用​

4.2.1 配置文件config.py与.env是什么?​

config.py,用于代码配置,通用配置项(URL、字段映射、常量等)调用敏感信息​

.env,敏感信息存储​

​

👍

小贴士:config.py通过 os.getenv() 读取 .env 文件存储敏感信息​

安全性:.env 包含密钥,不提交到Git仓库(通过 .gitignore 排除),防止泄露​

可移植性:config.py 是通用配置,可以提交到Git;.env 是环境相关,每台机器单独配置​

灵活性:不同环境(开发/测试/生产)用不同的 .env 文件,代码不用改​

​

​

代码块​

Python

import os​

from dotenv import load_dotenv​

​

load_dotenv()​

​

# 飞书凭证 ​

FEISHU_APP_ID = os.getenv("FEISHU_APP_ID")​

FEISHU_APP_SECRET = os.getenv("FEISHU_APP_SECRET")​

FEISHU_APP_TOKEN = "**************" # 多维表格TOKEN​

FEISHU_TABLE_ID = "***************" # 多维表格TABLE_ID​

​

# 论坛 - 采集地址​

FORUM_BASE_URL = "https://forum.trae.cn"​

FORUM_CATEGORY_URL = "https://forum.trae.cn/c/37-category/37.json"​

​

# 运行参数​

LOG_FILE = os.getenv("LOG_FILE", "logs/sync.log")​

LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO")​

​

4.2.2 飞书 API 客户端作用?​

4.2.3 论坛数据采集了啥?​

通过forum_crawler.py 采集论坛数据,基于官方论坛是 Discourse 开发的,提供了 JSON API格式,我们可以轻松解析提取想要的内容​

​

代码块​

Python

# 获取帖子列表​

url = "https://forum.trae.cn/c/\*\*\*\*\*/26.json"​

response = requests.get(url)​

data = response.json()​

# 返回: {"topic_list": {"topics": [...]}}​

​

采集逻辑:​

分页获取所有帖子(每页30条)​

解析 JSON 包,提取数据:帖子的标题、作者、浏览数、回复数、投票数​

计算真实回复数(排除作者自回复)​

4.2.4 AI 智能分析有那些规则?​

对每个帖子调用 AI API,提取结构化标签:​

赛事运营同学根据大赛的标准:清晰梳理AI智能分析作品的定义标准Prompt,对AI返回可控数据的提供约束范围:​

​

截图展示的是 TraeWork 产品更新之前的界面,和现在的界面有有所出入。​

​

​

​

💡 小贴士:给 AI 的 Prompt 中要明确指定分类选项,这样 AI 返回的结果才能直接写入多维表格的单选字段。​

4.2.5 增量同步机制怎么实现?​

为了避免每次都全量分析,我们采用了增量同步:​

​

代码块​

Plain Text

每次同步流程:​

1. 获取论坛所有帖子​

2. 计算每个帖子的内容指纹 MD5(title + excerpt)​

3. 与本地缓存比对​

- 指纹相同 → 跳过(内容未变)​

- 指纹不同 → 重新AI分析​

- 新帖子 → AI分析 + 写入缓存​

4. 将需要更新的记录写入飞书​

​

缓存存储在 ai_cache.json 文件中,结构如下:​

​

代码块​

JSON

{​

"topic_12345": {​

"hash": "abc123def456",​

"行业": "互联网/科技",​

"职业": "开发",​

"SKill类型": "开发工具",​

"SKill名称": "XXX工具",​

​

第五步:部署到服务器​

本地测试通过后,需要部署到服务器实现长期运行。​

由于 Work 模式并不支持直接远程服务器部署,我们需要手动上传项目包,执行一下解压安装,运行操作!​

5.1 服务器环境准备​

​

代码块​

Bash

# 安装 Python 3​

sudo apt update && sudo apt install python3 python3-pip -y​

​

# 安装依赖​

pip3 install requests python-dotenv --break-system-packages​

​

5.2 上传项目文件并解压​

将整个 forum-crawler/ 目录上传到服务器:​

​

代码块​

Bash

# 方法1:使用 scp​

scp -r forum-crawler/ root@你的服务器IP:/opt/forum-crawler/​

​

# 方法2:使用 git​

git clone 你的仓库地址 /opt/forum-crawler​

​

​

我这边按照方法1进行简单介绍:​

下载项目文件包到本地电脑文件夹📂download​

通过Windows PowerShell执行终端上传⏫操作​

​

​

​

​

登录Linux服务后台,执行解压项目文件包​

​

代码块​

Plain Text

cd /opt && tar -xzf forum-crawler.tar.gz​

​

5.3 配置环境变量​

在服务器上创建 .env 文件:​

​

代码块​

Bash

cd /opt/forum-crawler​

nano .env​

​

填入实际的配置值:前面准备的飞书应用FEISHU_APP_ID和FEISHU_APP_SECRET、AI API_KEY填写进去。​

​

代码块​

Plain Text

FEISHU_APP_ID=cli_xxxxxxxx​

FEISHU_APP_SECRET=xxxxxxxxxx​

AI_API_KEY=sk-xxxxxxxxxx​

​

​

​

​

完成编辑后:按ctrl+x 退出,按Y保存​

5.4 首次运行测试​

​

代码块​

Bash

​

观察日志输出,确认:​

•

论坛数据采集成功​

•

AI 分析正常返回​

•

飞书多维表格写入成功​

5.5 设置定时任务​

​

代码块​

Bash

crontab -e​

​

添加定时任务(每小时执行一次):​

​

代码块​

Plain Text

​

💡 小贴士:定时任务的日志输出到文件,方便排查问题。建议定期清理日志文件,避免磁盘占满。​

​

最终成果​

以下为 TRAE 论坛数据流转蓝图​

​

​

经过以上步骤,最终实现了:​

•

3400+ 参赛作品自动采集​

•

14个 字段的结构化数据​

•

每小时 自动同步更新​

•

AI 智能 标签提取(行业、职业、技能类型)​

•

增量同步,只处理新增和变更内容​

•

7×24 小时 自动运行,无需人工干预​

踩坑实录​

开发过程中踩了不少坑,挑最典型的 5 个分享给大家,希望帮你少走弯路:​

问题1:字段名称一致性问题​

现象:写入飞书时报错 FieldNameNotFound​

原因:代码中用了英文字段名(如 username),但飞书表格创建的是中文字段名(如 用户名)​

解决:统一使用中文字段名,和飞书表格保持完全一致​

问题2:字段格式一致性问题​

现象:写入超链接字段时报错​

原因:超链接字段直接传了 URL 字符串,但飞书要求特定格式​

解决:超链接字段使用 {"link": "https://...", "text": "查看帖子"} 格式​

问题3:资源规划合理性问题​

现象:每次同步都调用 AI 分析所有帖子,API 费用很高​

解决:实现增量分析,只对新增或内容变更的帖子调用 AI,缓存未变更的分析结果​

问题4:Rate Limit 限流​

现象:请求频率过高被飞书 API 限流​

解决:实现指数退避重试机制(1秒→2秒→4秒→8秒),每次请求之间增加延迟​

问题5:全量同步效率低​

现象:3400+ 帖子每次全量处理需要很长时间​

解决:增量同步 + 分页获取 + 并发处理,只处理变更的数据​