程序员AI提效案例:统计B站课程耗时情况

news2025/2/23 22:38:55

文章目录

  • 一,时长统计需求
  • 二,一波三折
  • 三,终极方案 AI+Java
  • 总结

今天为了写一篇博客,这篇博客介绍了B站的一个Java项目,这个项目分为三个阶段:

  • 初级篇
  • 高级篇
  • 运维篇

一,时长统计需求

我想根据每个阶段的总时长制定学习计划,B站只有每一集的时长,格式如下。

在这里插入图片描述

思路很简单:

  • 首先找到每一阶段的起止集数;
  • 然后把每个阶段的每集的时间加起来就可以算出每一阶段总耗时了。

第一个步骤很简单啊,从内容上可以区分。

  • P1~P101 是初级篇
  • P102~P338 是高级篇
  • P339到最后 是运维篇

二,一波三折

我的想法是把视频选集的内容copy出来,和算法以前丢给大模型,让它给我统计出来。

拷贝出来之后粘贴到文本文件,格式有点意外,但还算是格式化文本。

在这里插入图片描述
如上,一行信息变三行了。

我把这个文档提交给大模型,把算法写在提示词里。

这个文档的规则如下:
1,每三行是一个单元;
2,每个单元第三行表示一个视频的时长,如11:30表示11分钟30秒,
3,美格单元第一行表示集数,如P1表示第一集;

请分别统计:
1,P1~P101的总时长;
2,P102~P338的总时长;
3,P339到最后一集的总时长。

最后的结果请以[小时:分钟:秒]给出,并给出这三部分的总时长。

我惊奇的发现,大模型搞不定这个,虽然我不知道原因,或许是我用的姿势不对。

首先看看Kimi的表现。

在这里插入图片描述
Kimi貌似是异步的处理,但是我等了很久,一直不给我结果。

我追问,它回答马上开始,似乎也不是异步执行。
在这里插入图片描述

最后我强制要求它给出结果,不要让我等待。

来来回回纠缠了好多次,终于给出了统计结果,结果却是错的。

在这里插入图片描述
然后又试了通义千问,它倒是能爽快的给出结果,可惜也是错的。

最后又试了智谱清言,它的计算速度最快,结果秒出,可惜还是错的。

在这里插入图片描述
这也太不靠谱了。

在这里插入图片描述

三,终极方案 AI+Java

最后,我觉得不要让它直接算,让它给我写个Java程序,我自己来跑这个程序,这样即便错了,我也能知道是哪里错的。

Kimi完成了这个任务。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class VideoDurationStatistics {

    public static void main(String[] args) {
        String filePath = "path/to/your/document.txt"; // 替换为文档的实际路径
        try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
            String line;
            int totalDuration = 0;
            Pattern durationPattern = Pattern.compile("^(\\d{1,2}):(\\d{2})$");

            while ((line = reader.readLine()) != null) {
                // 检查是否是时长行(每三行的第三行)
                if (line.matches(durationPattern)) {
                    Matcher matcher = durationPattern.matcher(line);
                    if (matcher.find()) {
                        int minutes = Integer.parseInt(matcher.group(1));
                        int seconds = Integer.parseInt(matcher.group(2));
                        totalDuration += (minutes * 60) + seconds;
                    }
                }
            }

            // 将总时长转换为小时、分钟、秒
            long hours = totalDuration / 3600;
            totalDuration %= 3600;
            long minutes = totalDuration / 60;
            long seconds = totalDuration % 60;

            System.out.printf("Total Duration: %d hours, %d minutes, %d seconds%n", hours, minutes, seconds);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

我把这段代码放到Idea,稍微改吧改吧,很快结果就出来了。

在这里插入图片描述

我验证了总的时间,和B站基本吻合,说明程序跑出来的结果是正确的。

总结

现在的AI能力有限,有些工作它很擅长,有些它不擅长。

其中很大的问题是AI大模型是个黑盒,你不知道它是怎么得出结果的,很难去纠正它,只能不断尝试,但或许它永远也不能给出正确的结果。

但是把它作为辅助工具还是非常不错的,比如让它写一段代码,不到一分钟就写出来了,要是纯人工码,可能得个把小时,如果是要边查API边写代码,那就更慢了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1889884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试中安全测试包含内容及安全测试怎么测

一、软件测试安全测试包含哪些 1. 漏洞扫描 漏洞扫描是软件测试安全测试的基础,它用于检测应用程序和系统中存在的已知漏洞。安全测试工具如AppScan、OWASP ZAP和Nessus等可以对应用程序进行自动化扫描,发现可能存在的漏洞,如跨站点脚本&am…

大象机器人开源协作机械臂机械臂接入GPT4o大模型!

本文已经或者同济子豪兄作者授权对文章进行编辑和转载 引言 随着人工智能和机器人技术的快速发展,机械臂在工业、医疗和服务业等领域的应用越来越广泛。通过结合大模型和多模态AI,机械臂能够实现更加复杂和智能化的任务,提升了人机协作的效率…

CTO透露GPT-5内幕,OpenAI 以36亿美元收购数据库初创公司

目录 01 GPT-5 02 OpenAI收购Rockset 2.1 谁是Rockset? 2.2 OpenAI的目的是什么? 01 GPT-5 虽然GPT-4的视频通话功能尚未全面推广,但OpenAI的CTO已经对即将到来的GPT-5给出了新的暗示。 不久前,Mira回到母校达特茅斯工程学…

jdk动态代理-基于反射的动态代理

JDK动态代理的示例图,下图的绿色箭头表示实现的关系,白色虚线表示依赖关系,target表示被ProxyFactory的target成员表示代理类对象,由ProxyFactory传入的Object参数初始化,接着调用getProxyInstance函数利用反射来返回代…

DMA学习笔记

参考文章 https://blog.csdn.net/as480133937/article/details/104927922 DMA简介 DMA,全称Direct Memory Access,即直接存储器访问。DMAC 即 DMA 控制器,提供了一种硬件的数据传输方式,无需 CPU 的介入,可以处理外…

LangGraph进阶:手把手教你打造电影脚本AI

LangGraph是著名的大模型开发框架LangChain推出的用于构建基于复杂工作流的LLM应用的开发库。LangGraph把任务的节点与关系用Graph结构来定义以支持更多样更复杂的应用场景,特别是: 实现包含循环、迭代等复杂工作流的高级RAG范式 需要更灵活控制的Agent…

QAM MMA

MMA是改进的CMA,有RCA和CMA的优点,还能对相位误差进行修正。 N 5e5; % 仿真符号数 M 16; % QAM16msg randi([0 M-1],N,1); % 产生随机符号 tx qammod(msg,M); % QAM调制test_snr 20:5:30; …

采用Java语言+开发工具 Idea+ scode数字化产科管理平台源码,产科管理新模式

采用Java语言开发工具 Idea scode数字化产科管理平台源码,产科管理新模式 数字化产科管理系统是现代医疗信息化建设的重要组成部分,它利用现代信息技术手段,对孕产妇的孕期管理、分娩过程及产后康复等各个环节进行数字化、智能化管理&#xf…

【总线】AXI4第七课时:AXI的额外的控制信息(PROT和CACHE)

大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣,那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者,AXI4以其高性能和高度可扩展性,成为了现代电子系统中不可或缺的通信桥梁…

安乃达挂牌上交所:营收放缓净利润下滑,业绩风险如何规避?

《港湾商业观察》施子夫 7月3日,冲刺上交所主板刚满2年的安乃达驱动技术(上海)股份有限公司(以下简称安乃达,603350.SH)将正式挂牌上市。 据悉,此次安乃达公开发行数量为2900万股,…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【18】认证服务02—微博社交登录

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【18】认证服务02—微博社交登录 微博社交登录图示原理前置准备实现流程完整代码 参考 微博社交登录 OAuth: OAuth(开放授权)是一个开放标准&#xff0…

Python-Tkinter+Logging+Sqlserver项目结合

参考文章: https://www.jb51.net/article/283745.htm 目录: common(文件夹) – base.py – config_reader.py – dosqlserver.py – log.py txt(空文件夹,后面会自动生成txt文件在该文件夹下面) 1.txt 2.txt env.…

html+js+css美观好看的动态404界面

中间的那一段话(root开头的那一句)是逐字输出的 那段话显示完后,自动显示超大号字体404 来都来了点个赞,关注一下呗😄,本人发誓:你关注我,马上关注你 界面 源码在图片下面…

【ONE·Linux || 高级IO(一)】

总言 主要内容:介绍五种IO模型的基本概念、学习IO多路转接(select、poll编程模型)。       文章目录 总言1、问题引入1.1、网络通信与IO1.2、五种IO模型1.2.1、举例引入1.2.2、IO模型具体含义介绍1.2.2.1、阻塞式IO1.2.2.2、非阻塞轮询检…

什么是带有 API 网关的代理?

带有 API 网关的代理服务显著提升了用户体验和性能。特别是对于那些使用需要频繁创建和轮换代理的工具的用户来说,使用 API 可以节省大量时间并提高效率。 了解 API API,即应用程序编程接口,是服务提供商和用户之间的连接网关。通过 API 连接…

智能数字人系统的技术难点

数字人系统,也称为智能数字人系统或虚拟数字人系统,是指利用人工智能技术构建的虚拟人物形象,能够与人进行自然交互的系统。数字人系统涉及多项技术,其开发和应用存在以下技术难点。北京木奇移动技术有限公司,专业的软…

KES数据库实践指南:探索KES数据库的事务隔离级别

并发控制 并发控制的重要性 并发控制是数据库管理系统中的一个核心概念,它确保在多用户环境中,对数据库的并发访问不会破坏数据的完整性和一致性。 当多个用户同时对数据库进行读写操作时,如果缺乏有效的并发控制机制,可能会导致数…

HexPlane: A Fast Representation for Dynamic Scenes(总结图)

图1。用于动态三维场景的 Hex刨面。我们没有从深度 MLP 中回归颜色和不透明度,而是通过 HexPlann 显式地计算时空点的特征。配对一个微小的 MLP,它允许以上100倍加速匹配的质量。 图2。方法概述。Hex刨包含六个特征平面,跨越每对坐标轴(例如…

ctfshow web sql注入 web242--web249

web242 into outfile 的使用 SELECT ... INTO OUTFILE file_name[CHARACTER SET charset_name][export_options]export_options:[{FIELDS | COLUMNS}[TERMINATED BY string]//分隔符[[OPTIONALLY] ENCLOSED BY char][ESCAPED BY char]][LINES[STARTING BY string][TERMINATED…

Python 生成Md文件带超链 和 PDF文件 带分页显示内容

software.md # -*- coding: utf-8 -*- import os f open("software.md", "w", encoding"utf-8") f.write(内部测试版2024 MD版\n) for root, dirs, files in os.walk(path): dax os.path.basename(root)if dax "":print("空白…