Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yanyao2333/BiliGPTHelper
bilibili人形自走bot
https://github.com/yanyao2333/BiliGPTHelper
bilibili bilibili-api bot chatgpt claude gpt
Last synced: 12 days ago
JSON representation
bilibili人形自走bot
- Host: GitHub
- URL: https://github.com/yanyao2333/BiliGPTHelper
- Owner: yanyao2333
- License: mit
- Archived: true
- Created: 2023-08-21T08:24:54.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-07-26T00:09:30.000Z (4 months ago)
- Last Synced: 2024-08-01T02:29:24.948Z (3 months ago)
- Topics: bilibili, bilibili-api, bot, chatgpt, claude, gpt
- Language: Python
- Homepage:
- Size: 565 KB
- Stars: 20
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-bilibili-extra - BiliGPTHelper - bilibili 人形自走 bot.![Python](svg/python.svg?raw=true) ![Docker](svg/docker.svg?raw=true) (其他 / 直播脚本)
README
> [!CAUTION]
> 你b已经自己搞了ai课代表,这个项目没啥大用了,所以不再更新✨Bilibili GPT Bot✨
把ChatGPT放到B站里!更高效、快速的了解视频内容
[![Python 3.11](https://img.shields.io/badge/python-3.11-blue.svg)](https://www.python.org/downloads/release/python-311/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![wakatime](https://wakatime.com/badge/user/41ab10cc-ec82-41e9-8417-9dcf5a9b5947/project/cef4699c-8d07-4cf0-9d0a-ef83fb353b82.svg)](https://wakatime.com/badge/user/41ab10cc-ec82-41e9-8417-9dcf5a9b5947/project/cef4699c-8d07-4cf0-9d0a-ef83fb353b82)
[![release_docker](https://github.com/yanyao2333/BiliGPTHelper/actions/workflows/push_to_docker.yaml/badge.svg)](https://github.com/yanyao2333/BiliGPTHelper/actions/workflows/push_to_docker.yaml)### 🌟 介绍
b站那种AI课代表都见过吧?看起来超级酷!所以我也搞了个捏
### 📜 声明
当你查阅、下载了本项目源代码或二进制程序,即代表你接受了以下条款:
1. 本项目和项目成果仅供技术,学术交流和Python3性能测试使用\
2. 本项目贡献者编写该项目旨在学习Python3 ,提高编程水平\
3. 用户在使用本项目和项目成果前,请用户了解并**遵守当地法律法规**,如果本项目及项目成果使用过程中存在违反当地法律法规的行为,请勿使用该项目及项目成果\
4. **法律后果及使用后果由使用者承担**\
5. 开发者(yanyao2333)**不会**
将任何用户的cookie、个人信息收集上传至除b站官方的其他平台或服务器。同时,开发者(yanyao2333)不对任何造成的后果负责(包括但不限于账号封禁等后果),如有顾虑,请谨慎使用若用户不同意上述条款**任意一条**,**请勿**使用本项目和项目成果
### 😎 特性
- [x] 使用大模型生成总结、根据视频内容向ai提出问题
- [x] 已支持Claude、Openai大语言模型
- [x] 已支持openai的whisper和本地whisper语音转文字
- [x] 支持热插拔的asr和llm模块,基于优先级和运行稳定情况调度
- [x] 优化prompt,达到更好的效果、更高的信息密度,尽量不再说废话。还可以让LLM输出自己的思考、评分,让摘要更有意思
- [x] 支持llm返回消息格式不对自动修复
- [x] 支持艾特和私信两种触发方式
- [x] 支持视频缓存,避免重复生成
- [x] 可自动检测和刷新b站cookie(实验性功能)
- [x] 支持自定义触发关键词
- [x] 支持保存当前处理进度,下次启动时恢复
- [x] 支持一键生成并不精美的运行报告,包含一些图表### 🚀 使用方法
#### 一、通过docker运行
现在有两个版本的docker,代码都是最新版本,只是包不一样:
1. latest 这个版本不包含whisper,也就是只能用来总结包含字幕的视频。这个镜像只有200多m,适合偶尔使用
2. with_whisper 这个版本包含whisper,大小达到了2g,但是可以使用**本地**语音转文字生成字幕```shell
docker pull yanyaobbb/bilibili_gpt_helper:latest
或
yanyaobbb/bilibili_gpt_helper:with_whisper
``````shell
docker run -d \
--name biligpthelper \
-v 你本地的biligpt配置文件目录:/data \
yanyaobbb/bilibili_gpt_helper:latest(with_whisper)
```首次运行会创建模板文件,编辑config.yml,然后重启容器即可
#### 二、源代码运行
1. 克隆并安装依赖
```shell
git clone https://github.com/yanyao2333/BiliGPTHelper.git
cd BiliGPTHelper
pip install -r requirements.txt
```2. 编辑config.yml
3. 运行,等待初始化完成
```shell
python main.py
```#### 触发命令
##### 私信
方式一:`转发视频+发送一条包含关键词的消息`(向ai提问的方式与下面讲的相同) \
方式二:发送消息:`视频bv号+关键词` **视频bv号必须要在消息最前面!****向ai提问,需要使用 `提问关键词[冒号]你的问题` 的格式 eg.`BVxxxxxxxxxx 问一下:这视频有啥特色`** \
**获取视频摘要,单独发送`摘要关键词`即可**##### at
在评论区发送关键字即可\
(向ai提问的方式与上面讲的相同) \
**但是你b评论区风控真的太严格了,体验完全没私信好,还污染评论区(所以,你懂我意思了吧)**### 💸 这玩意烧钱吗
#### Claude
claude才是唯一真神!!!比gpt-3.5-turbo-16k低将近一半的价格(指prompt价格),还有100k的上下文窗口!输出的格式也很稳定,内容质量与3.5不相上下。
现在对接了个aiproxy的claude接口,简直香炸...gpt3.5是什么?真不熟
#### GPT
根据我的测试,单纯使用**gpt-3.5-turbo-16k**,20元大概能撑起5000次时长为10min左右的视频总结(在不包括格式不对重试的情况下)
但在我的测试中,gpt3.5返回的内容已经十分稳定,我并没有遇到过格式不对的情况,所以这个价格应该是可以接受的
如果你出现了格式不对的情况,可以附带bad case示例**发issue**,我尝试优化下prompt
#### OPENAI WHISPER
相比之下这个有点贵,20元能转大概8小时视频
### 🤔 目前问题
1. 无法回复楼中楼评论的at(我实在搞不懂评论的继承逻辑是什么,设置值了对应id也没法发送楼中楼,我好笨)
2. 不支持多p视频的总结(这玩意我觉得没法修复,本来都是快要被你b抛弃的东西)
3. 你b严格的审查机制导致私信/回复消息触碰敏感词会被屏蔽### 📝 TODO
- [ ] 支持多账号负载均衡 **(on progress)**
- [ ] 能够画思维导图(拜托,这真的超酷的好嘛)### ❤ 感谢
[Nemo2011/bilibili-api](https://github.com/Nemo2011/bilibili-api/) | 封装b站api库
[JetBrains](https://www.jetbrains.com) | 感谢JetBrains提供的免费license### [开发文档](./DEV_README.md)
### 📚 大致流程(更详细内容指路 [开发文档](./DEV_README.md))
```mermaid
sequenceDiagram
participant 用户
participant 监听器
participant 处理链
participant 发送器
participant LLMs
participant ASRs
用户 ->> 监听器: 发送私信或at消息消息
alt 消息触发关键词
监听器 ->> 处理链: 触发关键词,开始处理
else 消息不触发关键词
监听器 ->> 用户: 不触发关键词,不处理
end
处理链 ->> 处理链: 检查是否有缓存
alt 有缓存
处理链 ->> 发送器: 有缓存,直接发送
end
处理链 ->> 处理链: 检查是否有字幕
alt 有字幕
处理链 ->> LLMs: 根据视频简介、标签、热评、字幕构建prompt并生成摘要
else 没有字幕
处理链 ->> ASRs: 转译视频
ASRs ->> ASRs: 自动调度asr插件,选择一个发送请求
ASRs ->> 处理链: 转译完成
处理链 ->> LLMs: 根据视频简介、标签、热评、字幕构建prompt并生成摘要
end
LLMs ->> 处理链: 摘要内容
处理链 ->> 处理链: 解析摘要是否符合要求
alt 摘要符合要求
处理链 ->> 发送器: 发送摘要
发送器 ->> 用户: 发送成功
else 摘要不符合要求
处理链 ->> 处理链: 使用指定prompt修复摘要
处理链 ->> 发送器: 发送摘要
发送器 ->> 用户: 发送成功
end
```