新增基于 Flask + DeepSeek API + gitlink-cli 的科研智能分析 Web 服务: - 14 个 Skill(核心 9 + 科研实验室 5:热点追踪/项目洞悉/合规检查/协作匹配/进度跟踪) - 输入研究主题或仓库 → 自动调 gitlink-cli 拉数据 → DeepSeek 按 Skill 工作流生成结构化报告 - 含 app.py、deploy.py(paramiko 一键部署)、templates、skills prompts、requirements.txt 对应《课程实践任务》子任务四「应用 GitLink 辅助科研」5 个场景。 来源:GitLink 大赛 2026 子赛题四。 |
||
|---|---|---|
| .. | ||
| skills | ||
| templates | ||
| README.md | ||
| app.py | ||
| deploy.py | ||
| requirements.txt | ||
README.md
GitLink Skills Web Service(科研智能分析服务)
子任务四「应用 GitLink 辅助科研」的在线服务。基于 Flask + DeepSeek API + gitlink-cli,通过 AI Agent 自动分析 GitLink 平台数据,覆盖科研项目分析、热点追踪、合规校验、协作匹配、进度预警等全链路科研辅助场景。
🌐 在线地址:http://121.41.212.97/skills/ | 归属:jiangtx/gitlink-cli 小组
一、它能做什么
输入一个研究主题或仓库地址,服务会自动调用 gitlink-cli 拉取 GitLink 平台数据,再由 DeepSeek 大模型按各 Skill 的工作流生成结构化分析报告。共 14 个 Skill,分两类:
🎯 核心 Skill(开发者场景)
| Skill | 入口 | 说明 | 典型输出 |
|---|---|---|---|
技术调研 research-tracker |
/research |
输入主题→多关键词搜索→深度评估→调研报告 | 热点概览 / 项目排行 / 重点分析 / 趋势建议 |
贡献者分析 contributor-insight |
/contributor |
仓库贡献者活跃度与团队健康度 | 团队概览 / 活跃排行 / 重点画像 |
Issue 分拣 issue-triage |
/issue-triage |
自动分类 Issue、评估紧急度 | 类型分类 / 紧急度 / 行动建议 |
CI 健康巡检 ci-health |
/ci-health |
CI/CD 状态、构建成功率 | 健康度总览 / 构建趋势 / 故障分析 |
仓库健康巡检 repo-health |
/repo-health |
综合活跃度、社区、代码产出 | 基本信息 / 活跃度 / 综合评分 |
PR 效率分析 pr-analytics |
/pr-analytics |
PR 吞吐量、合并率 | 吞吐量 / 合并效率 / 贡献排行 |
跨维搜索 cross-search |
/cross-search |
仓库+代码+Issue 三维搜索 | 各维命中 / 代码片段 / 讨论热点 |
用户分析 user-analysis |
/user-analysis |
用户画像与项目参与 | 基本信息 / 活跃度 / 贡献列表 |
仓库对比 repo-compare |
/repo-compare |
两仓库指标对比 | 基本/社区/活动对比 / 结论 |
🔬 科研实验室(科研场景,对应子任务四)
| Skill | 入口 | 科研场景 | 典型输出 |
|---|---|---|---|
热点追踪 lab-hotspot |
/lab-hotspot |
多关键词搜索 + 领域知识图谱 | 热点概览 / 排行 / 知识图谱 / 趋势 |
项目洞悉 lab-insight |
/lab-insight |
仓库+贡献者+PR/Issue 全息分析 | 项目概况 / 社区活跃 / 团队画像 |
合规检查 lab-compliance |
/lab-compliance |
License/CI/文档/复现性 | 合规评分 / 文档完整性 / 可复现性 |
协作匹配 lab-match |
/lab-match |
新手友好度 + 社区健康度 | 项目概览 / 入门友好度 / 贡献方向 |
进度跟踪 lab-track |
/lab-track |
多仓库批量巡检 + 三级告警 | 状态概览 / 指标表 / 预警详情 |
科研实验室 5 个 Skill 与《课程实践任务》子任务四场景一一对应:仓库级科研项目洞悉、科研热点追踪与知识图谱、科研项目合规与复现性检查、科研协作智能匹配、科研进度智能跟踪与预警。
二、架构
┌──────────────┐ HTTP ┌──────────────────────────────┐
│ 浏览器/评委 │ ───────► │ Flask (app.py, gunicorn) │
└──────────────┘ │ 路由 / /<slug> /api/run │
└──────────────┬───────────────┘
│ 按 Skill 选 agent_*()
┌──────────────▼───────────────┐
│ DeepSeek API (Chat) │
│ 注入 SKILL.md prompt + 日期 │
└──────────────┬───────────────┘
│ 工具调用 gitlink-cli
┌──────────────▼───────────────┐
│ gitlink-cli (npm 全局) │
│ repo/issue/pr/release/... │
└──────────────┬───────────────┘
│
┌──────────────▼───────────────┐
│ GitLink 平台 OpenAPI │
└──────────────────────────────┘
app.py:Flask 服务,14 个agent_*/lab_*函数分别对应 14 个 Skill,每个严格遵循skills/*.txt里的工作流。skills/*.txt:各 Skill 的 prompt 工作流(与仓库skills/gitlink-*/SKILL.md同源)。templates/:base.html/index.html/skill.html三套页面。reports/:运行时生成的历史报告(运行时创建)。
三、本地运行
# 1. 依赖
pip install -r requirements.txt # flask requests gunicorn
# 2. 安装 gitlink-cli(数据源)
npm install -g gitlink-cli
gitlink-cli auth login # 登录 GitLink
# 3. 配置大模型 Key(DeepSeek 或兼容 OpenAI 的接口)
export API_KEY="sk-xxxxxxxx"
export API_BASE="https://api.deepseek.com/v1"
export API_MODEL="deepseek-chat"
# 4. 启动
python app.py # 默认 5000 端口;--port=80 指定
# 访问 http://localhost:5000/
API_KEY也可不设环境变量,app.py会回退到内置占位(仅本地测试)。生产环境务必用环境变量,不要把 Key 写进代码。
四、部署到服务器
方式 A:DevOps 流水线(推荐,可复现)
仓库根目录 .devops/gitlink-web.yml 是建木流水线:master 合并后自动 git clone → 同步 gitlink-web/ 到 /opt/gitlink-web → 装 Python 依赖 → 写 systemd 单元 → 重启 → 健康检查。需在建木密钥组 gitlink_cli 中配置:
wyx_ssh_pass:服务器 SSH 密码deepseek_api_key:DeepSeek API Key
方式 B:手动脚本
cd gitlink-web
# 编辑 deploy.py 顶部的 PASSWORD 与 API_KEY(或改成从环境变量读)
python deploy.py
deploy.py 用 paramiko 走 SSH:装系统依赖 → 装 gitlink-cli → 上传文件 → 装 Python 依赖 → 写 systemd 服务 → 启动。服务以 gitlink-web.service 常驻,监听 80 端口。
五、API 端点
| 端点 | 方法 | 说明 |
|---|---|---|
/ |
GET | 首页(Skill 列表) |
/<slug> |
GET | 单个 Skill 表单页(如 /research、/lab-hotspot) |
/api/run |
POST | 执行 Skill,body:{"skill":"research-tracker","input":"大模型"},返回生成报告 |
六、目录结构
gitlink-web/
├── app.py # Flask 服务 + 14 个 Skill 处理函数(865 行)
├── deploy.py # paramiko 一键部署脚本
├── requirements.txt # flask / requests / gunicorn
├── skills/ # 各 Skill 的 prompt 工作流
│ ├── research-tracker.txt
│ ├── contributor-insight.txt
│ ├── issue-triage.txt
│ └── ci-health.txt
└── templates/
├── base.html
├── index.html
└── skill.html
七、与 CLI Skills 的关系
本服务的 skills/*.txt 与仓库 skills/gitlink-*/SKILL.md 同源、可互换:
- CLI Skill(
skills/gitlink-research-tracker/SKILL.md):供 Claude Code / Cursor 等 Agent 平台直接调用,离线、可复现。 - Web Skill(本服务):封装成 Web 界面 + 后端 DeepSeek,评委无需装 Agent 即可在浏览器体验。
两者覆盖相同的科研场景,互为印证。