Skip to content

LinYiXin123/video-insight

Repository files navigation

视频情报台

视频情报台封面

一个面向 B 站内容研究、选题分析和热点扫描的本地 AI 工具。

它的目标不是做“大而全”的视频平台,而是把最常见、最实用的几类需求做顺手:

  • 问某个方向最近哪些视频最热
  • 拉一份播放量榜单
  • 研究某类账号为什么能跑起来
  • 根据当前热点反推选题方向
  • 从高播放视频里抽取标题灵感

整个项目采用“轻检索 + 中文总结”的设计,前端是 Streamlit,后端是 FastAPI + LangServe,默认可以直接接本地 Ollama,也兼容 OpenAI 风格接口。

效果预览

首页界面

首页界面

调用链路

flowchart LR
    A["Streamlit 前端"] --> B["FastAPI / LangServe 接口"]
    B --> C["LangChain 工作流"]
    C --> D["B 站检索与数据清洗"]
    C --> E["Ollama / OpenAI 兼容模型"]
    D --> F["中文榜单、选题与账号分析结果"]
Loading

适合做什么

  • 热点扫描
  • 赛道观察
  • 播放量榜单整理
  • 标题灵感提炼
  • 竞品账号研究
  • AI / 工具类内容选题辅助

核心能力

  • 全中文界面与中文结果输出
  • 内置快捷问题卡片,适合快速试跑
  • 默认兼容本地 Ollama
  • 支持接 OpenAI 兼容 API
  • 后端接口独立,方便后续接网页、桌面端或自动化脚本
  • 结果更偏“整理与洞察”,而不是原始 JSON 堆砌

技术栈

层级 方案
前端 Streamlit
接口层 FastAPI + LangServe
工作流 LangChain / LangGraph
检索数据 bilibili-api-dev + 本地清洗逻辑
向量 / 检索辅助 faiss-cpu
模型接入 Ollama / OpenAI Compatible API

推荐使用场景

1. 选题 brainstorming

示例问题:

  • 最近关于大模型应用的热门视频主要集中在哪些方向
  • 帮我总结近期高播放 AI 教程视频的共同特征

2. 榜单整理

示例问题:

  • 给出 AI Agent 相关视频的播放量榜单
  • 列出最近 7 天内和 AIGC 工具有关的高热视频

3. 标题优化

示例问题:

  • 结合当前热门视频,给我 10 个更容易获得点击的 AI 工具类标题

快速开始

方式一: 手动启动

1. 创建虚拟环境

python -m venv .venv
.\.venv\Scripts\Activate.ps1

2. 安装依赖

pip install -r requirements.txt

3. 准备环境变量

.env.bak 复制为 .env,推荐先用本地 Ollama 配置:

LLM_PROVIDER='ollama'
OPENAI_API_KEY=''
OPENAI_BASE_URL='http://127.0.0.1:11434'
model='gemma3:4b'
OLLAMA_NUM_PREDICT='700'
GLM_API_KEY=''
sessdata=""

说明:

  • LLM_PROVIDER='ollama' 表示默认走本地模型
  • OPENAI_BASE_URL 指向本地 Ollama 服务
  • model 可换成你本机已有模型
  • sessdata 可选,用于补充 B 站访问上下文

4. 准备本地模型

ollama pull gemma3:4b

5. 启动后端

python app/server.py

6. 启动前端

streamlit run app/client.py

方式二: Windows 一键启动

项目已经提供 Start-BiliAgent.ps1,它会尝试:

  • 检查 .venv
  • 自动复制 .env.bak.env
  • 启动后端
  • 启动前端
  • 自动打开浏览器

运行命令:

powershell -ExecutionPolicy Bypass -File .\Start-BiliAgent.ps1

默认地址

  • 前端首页: http://localhost:8501
  • 后端接口文档: http://localhost:8000/docs
  • LangServe 路由: http://localhost:8000/video_insight_chat

项目结构

video-insight/
├─ .streamlit/              Streamlit 配置
├─ app/
│  ├─ client.py             前端 UI 入口
│  ├─ server.py             FastAPI / LangServe 服务入口
│  └─ utils.py              模型与工作流创建
├─ bili_server/             检索、节点编排、提示词与流程逻辑
├─ bilibili_tools/          B 站数据获取与整理工具
├─ docs/assets/             README 展示图
├─ Start-BiliAgent.ps1      Windows 一键启动脚本
├─ requirements.txt         Python 依赖
└─ README.md

运行逻辑说明

前端 app/client.py 负责:

  • 渲染首页
  • 提供快捷提问卡片
  • 把用户问题发送给后端
  • 展示中文分析结果

后端 app/server.py 负责:

  • 启动 FastAPI 服务
  • 挂载 /video_insight_chat 路由
  • 调用 create_workflow() 组装完整处理链路

工作流负责:

  • 检索相关视频信息
  • 根据问题类型判断是否生成榜单
  • 把检索结果整理成中文报告

常用问题

可以只用本地模型吗

可以。默认配置就是本地 Ollama 路线。

必须有 B 站登录态吗

不是必须,但有些场景配置 sessdata 后体验会更稳定。

可以换成别的模型吗

可以,只要接口兼容即可。你可以替换 .env 里的 modelOPENAI_BASE_URL

说明

这是一个偏个人研究与本地使用的分析工具版本,重点在“快速提问、快速得到中文洞察”,很适合做选题辅助和热点梳理原型。

About

A local Bilibili insight tool for hot topics, ranking lists, title ideas, and content research.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors